[yum-commits] 387 commits - ChangeLog Makefile README README.API_CHANGES cli.py docs/yum.8 docs/yum.conf.5 output.py po/POTFILES.in po/POTFILES.skip po/ca.po po/da.po po/de.po po/fr.po po/it.po po/pl.po po/pt_BR.po po/sr.po po/sr at latin.po po/zh_CN.po rpmUtils/arch.py rpmUtils/miscutils.py shell.py test/check-po-yes-no.py test/depsolvetests.py test/operationstests.py test/packagetests.py test/simpleobsoletestests.py test/simpleupdatetests.py test/skipbroken-tests.py test/testbase.py utils.py yum.spec yum/__init__.py yum/comps.py yum/config.py yum/constants.py yum/depsolve.py yum/i18n.py yum/logginglevels.py yum/metalink.py yum/misc.py yum/packageSack.py yum/packages.py yum/plugins.py yum/repoMDObject.py yum/repos.py yum/rpmsack.py yum/rpmtrans.py yum/sqlitesack.py yum/transactioninfo.py yum/update_md.py yum/yumRepo.py yumcommands.py yummain.py

James Antill james at osuosl.org
Fri Nov 21 17:28:03 UTC 2008


 ChangeLog                    |10200 +++++++------------------------------------
 Makefile                     |    5 
 README                       |    5 
 README.API_CHANGES           |   11 
 cli.py                       |  286 -
 docs/yum.8                   |    9 
 docs/yum.conf.5              |   88 
 output.py                    |  929 +++
 po/POTFILES.in               |    1 
 po/POTFILES.skip             |    1 
 po/ca.po                     | 1329 +++--
 po/da.po                     |    9 
 po/de.po                     | 1192 ++---
 po/fr.po                     |  981 ++--
 po/it.po                     |    6 
 po/pl.po                     | 1178 ++--
 po/pt_BR.po                  | 1391 +++--
 po/sr.po                     | 1153 ++--
 po/sr at latin.po               | 1166 ++--
 po/zh_CN.po                  | 2388 ++++++----
 rpmUtils/arch.py             |    3 
 rpmUtils/miscutils.py        |   48 
 shell.py                     |   19 
 test/check-po-yes-no.py      |    6 
 test/depsolvetests.py        |  377 +
 test/operationstests.py      |   10 
 test/packagetests.py         |   60 
 test/simpleobsoletestests.py |  119 
 test/simpleupdatetests.py    |   24 
 test/skipbroken-tests.py     |  262 +
 test/testbase.py             |  118 
 utils.py                     |   10 
 yum.spec                     |   18 
 yum/__init__.py              |  890 +++
 yum/comps.py                 |  195 
 yum/config.py                |   58 
 yum/constants.py             |   11 
 yum/depsolve.py              |  368 +
 yum/i18n.py                  |  306 +
 yum/logginglevels.py         |   37 
 yum/metalink.py              |  273 +
 yum/misc.py                  |  286 +
 yum/packageSack.py           |  210 
 yum/packages.py              |  411 +
 yum/plugins.py               |   80 
 yum/repoMDObject.py          |   61 
 yum/repos.py                 |   12 
 yum/rpmsack.py               |  162 
 yum/rpmtrans.py              |   81 
 yum/sqlitesack.py            |  401 +
 yum/transactioninfo.py       |    9 
 yum/update_md.py             |  134 
 yum/yumRepo.py               |  508 +-
 yumcommands.py               |  278 -
 yummain.py                   |   26 
 55 files changed, 14076 insertions(+), 14123 deletions(-)

New commits:
commit b6b1403e553d435d900781c256f14bb6c8276929
Merge: 00403a9... eac42df...
Author: James Antill <james at and.org>
Date:   Fri Nov 21 12:26:19 2008 -0500

    Do a merge from yum-3_2_X onto master, _UNTESTED_ but not that many conflicts

diff --cc yum/__init__.py
index 5786816,1f03840..bacd9ca
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@@ -111,10 -96,10 +113,12 @@@ class YumBase(depsolve.Depsolve)
          self._up = None
          self._comps = None
          self._pkgSack = None
 +        # FIXME: backwards compat. with plugins etc., remove?
 +        self.logger         = log.logger
 +        self.verbose_logger = vlog.logger
 +
+         self._lockfile = None
+         self.skipped_packages = []   # packages skip by the skip-broken code
 -        self.logger = logging.getLogger("yum.YumBase")
 -        self.verbose_logger = logging.getLogger("yum.verbose.YumBase")
          self._repos = RepoStorage(self)
  
          # Start with plugins disabled
@@@ -319,9 -312,9 +331,10 @@@
          # Ensure that the repo name is set
          if not repo.name:
              repo.name = section
 -            self.logger.error(_('Repository %r is missing name in configuration, '
 -                    'using id') % section)
 +            # FIXME: Use critical? or exception?
 +            log.error(_('Repository %r is missing name in configuration, '
 +                        'using id'), section)
+         repo.name = to_unicode(repo.name)
  
          # Set attributes not from the config file
          repo.basecachedir = self.conf.cachedir
@@@ -630,12 -629,20 +644,19 @@@
                      necessary = True
  
          if necessary:
 -            msg = _('Importing additional filelist information')
 -            self.verbose_logger.log(logginglevels.INFO_2, msg)
 +            vinfo2(_('Importing additional filelist information'))
              self.repos.populateSack(mdtype='filelists')
             
-     def buildTransaction(self):
+     def buildTransaction(self, unfinished_transactions_check=True):
          """go through the packages in the transaction set, find them in the
             packageSack or rpmdb, and pack up the ts accordingly"""
+         if (unfinished_transactions_check and
+             misc.find_unfinished_transactions(yumlibpath=self.conf.persistdir)):
+             msg = _('There are unfinished transactions remaining. You might ' \
+                     'consider running yum-complete-transaction first to finish them.' )
+             self.logger.critical(msg)
+             time.sleep(3)
+ 
          self.plugins.run('preresolve')
          ds_st = time.time()
  
@@@ -657,9 -664,13 +678,13 @@@
          # The remove the broken packages from the transactions and
          # Try another depsolve
          if self.conf.skip_broken and rescode==1:
+             self.skipped_packages = []    # reset the public list of skipped packages.
+             sb_st = time.time()
              rescode, restring = self._skipPackagesWithProblems(rescode, restring)
+             self._printTransaction()        
+             self.verbose_logger.debug('Skip-Broken time: %0.3f' % (time.time() - sb_st))
  
 -        self.verbose_logger.debug('Depsolve time: %0.3f' % (time.time() - ds_st))
 +        vdebug_tm(ds_st, 'Depsolve time')
          return rescode, restring
  
      def _skipPackagesWithProblems(self, rescode, restring):
@@@ -678,10 -699,13 +713,13 @@@
          # or the transaction is empty
          count = 0
          skipped_po = set()
-         orig_restring = restring    # Keep the old error messages
-         while len(self.po_with_problems) > 0 and rescode == 1:
+         removed_from_sack = set()
+         orig_restring = restring    # Keep the old error messages 
+         hard_restart = False
+         while (len(self.po_with_problems) > 0 and rescode == 1):
              count += 1
 -            self.verbose_logger.debug(_("Skip-broken round %i"), count)
 +            vdebug(_("Skip-broken round %i"), count)
+             self._printTransaction()        
              depTree = self._buildDepTree()
              startTs = set(self.tsInfo)
              toRemove = set()
@@@ -701,22 -735,76 +749,75 @@@
              endTs = set(self.tsInfo)
               # Check if tsInfo has changes since we started to skip packages
               # if there is no changes then we got a loop.
+              # the first time we get here we reset the resolved members of
+              # tsInfo and takes a new run all members in the current transaction
              if startTs-endTs == set():
-                 break    # bail out
+                 if hard_restart:
+                     break # Bail out
+                 else:
+                     self.verbose_logger.debug('SKIPBROKEN: resetting already resovled packages (transaction not changed)' )
+                     self.tsInfo.resetResolved(hard=True)
+             # 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
+             # can have broken something that passed the tests earliere.
+             # FIXME: We need do this in a better way.
+             if rescode != 1:
+                 self.verbose_logger.debug('SKIPBROKEN: sanity check the current transaction' )
+                 self.tsInfo.resetResolved(hard=True)
+                 self._checkMissingObsoleted() # This is totally insane, but needed :(
+                 rescode, restring = self.resolveDeps()
          if rescode != 1:
 -            self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
 -            self.verbose_logger.info(_('\nPackages skipped because of dependency problems:'))
 +            vdebug(_("Skip-broken took %i rounds "), count)
 +            vinfo(_('\nPackages skipped because of dependency problems:'))
              skipped_list = [p for p in skipped_po]
              skipped_list.sort()
              for po in skipped_list:
 -                msg = _("    %s from %s") % (str(po),po.repo.id)
 -                self.verbose_logger.info(msg)
 +                vinfo(_("    %s from %s"), str(po),po.repo.id)
+             self.skipped_packages = skipped_list    # make the skipped packages public
          else:
              # If we cant solve the problems the show the original error messages.
 -            self.verbose_logger.info("Skip-broken could not solve problems")
 +            vinfo("Skip-broken could not solve problems")
              return 1, orig_restring
-         
          return rescode, restring
  
+     def _checkMissingObsoleted(self):
+         """ 
+         If multiple packages is obsoleting the same package
+         then the TS_OBSOLETED can get removed from the transaction
+         so we must make sure that they, exist and else create them
+         """
+         for txmbr in self.tsInfo:
+             for pkg in txmbr.obsoletes:
+                 if not self.tsInfo.exists(pkg.pkgtup):
+                     obs = self.tsInfo.addObsoleted(pkg,txmbr.po)
+                     self.verbose_logger.debug('SKIPBROKEN: Added missing obsoleted %s (%s)' % (pkg,txmbr.po) )
+             for pkg in txmbr.obsoleted_by:
+                 # check if the obsoleting txmbr is in the transaction
+                 # else remove the obsoleted txmbr
+                 # it clean out some really wierd cases
+                 if not self.tsInfo.exists(pkg.pkgtup):
+                     self.verbose_logger.debug('SKIPBROKEN: Remove extra obsoleted %s (%s)' % (txmbr.po,pkg) )
+                     self.tsInfo.remove(txmbr.po.pkgtup)
+ 
+     def _getPackagesToRemoveAllArch(self,po):
+         ''' get all compatible arch packages in pkgSack'''
+         pkgs = []
+         if rpmUtils.arch.isMultiLibArch():
+             archs = rpmUtils.arch.getArchList() 
+             n,a,e,v,r = po.pkgtup
+             # skip for all compat archs
+             for a in archs:
+                 pkgtup = (n,a,e,v,r)
+                 matched = self.pkgSack.searchNevra(n,e,v,r,a) 
+                 pkgs.extend(matched)
+         else:
+             pkgs.append(po)
+         return pkgs   
+         
+                 
+                 
+         
+ 
      def _skipFromTransaction(self,po):
          skipped =  []
          if rpmUtils.arch.isMultiLibArch():
@@@ -790,7 -903,8 +916,8 @@@
              pass
          elif len(errors) == 0:
              errstring = _('Warning: scriptlet or other non-fatal errors occurred during transaction.')
 -            self.verbose_logger.debug(errstring)
 +            vdebug(errstring)
+             resultobject.return_code = 1
          else:
              raise Errors.YumBaseError, errors
                            
@@@ -804,10 -918,11 +931,11 @@@
                      try:
                          os.unlink(fn)
                      except (IOError, OSError), e:
 -                        self.logger.critical(_('Failed to remove transaction file %s') % fn)
 +                        critical(_('Failed to remove transaction file %s'), fn)
  
          self.plugins.run('posttrans')
-     
+         return resultobject
+ 
      def costExcludePackages(self):
          """exclude packages if they have an identical package in another repo
          and their repo.cost value is the greater one"""
@@@ -875,16 -990,16 +1003,15 @@@
              return
  
          if not repo:
 -            self.verbose_logger.log(logginglevels.INFO_2, _('Excluding Packages in global exclude list'))
 +            vinfo2(_('Excluding Packages in global exclude list'))
          else:
 -            self.verbose_logger.log(logginglevels.INFO_2, _('Excluding Packages from %s'),
 -                repo.name)
 +            vinfo2(_('Excluding Packages from %s'), repo.name)
  
-         pkgs = self._pkgSack.returnPackages(repoid, patterns=excludelist)
-         exactmatch, matched, unmatched = \
-            parsePackages(pkgs, excludelist, casematch=1, unique='repo-pkgkey')
+         pkgs = self._pkgSack.returnPackages(repoid, patterns=excludelist,
+                                             ignore_case=False)
  
-         for po in exactmatch + matched:
+         for po in pkgs:
 -            self.verbose_logger.debug('Excluding %s', po)
 +            vdebug('Excluding %s', po)
              po.repo.sack.delPackage(po)
              
          
@@@ -903,12 -1018,14 +1030,13 @@@
          exactmatch, matched, unmatched = \
             parsePackages(pkglist, includelist, casematch=1)
          
 -        self.verbose_logger.log(logginglevels.INFO_2,
 -            _('Reducing %s to included packages only'), repo.name)
 +        vinfo2(_('Reducing %s to included packages only'), repo.name)
          rmlist = []
+         keeplist = set(exactmatch + matched)
          
          for po in pkglist:
-             if po in exactmatch + matched:
+             if po in keeplist:
 -                self.verbose_logger.debug(_('Keeping included package %s'), po)
 +                vdebug(_('Keeping included package %s'), po)
                  continue
              else:
                  rmlist.append(po)
@@@ -2127,10 -2450,14 +2452,14 @@@
                      try:
                          mypkgs = self.returnPackagesByDep(arg)
                      except yum.Errors.YumBaseError, e:
 -                        self.logger.critical(_('No Match for argument: %s') % arg)
 +                        critical(_('No Match for argument: %s'), arg)
                      else:
                          if mypkgs:
-                             pkgs.extend(self.bestPackagesFromList(mypkgs))
+                             #  Dep. installs don't do wildcards, so we
+                             # just want a single named package.
+                             mypkgs = self.bestPackagesFromList(mypkgs,
+                                                                single_name=True)
+                             pkgs.extend(mypkgs)
                          
              else:
                  nevra_dict = self._nevra_kwarg_parse(kwargs)
@@@ -2216,28 -2551,72 +2555,72 @@@
              # if so pass it to update b/c it should be able to figure it out
              if self.rpmdb.contains(name=po.name, arch=po.arch) and not self.allowedMultipleInstalls(po):
                  if not self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES):
 -                    self.verbose_logger.warning(_('Package matching %s already installed. Checking for update.'), po)            
 -                    txmbrs = self.update(po=po)
 -                    tx_return.extend(txmbrs)
 +                    vwarning(_('Package matching %s already installed. Checking for update.'), po)            
 +                    res = self.update(po=po)
 +                    result.add(res)
                      continue
  
-             # make sure we're not installing a package which is obsoleted by something
-             # else in the repo
-             thispkgobsdict = self.up.checkForObsolete([po.pkgtup])
-             if thispkgobsdict.has_key(po.pkgtup):
-                 obsoleting = thispkgobsdict[po.pkgtup][0]
-                 obsoleting_pkg = self.getPackageObject(obsoleting)
+             #  Make sure we're not installing a package which is obsoleted by
+             # something else in the repo. Unless there is a obsoletion loop,
+             # at which point ignore everything.
+             obsoleting_pkg = self._test_loop(po, self._pkg2obspkg)
+             if obsoleting_pkg is not None:
 -                self.verbose_logger.warning(_('Package %s is obsoleted by %s, trying to install %s instead'),
 +                vwarning(_('Package %s is obsoleted by %s, trying to install %s instead'),
                      po.name, obsoleting_pkg.name, obsoleting_pkg)               
 -                self.install(po=obsoleting_pkg)
 +                self.install(po=obsoleting_pkg) # XXX result???
                  continue
                  
-             res = self.tsInfo.addInstall(po)
-             result.add(res)
+             # 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
+             if po.pkgtup in self.up.getObsoletesList(name=po.name, arch=po.arch):
+                 for obsoletee in self._find_obsoletees(po):
+                     txmbr = self.tsInfo.addObsoleting(po, obsoletee)
+                     self.tsInfo.addObsoleted(obsoletee, po)
+                     tx_return.append(txmbr)
+             else:
+                 txmbr = self.tsInfo.addInstall(po)
+                 tx_return.append(txmbr)
          
 -        return tx_return
 +        return result
  
-     
+     def _check_new_update_provides(self, opkg, npkg):
+         """ Check for any difference in the provides of the old and new update
+             that is needed by the transaction. If so we "update" those pkgs
+             too, to the latest version. """
+         oprovs = set(opkg.returnPrco('provides'))
+         nprovs = set(npkg.returnPrco('provides'))
+         for prov in oprovs.difference(nprovs):
+             reqs = self.tsInfo.getRequires(*prov)
+             for pkg in reqs:
+                 for req in reqs[pkg]:
+                     if not npkg.inPrcoRange('provides', req):
+                         naTup = (pkg.name, pkg.arch)
+                         for pkg in self.pkgSack.returnNewestByNameArch(naTup):
+                             self.update(po=pkg)
+                         break
+ 
+     def _newer_update_in_trans(self, pkgtup, available_pkg):
+         """ We return True if there is a newer package already in the
+             transaction. If there is an older one, we remove it (and update any
+             deps. that aren't satisfied by the newer pkg) and return False so
+             we'll update to this newer pkg. """
+         found = False
+         for txmbr in self.tsInfo.getMembersWithState(pkgtup, [TS_UPDATED]):
+             count = 0
+             for po in txmbr.updated_by:
+                 if available_pkg.verLE(po):
+                     count += 1
+                 else:
+                     for ntxmbr in self.tsInfo.getMembers(po.pkgtup):
+                         self.tsInfo.remove(ntxmbr.po.pkgtup)
+                         self._check_new_update_provides(ntxmbr.po,
+                                                         available_pkg)
+             if count:
+                 found = True
+             else:
+                 self.tsInfo.remove(txmbr.po.pkgtup)
+         return found
+ 
      def update(self, po=None, requiringPo=None, **kwargs):
          """try to mark for update the item(s) specified. 
              po is a package object - if that is there, mark it for update,
@@@ -2370,25 -2749,35 +2753,35 @@@
  
          for installed_pkg in instpkgs:
              for updating in self.up.updatesdict.get(installed_pkg.pkgtup, []):
-                 updating_pkg = self.getPackageObject(updating)
+                 po = self.getPackageObject(updating)
                  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'), 
 -                                            installed_pkg.pkgtup)                                               
 +                    vdebug2(_('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
+                 elif po.pkgtup in self.up.getObsoletesList(name=po.name,
+                                                            arch=po.arch):
+                     for obsoletee in self._find_obsoletees(po):
+                         txmbr = self.tsInfo.addUpdate(po, installed_pkg)
+                         if requiringPo:
+                             txmbr.setAsDep(requiringPo)
+                         self.tsInfo.addObsoleting(po, obsoletee)
+                         self.tsInfo.addObsoleted(obsoletee, po)
+                         tx_return.append(txmbr)
                  else:
-                     res = self.tsInfo.addUpdate(updating_pkg, installed_pkg)
+                     txmbr = self.tsInfo.addUpdate(po, installed_pkg)
                      if requiringPo:
 -                        txmbr.setAsDep(requiringPo)
 -                    tx_return.append(txmbr)
 +                        res.primary.setAsDep(requiringPo)
 +                    result.add(res)
                          
-                         
          for available_pkg in availpkgs:
              for updated in self.up.updating_dict.get(available_pkg.pkgtup, []):
                  if self.tsInfo.isObsoleted(updated):
 -                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
 -                                            updated)
 +                    vdebug2(_('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
 +                            updated)
-                 elif self.tsInfo.getMembersWithState(updated, [TS_UPDATED]):
+                 elif self._newer_update_in_trans(updated, available_pkg):
 -                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'), 
 -                                            updated)
 +                    vdebug2(_('Not Updating Package that is already updated: %s.%s %s:%s-%s'), 
 +                            updated)
                  
                  else:
                      updated_pkg =  self.rpmdb.searchPkgTuple(updated)[0]
@@@ -2405,15 -2794,26 +2798,26 @@@
              #        most likely correct
              pot_updated = self.rpmdb.searchNevra(name=available_pkg.name, arch=available_pkg.arch)
              for ipkg in pot_updated:
-                 if ipkg.EVR < available_pkg.EVR:
-                     res = self.tsInfo.addUpdate(available_pkg, ipkg)
+                 if self.tsInfo.isObsoleted(ipkg.pkgtup):
 -                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
 -                                            ipkg.pkgtup)
++                    vdebug2(_('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
++                            ipkg.pkgtup)
+                 elif self._newer_update_in_trans(ipkg.pkgtup, available_pkg):
 -                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'), 
 -                                            ipkg.pkgtup)
++                    vdebug2(_('Not Updating Package that is already updated: %s.%s %s:%s-%s'), 
++                            ipkg.pkgtup)
+                 elif ipkg.verLT(available_pkg):
+                     txmbr = self.tsInfo.addUpdate(available_pkg, ipkg)
                      if requiringPo:
-                         res.primary.setAsDep(requiringPo)
-                     result.add(res)
+                         txmbr.setAsDep(requiringPo)
+                     tx_return.append(txmbr)
+                 
+                 #else:
+                     #magically make allowdowngrade work here
+                     # yum --allow-downgrade update something-specific here
+                     # could work but we will need to be careful with it
+                     # maybe a downgrade command is necessary
  
 -        return tx_return
 +        return result
          
-         
      def remove(self, po=None, **kwargs):
          """try to find and mark for remove the specified package(s) -
              if po is specified then that package object (if it is installed) 
@@@ -2455,17 -2858,14 +2862,14 @@@
                              ver=nevra_dict['version'], rel=nevra_dict['release'])
  
                  if len(pkgs) == 0:
-                     # FIXME we should give the caller some nice way to hush this warning
-                     # probably just a kwarg of 'silence_warnings' or something
-                     # b/c when this is called from groupRemove() it makes a lot of
-                     # garbage noise
-                     warning(_("No package matched to remove"))
+                     if not kwargs.get('silence_warnings', False):
 -                        self.logger.warning(_("No package matched to remove"))
++                        warning(_("No package matched to remove"))
  
          for po in pkgs:
 -            txmbr = self.tsInfo.addErase(po)
 -            tx_return.append(txmbr)
 +            res = self.tsInfo.addErase(po)
 +            result.add(res)
          
 -        return tx_return
 +        return result
  
      def installLocal(self, pkg, po=None, updateonly=False):
          """
@@@ -2500,9 -2901,11 +2904,11 @@@
          # 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
+         # FIXME: Should add noarch, yum localinstall works ...
+         # just rm this method?
          if po.arch not in rpmUtils.arch.getArchList():
 -            self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
 +            critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
-             return result
+             return tx_return
          
          # everything installed that matches the name
          installedByKey = self.rpmdb.searchNevra(name=po.name)
@@@ -2635,42 -3089,23 +3087,22 @@@
          keyurls = repo.gpgkey
          key_installed = False
  
-         ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
+         ts = self.rpmdb.readOnlyTS()
  
          for keyurl in keyurls:
-             info(_('Retrieving GPG key from %s') % keyurl)
- 
-             # Go get the GPG key from the given URL
-             try:
-                 rawkey = urlgrabber.urlread(keyurl, limit=9999)
-             except urlgrabber.grabber.URLGrabError, e:
-                 raise Errors.YumBaseError(_('GPG key retrieval failed: ') +
-                                           unicode(str(e), 'UTF-8', 'replace'))
- 
-             # Parse the key
-             keys_info = misc.getgpgkeyinfo(rawkey)
-             
-             for keyinfo in keys_info:
-                 try: 
-                     keyid = keyinfo['keyid']
-                     hexkeyid = misc.keyIdToRPMVer(keyid).upper()
-                     timestamp = keyinfo['timestamp']
-                     userid = keyinfo['userid']
-                     fingerprint = keyinfo['fingerprint']
-                     raw_key = keyinfo['raw_key']
-                 except ValueError, e:
-                     raise Errors.YumBaseError, \
-                           _('GPG key parsing failed: ') + str(e)
+             keys = self._retrievePublicKey(keyurl, repo)
  
+             for info in keys:
                  # Check if key is already installed
-                 if misc.keyInstalled(ts, keyid, timestamp) >= 0:
-                     info(_('GPG key at %s (0x%s) is already installed'),
-                          keyurl, hexkeyid)
+                 if misc.keyInstalled(ts, info['keyid'], info['timestamp']) >= 0:
 -                    self.logger.info(_('GPG key at %s (0x%s) is already installed') % (
 -                        keyurl, info['hexkeyid']))
++                    info(_('GPG key at %s (0x%s) is already installed') %
++                         (keyurl, info['hexkeyid']))
                      continue
  
                  # Try installing/updating GPG key
-                 critical(_('Importing GPG key 0x%s "%s" from %s'),
-                          hexkeyid, userid, keyurl.replace("file://",""))
 -                self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') %
 -                                     (info['hexkeyid'], 
 -                                      to_unicode(info['userid']),
 -                                      keyurl.replace("file://","")))
++                critical(_('Importing GPG key 0x%s "%s" from %s') %
++                         (info['hexkeyid'], to_unicode(info['userid']),
++                          keyurl.replace("file://","")))
                  rc = False
                  if self.conf.assumeyes:
                      rc = True
@@@ -2689,9 -3126,7 +3123,7 @@@
                  if result != 0:
                      raise Errors.YumBaseError, \
                            _('Key import failed (code %d)') % result
-                 misc.import_key_to_pubring(rawkey, po.repo.cachedir)
-                 
 -                self.logger.info(_('Key imported successfully'))
 +                info(_('Key imported successfully'))
                  key_installed = True
  
                  if not key_installed:
@@@ -2705,9 -3140,63 +3137,63 @@@
          # Check if the newly installed keys helped
          result, errmsg = self.sigCheckPkg(po)
          if result != 0:
 -            self.logger.info(_("Import of key(s) didn't help, wrong key(s)?"))
 +            info(_("Import of key(s) didn't help, wrong key(s)?"))
              raise Errors.YumBaseError, errmsg
+     
+     def getKeyForRepo(self, repo, callback=None):
+         """
+         Retrieve a key for a repository If needed, prompt for if the key should
+         be imported using callback
+         
+         @param repo: Repository object to retrieve the key of.
+         @param callback: Callback function to use for asking for verification
+                           of a key. Takes a dictionary of key info.
+         """
+         keyurls = repo.gpgkey
+         key_installed = False
+         for keyurl in keyurls:
+             keys = self._retrievePublicKey(keyurl, repo)
+             for info in keys:
+                 # Check if key is already installed
+                 if info['keyid'] in misc.return_keyids_from_pubring(repo.gpgdir):
 -                    self.logger.info(_('GPG key at %s (0x%s) is already imported') % (
 -                        keyurl, info['hexkeyid']))
++                    info(_('GPG key at %s (0x%s) is already imported') %
++                         (keyurl, info['hexkeyid']))
+                     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://","")))
++                critical(_('Importing GPG key 0x%s "%s" from %s') %
++                         (info['hexkeyid'], to_unicode(info['userid']),
++                          keyurl.replace("file://","")))
+                 rc = False
+                 if self.conf.assumeyes:
+                     rc = True
+                 elif callback:
+                     rc = callback({"repo": repo, "userid": info['userid'],
+                                     "hexkeyid": info['hexkeyid'], "keyurl": keyurl,
+                                     "fingerprint": info['fingerprint'],
+                                     "timestamp": info['timestamp']})
+ 
+ 
+                 if not rc:
+                     raise Errors.YumBaseError, _("Not installing key for repo %s") % repo
+                 
+                 # Import the key
 -                result = misc.import_key_to_pubring(info['raw_key'], info['hexkeyid'], gpgdir=repo.gpgdir)
++                result = misc.import_key_to_pubring(info['raw_key'],
++                                                    info['hexkeyid'],
++                                                    gpgdir=repo.gpgdir)
+                 if not result:
+                     raise Errors.YumBaseError, _('Key import failed')
 -                self.logger.info(_('Key imported successfully'))
++                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)
  
 -
      def _limit_installonly_pkgs(self):
          if self.conf.installonly_limit < 1 :
              return 
diff --cc yum/config.py
index 01604a3,ffd70b3..98ad3d6
--- a/yum/config.py
+++ b/yum/config.py
@@@ -31,8 -31,11 +31,12 @@@ from iniparse.compat import ParsingErro
  import rpmUtils.transaction
  import rpmUtils.arch
  import Errors
 +import logginglevels
  
+ # Alter/patch these to change the default checking...
+ __pkgs_gpgcheck_default__ = False
+ __repo_gpgcheck_default__ = False
+ 
  class Option(object):
      '''
      This class handles a single Yum configuration file option. Create
@@@ -559,12 -576,9 +577,13 @@@ class StartupConf(BaseConfig)
      required early in the initialisation process or before the other [main]
      options can be parsed. 
      '''
+     # xemacs highlighting hack: '
 -    debuglevel = IntOption(2, 0, 10)
 -    errorlevel = IntOption(2, 0, 10)
 +    debuglevel = IntOption(logginglevels.DEBUG_NORMAL_LEVEL,
 +                           logginglevels.DEBUG_MIN_LEVEL,
 +                           logginglevels.DEBUG_MAX_LEVEL)
 +    errorlevel = IntOption(logginglevels.ERROR_NORMAL_LEVEL,
 +                           logginglevels.ERROR_MIN_LEVEL,
 +                           logginglevels.ERROR_MAX_LEVEL)
  
      distroverpkg = Option('redhat-release')
      installroot = Option('/')
diff --cc yum/logginglevels.py
index 8b1d233,756e47a..d87ee48
--- a/yum/logginglevels.py
+++ b/yum/logginglevels.py
@@@ -53,31 -45,42 +53,61 @@@ logging.addLevelName(DEBUG_4, "DEBUG_4"
  __NO_LOGGING = 100
  logging.raiseExceptions = False
  
+ import syslog as syslog_module
+ 
  syslog = None
  
 +DEBUG_QUIET_LEVEL   = 0
 +DEBUG_NORMAL_LEVEL  = 2
 +DEBUG_VERBOSE_LEVEL = 3
 +DEBUG_DEBUG0_LEVEL  = 4
 +DEBUG_DEBUG1_LEVEL  = 5
 +DEBUG_DEBUG2_LEVEL  = 6
 +DEBUG_DEBUG3_LEVEL  = 7
 +DEBUG_DEBUG4_LEVEL  = 8
 +DEBUG_UPDATES_LEVEL = DEBUG_DEBUG3_LEVEL
 +
 +DEBUG_MIN_LEVEL     = 0
 +DEBUG_MAX_LEVEL     = DEBUG_DEBUG4_LEVEL
 +
 +ERROR_NORMAL_LEVEL  = 1
 +ERROR_VERBOSE_LEVEL = 2
 +
 +ERROR_MIN_LEVEL     = 0
 +ERROR_MAX_LEVEL     = ERROR_VERBOSE_LEVEL
 +
+ # Mostly borrowed from original yum-updated.py
+ _syslog_facility_map = { "KERN"   : syslog_module.LOG_KERN,
+                          "USER"   : syslog_module.LOG_USER,
+                          "MAIL"   : syslog_module.LOG_MAIL,
+                          "DAEMON" : syslog_module.LOG_DAEMON,
+                          "AUTH"   : syslog_module.LOG_AUTH,
+                          "LPR"    : syslog_module.LOG_LPR,
+                          "NEWS"   : syslog_module.LOG_NEWS,
+                          "UUCP"   : syslog_module.LOG_UUCP,
+                          "CRON"   : syslog_module.LOG_CRON,
+                          "LOCAL0" : syslog_module.LOG_LOCAL0,
+                          "LOCAL1" : syslog_module.LOG_LOCAL1,
+                          "LOCAL2" : syslog_module.LOG_LOCAL2,
+                          "LOCAL3" : syslog_module.LOG_LOCAL3,
+                          "LOCAL4" : syslog_module.LOG_LOCAL4,
+                          "LOCAL5" : syslog_module.LOG_LOCAL5,
+                          "LOCAL6" : syslog_module.LOG_LOCAL6,
+                          "LOCAL7" : syslog_module.LOG_LOCAL7,}
+ def syslogFacilityMap(facility):
+     if type(facility) == int:
+         return facility
+     elif facility.upper() in _syslog_facility_map:
+         return _syslog_facility_map[facility.upper()]
+     elif (facility.upper().startswith("LOG_") and
+           facility[4:].upper() in _syslog_facility_map):
+         return _syslog_facility_map[facility[4:].upper()]
+     return syslog.LOG_USER
+ 
  def logLevelFromErrorLevel(error_level):
      """ Convert an old-style error logging level to the new style. """
 -    error_table = { -1 : __NO_LOGGING, 0 : logging.CRITICAL, 1 : logging.ERROR,
 -        2 : logging.WARNING}
 +    error_table = { -1 : __NO_LOGGING,
 +                    0 : logging.CRITICAL, 1 : logging.ERROR, 2 :logging.WARNING}
      
      return __convertLevel(error_level, error_table)
  
diff --cc yum/misc.py
index e6c22c2,801fc0f..30887b9
--- a/yum/misc.py
+++ b/yum/misc.py
@@@ -233,10 -326,10 +326,10 @@@ def procgpgkey(rawkey)
      # Decode and return
      return base64.decodestring(block.getvalue())
  
- def getgpgkeyinfo(rawkey):
-     '''Return a list of dicts of info for the given ASCII armoured key text
+ def getgpgkeyinfo(rawkey, multiple=False):
+     '''Return a dict of info for the given ASCII armoured key text
  
 -    Returned dict will have the following keys: 'userid', 'keyid', 'timestamp'
 +    Returned dicts will have the following keys: 'userid', 'keyid', 'timestamp'
  
      Will raise ValueError if there was a problem decoding the key.
      '''
@@@ -275,8 -368,11 +368,10 @@@
                          info['timestamp'] = int(tspkt[1])
                          break
          key_info_objs.append(info)
+     if multiple:      
          return key_info_objs
-         
+     else:
+         return key_info_objs[0]
 -        
  
  def keyIdToRPMVer(keyid):
      '''Convert an integer representing a GPG key ID to the hex version string
diff --cc yum/transactioninfo.py
index a6336c7,5a843fd..f0044f1
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@@ -199,15 -193,13 +199,14 @@@ class TransactionData
              self.pkgSackPackages += 1
  
          if self.conditionals.has_key(txmember.name):
-             for po in self.conditionals[txmember.name]:
-                 if self.rpmdb.contains(po=po):
+             for pkg in self.conditionals[txmember.name]:
+                 if self.rpmdb.contains(po=pkg):
                      continue
-                 res = self.addInstall(po, True)
-                 result.addConditionals(res)
-                 res.primary.setAsDep(po=txmember.po)
+                 for condtxmbr in self.install_method(po=pkg):
+                     condtxmbr.setAsDep(po=txmember.po)
  
          self._unresolvedMembers.add(txmember)
 +        return result
  
      def remove(self, pkgtup):
          """remove a package from the transaction"""
commit 00403a9aadd3537799b8d46d9e6f84100b2bba83
Author: James Antill <james at and.org>
Date:   Fri Nov 21 12:04:56 2008 -0500

    Revert "updated de translation by Jochen Schmitt"
    
    This reverts commit 0801c7cf79c95df649bfc005062799f3786d74f8.
    
     Trying to merge with yum-3_2_X

diff --git a/po/de.po b/po/de.po
index ae1fa57..e766d20 100644
--- a/po/de.po
+++ b/po/de.po
@@ -713,9 +713,9 @@ msgstr ""
 "\n"
 "Transaktionszusammenfassung\n"
 "=============================================================================\n"
-"Installieren      %5.5s Paket(e)         \n"
-"Aktualisieren     %5.5s Paket(e)         \n"
-"Enfernen          %5.5s Paket(e)         \n"
+"Installieren      %5.5s Pakete(e)         \n"
+"Aktualisieren   %5.5s Pakete(e)         \n"
+"Enfernen           %5.5s Paket(e)         \n"
 
 #: ../output.py:558
 msgid "Removed"
commit c1c433fd923dd272c87e19c5c2ad33071cdd79c0
Author: James Antill <james at and.org>
Date:   Fri Nov 21 12:03:53 2008 -0500

    Revert "Added Catalan translation by Xavier Conde"
    
    This reverts commit c0775d5862db6cf5a2db38e5816d205a10a9f0ea.
    
     Trying to merge with yum-3_2_X

diff --git a/po/ca.po b/po/ca.po
deleted file mode 100644
index 0e21ad5..0000000
--- a/po/ca.po
+++ /dev/null
@@ -1,1933 +0,0 @@
-# Catalan translations for yum package.
-# Copyright (C) 2008 Red Hat, Inc.
-# This file is distributed under the same license as the
-#  yum package.
-#
-# Josep Maria Brunetti Fernández <josepb at gmail.com>, 2008
-#
-# This file is translated according to the glossary and style guide of
-#   Softcatalà. If you plan to modify this file, please read first the page
-#   of the Catalan translation team for the Fedora project at:
-#   http://www.softcatala.org/projectes/fedora/
-#   and contact the previous translator
-#
-# Aquest fitxer s'ha de traduir d'acord amb el recull de termes i la guia
-#   d'estil de Softcatalà. Si voleu modificar aquest fitxer, llegiu si
-#   us plau la pàgina de catalanització del projecte Fedora a:
-#   http://www.softcatala.org/projectes/fedora/
-#   i contacteu l'anterior traductor/a.
-msgid ""
-msgstr ""
-"Project-Id-Version: yum\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-06-26 19:39+0200\n"
-"Last-Translator: Josep Maria Brunetti Fernández <josepb at gmail.com>\n"
-"Language-Team: Language-Team: Catalan <fedora at softcatala.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;"
-
-#: ../callback.py:48 ../output.py:512
-msgid "Updating"
-msgstr "S'està actualitzant"
-
-#: ../callback.py:49
-msgid "Erasing"
-msgstr "S'està esborrant"
-
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
-msgid "Installing"
-msgstr "S'està instal·lant"
-
-#: ../callback.py:52 ../callback.py:58
-msgid "Obsoleted"
-msgstr "Obsolet"
-
-#: ../callback.py:54 ../output.py:558
-msgid "Updated"
-msgstr "Actualitzat"
-
-#: ../callback.py:55
-msgid "Erased"
-msgstr "Esborrat"
-
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
-msgid "Installed"
-msgstr "Instal·lat"
-
-#: ../callback.py:130
-msgid "No header - huh?"
-msgstr "No hi ha capçalera"
-
-#: ../callback.py:168
-msgid "Repackage"
-msgstr "Reempaqueta"
-
-#: ../callback.py:189
-#, python-format
-msgid "Error: invalid output state: %s for %s"
-msgstr "Error: estat de sortida invàlid: %s per a %s"
-
-#: ../callback.py:212
-#, python-format
-msgid "Erased: %s"
-msgstr "Esborrat: %s"
-
-#: ../callback.py:217 ../output.py:513
-msgid "Removing"
-msgstr "S'està esborrant"
-
-#: ../callback.py:219
-msgid "Cleanup"
-msgstr "Neteja"
-
-#: ../cli.py:103
-#, python-format
-msgid "Command \"%s\" already defined"
-msgstr "L'ordre «%s» ja està definida"
-
-#: ../cli.py:115
-msgid "Setting up repositories"
-msgstr "Configurant repositoris"
-
-#: ../cli.py:126
-msgid "Reading repository metadata in from local files"
-msgstr "S'estan llegint les metadades de repositoris des de fitxers locals"
-
-#: ../cli.py:183 ../utils.py:72
-#, python-format
-msgid "Config Error: %s"
-msgstr "Error de configuració: %s"
-
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
-#, python-format
-msgid "Options Error: %s"
-msgstr "Error d'opcions: %s"
-
-#: ../cli.py:229
-msgid "You need to give some command"
-msgstr "Cal que doneu alguna ordre"
-
-#: ../cli.py:271
-msgid "Disk Requirements:\n"
-msgstr "Requeriments de disc:\n"
-
-#: ../cli.py:273
-#, python-format
-msgid "  At least %dMB needed on the %s filesystem.\n"
-msgstr "  Es necessiten almenys %dMB al sistema de fitxers %s.\n"
-
-#. TODO: simplify the dependency errors?
-#. Fixup the summary
-#: ../cli.py:278
-msgid ""
-"Error Summary\n"
-"-------------\n"
-msgstr "Resum d'errors\n"
-"-------------\n"
-
-#: ../cli.py:317
-msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "S'ha intentat executar la transacció però no hi ha res a fer. S'està sortint."
-
-#: ../cli.py:347
-msgid "Exiting on user Command"
-msgstr "S'està sortint de l'ordre de l'usuari"
-
-#: ../cli.py:351
-msgid "Downloading Packages:"
-msgstr "S'estan descarregant els següents paquets:"
-
-#: ../cli.py:356
-msgid "Error Downloading Packages:\n"
-msgstr "S'ha produït un error descarregant els següents paquets:\n"
-
-#: ../cli.py:370 ../yum/__init__.py:2746
-msgid "Running rpm_check_debug"
-msgstr "S'està executant rpm_check_debug"
-
-#: ../cli.py:373 ../yum/__init__.py:2749
-msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "ERROR amb rpm_check_debug vs depsolve:"
-
-#: ../cli.py:377 ../yum/__init__.py:2751
-msgid "Please report this error in bugzilla"
-msgstr "Siusplau, informeu d'aquest error al bugzilla"
-
-#: ../cli.py:383
-msgid "Running Transaction Test"
-msgstr "S'està executant la transacció de prova"
-
-#: ../cli.py:399
-msgid "Finished Transaction Test"
-msgstr "Ha acabat la transacció de prova"
-
-#: ../cli.py:401
-msgid "Transaction Check Error:\n"
-msgstr "S'ha produït un error en la transacció de prova:\n"
-
-#: ../cli.py:408
-msgid "Transaction Test Succeeded"
-msgstr "La transacció de prova ha acabat amb èxit"
-
-#: ../cli.py:429
-msgid "Running Transaction"
-msgstr "S'està executant la transacció"
-
-#: ../cli.py:459
-msgid ""
-"Refusing to automatically import keys when running unattended.\n"
-"Use \"-y\" to override."
-msgstr "No s'importaran automàticament les claus en una execució desatesa.\n"
-"Feu servir \"-y\" per a importar les claus."
-
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "S'estan analitzant els arguments del paquet a instal·lar"
-
-#: ../cli.py:501
-#, python-format
-msgid "No package %s available."
-msgstr "El paquet %s no està disponible"
-
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
-msgid "Package(s) to install"
-msgstr "Paquets a instal·lar"
-
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
-msgid "Nothing to do"
-msgstr "Res a fer"
-
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, python-format
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "No s'actualitzarà el paquet obsolet: %s.%s %s:%s-%s"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "No s'ha pogut trobar cap actualització per a %s"
-
-#: ../cli.py:580
-#, python-format
-msgid "%d packages marked for Update"
-msgstr "%d paquets marcats per a actualitzar"
-
-#: ../cli.py:583
-msgid "No Packages marked for Update"
-msgstr "No hi ha cap paquet marcat per a actualitzar"
-
-#: ../cli.py:599
-#, python-format
-msgid "%d packages marked for removal"
-msgstr "%d paquets marcats per a esborrar"
-
-#: ../cli.py:602
-msgid "No Packages marked for removal"
-msgstr "No hi ha cap paquet marcat per a esborrar"
-
-#: ../cli.py:614
-msgid "No Packages Provided"
-msgstr "No s'ha proporcionat cap paquet"
-
-#: ../cli.py:654
-msgid "Matching packages for package list to user args"
-msgstr "S'està comparant els paquets per a la llista de paquets amb els arguments de l'usuari"
-
-#: ../cli.py:701
-#, python-format
-msgid "Warning: No matches found for: %s"
-msgstr "Avís: no s'ha trobat cap coincidència per a: %s"
-
-#: ../cli.py:704
-msgid "No Matches found"
-msgstr "No s'ha trobat cap coincidència"
-
-#: ../cli.py:745
-#, python-format
-msgid "No Package Found for %s"
-msgstr "No s'ha trobat cap paquet per a %s"
-
-#: ../cli.py:757
-msgid "Cleaning up Everything"
-msgstr "S'està netejant tot"
-
-#: ../cli.py:771
-msgid "Cleaning up Headers"
-msgstr "S'estan netejant les capçaleres"
-
-#: ../cli.py:774
-msgid "Cleaning up Packages"
-msgstr "S'estan netejant els paquets"
-
-#: ../cli.py:777
-msgid "Cleaning up xml metadata"
-msgstr "S'estan netejant les metadades xml"
-
-#: ../cli.py:780
-msgid "Cleaning up database cache"
-msgstr "S'està netejant la memòria cau de la base de dades"
-
-#: ../cli.py:783
-msgid "Cleaning up expire-cache metadata"
-msgstr "S'està netejant la memòria cau de metadades que han vençut"
-
-#: ../cli.py:786
-msgid "Cleaning up plugins"
-msgstr "S'estan netejant les extensions"
-
-#: ../cli.py:807
-msgid "Installed Groups:"
-msgstr "Grups instal·lats:"
-
-#: ../cli.py:814
-msgid "Available Groups:"
-msgstr "Grups disponibles:"
-
-#: ../cli.py:820
-msgid "Done"
-msgstr "Fet"
-
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
-#, python-format
-msgid "Warning: Group %s does not exist."
-msgstr "Avís: El grup %s no existeix"
-
-#: ../cli.py:853
-msgid "No packages in any requested group available to install or update"
-msgstr "No hi ha cap paquet disponible per a instal·lar o actualitzar en els grups sol·licitats"
-
-#: ../cli.py:855
-#, python-format
-msgid "%d Package(s) to Install"
-msgstr "%d paquets a instal·lar"
-
-#: ../cli.py:865
-#, python-format
-msgid "No group named %s exists"
-msgstr "No existeix cap grup anomenat %s"
-
-#: ../cli.py:871
-msgid "No packages to remove from groups"
-msgstr "No hi ha cap paquet a esborrar dels grups"
-
-#: ../cli.py:873
-#, python-format
-msgid "%d Package(s) to remove"
-msgstr "%d paquets a esborrar"
-
-#: ../cli.py:915
-#, python-format
-msgid "Package %s is already installed, skipping"
-msgstr "El paquet %s ja està instal·lat, s'ometrà"
-
-#: ../cli.py:926
-#, python-format
-msgid "Discarding non-comparable pkg %s.%s"
-msgstr "S'està descartant el paquet no comparable %s.%s"
-
-#. we've not got any installed that match n or n+a
-#: ../cli.py:952
-#, python-format
-msgid "No other %s installed, adding to list for potential install"
-msgstr "No hi ha cap altre %s instal·lat, s'afegeix a la llista per a una possible instal·lació"
-
-#: ../cli.py:971
-#, python-format
-msgid "Command line error: %s"
-msgstr "Error en la línia d'ordres: %s"
-
-#: ../cli.py:1101
-msgid "be tolerant of errors"
-msgstr "sigues tolerant a errors"
-
-#: ../cli.py:1103
-msgid "run entirely from cache, don't update cache"
-msgstr "executa totalment des de la memòria cau, no actualitzis la memòria cau"
-
-#: ../cli.py:1105
-msgid "config file location"
-msgstr "ubicació del fitxer de configuració"
-
-#: ../cli.py:1107
-msgid "maximum command wait time"
-msgstr "temps màxim d'espera d'ordres"
-
-#: ../cli.py:1109
-msgid "debugging output level"
-msgstr "nivell de sortida de depuració"
-
-#: ../cli.py:1113
-msgid "show duplicates, in repos, in list/search commands"
-msgstr "mostra duplicats, en repositoris, en les ordres llista i cerca"
-
-#: ../cli.py:1115
-msgid "error output level"
-msgstr "error en el nivell de sortida"
-
-#: ../cli.py:1118
-msgid "quiet operation"
-msgstr "operació silenciosa"
-
-#: ../cli.py:1122
-msgid "answer yes for all questions"
-msgstr "respon sí a totes les preguntes"
-
-#: ../cli.py:1124
-msgid "show Yum version and exit"
-msgstr "mostra la versió de Yum i surt"
-
-#: ../cli.py:1125
-msgid "set install root"
-msgstr "estableix l'arrel de la instal·lació"
-
-#: ../cli.py:1129
-msgid "enable one or more repositories (wildcards allowed)"
-msgstr "habilita un o més repositoris (es permeten caràcters de reemplaçament)"
-
-#: ../cli.py:1133
-msgid "disable one or more repositories (wildcards allowed)"
-msgstr "deshabilita un o més repositoris (es permeten caràcters de reemplaçament)"
-
-#: ../cli.py:1136
-msgid "exclude package(s) by name or glob"
-msgstr "exclou els paquets per nom o expressió regular del glob"
-
-#: ../cli.py:1138
-msgid "disable exclude from main, for a repo or for everything"
-msgstr "deshabilita l'exclusió des de l'inici, per a un repositori o per a tot"
-
-#: ../cli.py:1141
-msgid "enable obsoletes processing during updates"
-msgstr "habilita el processament d'obsolets durant les actualitzacions"
-
-#: ../cli.py:1143
-msgid "disable Yum plugins"
-msgstr "deshabilita les extensions de Yum"
-
-#: ../cli.py:1145
-msgid "disable gpg signature checking"
-msgstr "deshabilita la comprobació de signatures gpg"
-
-#: ../cli.py:1147
-msgid "disable plugins by name"
-msgstr "deshabilita extensions per nom"
-
-#: ../cli.py:1150
-msgid "skip packages with depsolving problems"
-msgstr "omet paquets amb problemes de resolució de dependències"
-
-#: ../output.py:229
-msgid "Jan"
-msgstr "Gen"
-
-#: ../output.py:229
-msgid "Feb"
-msgstr "Feb"
-
-#: ../output.py:229
-msgid "Mar"
-msgstr "Mar"
-
-#: ../output.py:229
-msgid "Apr"
-msgstr "Abr"
-
-#: ../output.py:229
-msgid "May"
-msgstr "Mai"
-
-#: ../output.py:229
-msgid "Jun"
-msgstr "Jun"
-
-#: ../output.py:230
-msgid "Jul"
-msgstr "Jul"
-
-#: ../output.py:230
-msgid "Aug"
-msgstr "Ago"
-
-#: ../output.py:230
-msgid "Sep"
-msgstr "Set"
-
-#: ../output.py:230
-msgid "Oct"
-msgstr "Oct"
-
-#: ../output.py:230
-msgid "Nov"
-msgstr "Nov"
-
-#: ../output.py:230
-msgid "Dec"
-msgstr "Des"
-
-#: ../output.py:240
-msgid "Trying other mirror."
-msgstr "S'està intentant un altre servidor rèplica"
-
-#: ../output.py:293
-#, python-format
-msgid "Name       : %s"
-msgstr "Nom       : %s"
-
-#: ../output.py:294
-#, python-format
-msgid "Arch       : %s"
-msgstr "Arq       : %s"
-
-#: ../output.py:296
-#, python-format
-msgid "Epoch      : %s"
-msgstr "Època      : %s"
-
-#: ../output.py:297
-#, python-format
-msgid "Version    : %s"
-msgstr "Versió    : %s"
-
-#: ../output.py:298
-#, python-format
-msgid "Release    : %s"
-msgstr "Release    : %s"
-
-#: ../output.py:299
-#, python-format
-msgid "Size       : %s"
-msgstr "Mida       : %s"
-
-#: ../output.py:300
-#, python-format
-msgid "Repo       : %s"
-msgstr "Repo       : %s"
-
-#: ../output.py:302
-#, python-format
-msgid "Committer  : %s"
-msgstr "Desenvolupador  : %s"
-
-#: ../output.py:303
-msgid "Summary    : "
-msgstr "Resum    : "
-
-#: ../output.py:305
-#, python-format
-msgid "URL        : %s"
-msgstr "URL        : %s"
-
-#: ../output.py:306
-#, python-format
-msgid "License    : %s"
-msgstr "Llicència    : %s"
-
-#: ../output.py:307
-msgid "Description: "
-msgstr "Descripció: "
-
-#: ../output.py:351
-# REMEMBER to Translate [Y/N] to the current locale
-msgid "Is this ok [y/N]: "
-msgstr "És correcte [s/N]: "
-
-#: ../output.py:357 ../output.py:360
-msgid "y"
-msgstr "s"
-
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
-msgid "yes"
-msgstr "sí"
-
-#: ../output.py:357
-msgid "no"
-msgstr "no"
-
-#: ../output.py:367
-#, python-format
-msgid ""
-"\n"
-"Group: %s"
-msgstr ""
-"\n"
-"Grup: %s"
-
-#: ../output.py:369
-#, python-format
-msgid " Description: %s"
-msgstr " Descripció: %s"
-
-#: ../output.py:371
-msgid " Mandatory Packages:"
-msgstr " Paquets obligatoris:"
-
-#: ../output.py:376
-msgid " Default Packages:"
-msgstr " Paquets per defecte:"
-
-#: ../output.py:381
-msgid " Optional Packages:"
-msgstr " Paquets opcionals:"
-
-#: ../output.py:386
-msgid " Conditional Packages:"
-msgstr " Paquets condicionals:"
-
-#: ../output.py:394
-#, python-format
-msgid "package: %s"
-msgstr "paquet: %s"
-
-#: ../output.py:396
-msgid "  No dependencies for this package"
-msgstr "  No hi ha dependències per a aquest paquet"
-
-#: ../output.py:401
-#, python-format
-msgid "  dependency: %s"
-msgstr "  dependència: %s"
-
-#: ../output.py:403
-msgid "   Unsatisfied dependency"
-msgstr "   Dependència insatisfeta"
-
-#: ../output.py:461
-msgid "Matched from:"
-msgstr "Coincidències amb:"
-
-#: ../output.py:487
-msgid "There was an error calculating total download size"
-msgstr "S'ha produït un error en calcular la mida total de la descàrrega"
-
-#: ../output.py:492
-#, python-format
-msgid "Total size: %s"
-msgstr "Mida total: %s"
-
-#: ../output.py:495
-#, python-format
-msgid "Total download size: %s"
-msgstr "Mida total de la descàrrega: %s"
-
-#: ../output.py:507
-msgid "Package"
-msgstr "Paquet"
-
-#: ../output.py:507
-msgid "Arch"
-msgstr "Arq"
-
-#: ../output.py:507
-msgid "Version"
-msgstr "Versió"
-
-#: ../output.py:507
-msgid "Repository"
-msgstr "Repositori"
-
-#: ../output.py:507
-msgid "Size"
-msgstr "Mida"
-
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "S'està instal·lant per dependències"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "S'està actualitzant per dependències"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "S'està esborrant per dependències"
-
-#: ../output.py:528
-#, python-format
-msgid ""
-"     replacing  %s.%s %s\n"
-"\n"
-msgstr ""
-"     s'està reemplaçant  %s.%s %s\n"
-"\n"
-
-#: ../output.py:536
-#, python-format
-msgid ""
-"\n"
-"Transaction Summary\n"
-"=============================================================================\n"
-"Install  %5.5s Package(s)         \n"
-"Update   %5.5s Package(s)         \n"
-"Remove   %5.5s Package(s)         \n"
-msgstr ""
-"\n"
-"Resum de transaccions\n"
-"=============================================================================\n"
-"Instal·la  %5.5s paquets\n"
-"Actualitza %5.5s paquets\n"
-"Esborra    %5.5s paquets\n"
-""
-
-#: ../output.py:554
-msgid "Removed"
-msgstr "Esborrat"
-
-#: ../output.py:555
-msgid "Dependency Removed"
-msgstr "Dependència esborrada"
-
-#: ../output.py:557
-msgid "Dependency Installed"
-msgstr "Dependència instal·lada"
-
-#: ../output.py:559
-msgid "Dependency Updated"
-msgstr "Dependència actualitzada"
-
-#: ../output.py:560
-msgid "Replaced"
-msgstr "Reemplaçat"
-
-#: ../output.py:618
-#, python-format
-msgid ""
-"\n"
-" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-"seconds to exit.\n"
-msgstr ""
-"\n"
-"S'ha cancel·lat la descàrrega actual, %sinterromp (crtl-c) de nou%s en %s%s%s "
-"segons per a sortir.\n"
-
-#: ../output.py:628
-msgid "user interrupt"
-msgstr "interrupció de l'usuari"
-
-#: ../output.py:639
-msgid "installed"
-msgstr "instal·lat"
-
-#: ../output.py:640
-msgid "updated"
-msgstr "actualitzat"
-
-#: ../output.py:641
-msgid "obsoleted"
-msgstr "obsolet"
-
-#: ../output.py:642
-msgid "erased"
-msgstr "esborrat"
-
-#: ../output.py:646
-#, python-format
-msgid "---> Package %s.%s %s:%s-%s set to be %s"
-msgstr "---> Paquet %s.%s %s:%s-%s passarà a ser %s"
-
-#: ../output.py:653
-msgid "--> Running transaction check"
-msgstr "--> S'està executant la transacció de prova"
-
-#: ../output.py:658
-msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Tornant a calcular la resolució de dependències amb els nous canvis."
-
-#: ../output.py:663
-msgid "--> Finished Dependency Resolution"
-msgstr "--> Ha finalitzat la resolució de dependències"
-
-#: ../output.py:668
-#, python-format
-msgid "--> Processing Dependency: %s for package: %s"
-msgstr "--> S'està processant la dependència %s per al paquet: %s"
-
-#: ../output.py:673
-#, python-format
-msgid "--> Unresolved Dependency: %s"
-msgstr "--> Dependència no resolta: %s"
-
-#: ../output.py:679
-#, python-format
-msgid "--> Processing Conflict: %s conflicts %s"
-msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s"
-
-#: ../output.py:682
-msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, espereu."
-
-#: ../output.py:686
-#, python-format
-msgid "---> Downloading header for %s to pack into transaction set."
-msgstr "---> S'està descarregant la capçalera per a %s per a empaquetar dins de la transacció de prova."
-
-#: ../yumcommands.py:36
-msgid "You need to be root to perform this command."
-msgstr "Heu de ser root per a executar aquesta ordre."
-
-#: ../yumcommands.py:43
-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"
-"Heu habilitat la comprovació de paquets utilitzant claus GPG. És una bona opció. \n"
-"No obstant, no teniu cap clau pública GPG instal·lada. Necessiteu "
-"descarregar\n"
-"les claus per als paquets paquets que desitdeu instal·lar i instal·lar-les.\n"
-"Podeu fer-ho executant l'ordre:\n"
-"    rpm --import clau.pública.gpg\n"
-"\n"
-"\n"
-"També podeu especificar la url de la clau que voleu utilitzar\n"
-"per a un repositori en l'opció 'gpgkey' en la secció d'un repositori i yum \n"
-"la instal·larà per vosaltres.\n"
-"\n"
-"Per a més informació contacteu el vostre distribuidor o proveïdor de paquets.\n"
-
-#: ../yumcommands.py:63
-#, python-format
-msgid "Error: Need to pass a list of pkgs to %s"
-msgstr "Error: es necessita passar una llista de paquets a %s"
-
-#: ../yumcommands.py:69
-msgid "Error: Need an item to match"
-msgstr "Error: es necessita algun element per comparar"
-
-#: ../yumcommands.py:75
-msgid "Error: Need a group or list of groups"
-msgstr "Error: es necessita un grup o una llista de grups"
-
-#: ../yumcommands.py:84
-#, python-format
-msgid "Error: clean requires an option: %s"
-msgstr "Error: la neteja requereix una opció: %s"
-
-#: ../yumcommands.py:89
-#, python-format
-msgid "Error: invalid clean argument: %r"
-msgstr "Error: argument invàlid per a la neteja: %r"
-
-#: ../yumcommands.py:102
-msgid "No argument to shell"
-msgstr "No hi ha arguments per a l'intèrpret d'ordres"
-
-#: ../yumcommands.py:105
-#, python-format
-msgid "Filename passed to shell: %s"
-msgstr "Nom del fitxer passat a l'intèrpret d'ordres: %s"
-
-#: ../yumcommands.py:109
-#, python-format
-msgid "File %s given as argument to shell does not exist."
-msgstr "El fitxer %s donat com a argument a l'intèrpret d'ordres no existeix."
-
-#: ../yumcommands.py:115
-msgid "Error: more than one file given as argument to shell."
-msgstr "Error: s'ha donat més d'un fitxer com a arguments per a l'intèrpret d'ordres."
-
-#: ../yumcommands.py:156
-msgid "PACKAGE..."
-msgstr "PAQUET..."
-
-#: ../yumcommands.py:159
-msgid "Install a package or packages on your system"
-msgstr "Instal·la un o més paquets al vostre sistema"
-
-#: ../yumcommands.py:168
-msgid "Setting up Install Process"
-msgstr "S'està preparant el procés d'instal·lació"
-
-#: ../yumcommands.py:179
-msgid "[PACKAGE...]"
-msgstr "[PAQUET...]"
-
-#: ../yumcommands.py:182
-msgid "Update a package or packages on your system"
-msgstr "S'ha actualitzat un o més paquets al vostre sistema"
-
-#: ../yumcommands.py:190
-msgid "Setting up Update Process"
-msgstr "S'està preparant el procés d'actualització"
-
-#: ../yumcommands.py:204
-msgid "Display details about a package or group of packages"
-msgstr "Mostra detalls sobre un paquet o un grup de paquets"
-
-#: ../yumcommands.py:212
-msgid "Installed Packages"
-msgstr "Paquets instal·lats"
-
-#: ../yumcommands.py:213
-msgid "Available Packages"
-msgstr "Paquets disponibles"
-
-#: ../yumcommands.py:214
-msgid "Extra Packages"
-msgstr "Paquets extra"
-
-#: ../yumcommands.py:215
-msgid "Updated Packages"
-msgstr "Paquets actualitzats"
-
-#: ../yumcommands.py:221 ../yumcommands.py:225
-msgid "Obsoleting Packages"
-msgstr "Paquets fets obsolets"
-
-#: ../yumcommands.py:226
-msgid "Recently Added Packages"
-msgstr "Paquets recentment afegits"
-
-#: ../yumcommands.py:232
-msgid "No matching Packages to list"
-msgstr "No hi ha paquets coincidents per llistar"
-
-#: ../yumcommands.py:246
-msgid "List a package or groups of packages"
-msgstr "Llista un paquet o un grup de paquets"
-
-#: ../yumcommands.py:258
-msgid "Remove a package or packages from your system"
-msgstr "Esborra un o més paquets del vostre sistema"
-
-#: ../yumcommands.py:266
-msgid "Setting up Remove Process"
-msgstr "S'està preparant el procés d'esborrat"
-
-#: ../yumcommands.py:278
-msgid "Setting up Group Process"
-msgstr "S'està preparant el procés de grup"
-
-#: ../yumcommands.py:284
-msgid "No Groups on which to run command"
-msgstr "No hi ha cap grup on executar l'ordre"
-
-#: ../yumcommands.py:297
-msgid "List available package groups"
-msgstr "Llista els grups de paquets disponibles"
-
-#: ../yumcommands.py:314
-msgid "Install the packages in a group on your system"
-msgstr "Instal·la els paquets en un grup en el vostre sistema"
-
-#: ../yumcommands.py:336
-msgid "Remove the packages in a group from your system"
-msgstr "Esborra els paquets en un grup en el vostre sistema"
-
-#: ../yumcommands.py:360
-msgid "Display details about a package group"
-msgstr "Mostra detalls sobre un grup de paquets"
-
-#: ../yumcommands.py:384
-msgid "Generate the metadata cache"
-msgstr "Genera les metadades de la memòria cau"
-
-#: ../yumcommands.py:390
-msgid "Making cache files for all metadata files."
-msgstr "S'estan fent els fitxers de memòria cau per a tots els fitxers de metadades."
-
-#: ../yumcommands.py:391
-msgid "This may take a while depending on the speed of this computer"
-msgstr "Això pot trigar una estona depenent de la velocitat d'aquest ordinador"
-
-#: ../yumcommands.py:412
-msgid "Metadata Cache Created"
-msgstr "S'han creat les metadades per a la memòria cau"
-
-#: ../yumcommands.py:426
-msgid "Remove cached data"
-msgstr "S'han esborrat les dades de la memòria cau"
-
-#: ../yumcommands.py:447
-msgid "Find what package provides the given value"
-msgstr "Troba quin paquet proporciona el valor donat"
-
-#: ../yumcommands.py:467
-msgid "Check for available package updates"
-msgstr "Comprova si hi ha actualitzacions de paquets disponibles"
-
-#: ../yumcommands.py:490
-msgid "Search package details for the given string"
-msgstr "Busca detalls del paquet per la cadena donada"
-
-#: ../yumcommands.py:496
-msgid "Searching Packages: "
-msgstr "S'estan buscant paquets: "
-
-#: ../yumcommands.py:513
-msgid "Update packages taking obsoletes into account"
-msgstr "Actualitza paquets tenint en compte els obsolets"
-
-#: ../yumcommands.py:522
-msgid "Setting up Upgrade Process"
-msgstr "S'està preparant el procés d'actualització"
-
-#: ../yumcommands.py:536
-msgid "Install a local RPM"
-msgstr "Instal·la un RPM local"
-
-#: ../yumcommands.py:545
-msgid "Setting up Local Package Process"
-msgstr "S'està configurant el procés local de paquets"
-
-#: ../yumcommands.py:564
-msgid "Determine which package provides the given dependency"
-msgstr "Determina quin paquet satisfà la dependència donada"
-
-#: ../yumcommands.py:567
-msgid "Searching Packages for Dependency:"
-msgstr "S'estan buscant paquets per a la dependència:"
-
-#: ../yumcommands.py:581
-msgid "Run an interactive yum shell"
-msgstr "Executa un intèrpret d'ordres interactiu de yum"
-
-#: ../yumcommands.py:587
-msgid "Setting up Yum Shell"
-msgstr "S'està preparant l'intèrpret d'ordres de yum"
-
-#: ../yumcommands.py:605
-msgid "List a package's dependencies"
-msgstr "Llista les dependències d'un paquet"
-
-#: ../yumcommands.py:611
-msgid "Finding dependencies: "
-msgstr "S'estan trobant dependències: "
-
-#: ../yumcommands.py:627
-msgid "Display the configured software repositories"
-msgstr "Mostra els repositoris de programari configurats"
-
-#: ../yumcommands.py:645
-msgid "repo id"
-msgstr "id repo"
-
-#: ../yumcommands.py:645
-msgid "repo name"
-msgstr "nom repo"
-
-#: ../yumcommands.py:645
-msgid "status"
-msgstr "estat"
-
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "habilitat"
-
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "deshabilitat"
-
-#: ../yumcommands.py:671
-msgid "Display a helpful usage message"
-msgstr "Mostra un missatge d'ajuda d'ús"
-
-#: ../yumcommands.py:705
-#, python-format
-msgid "No help available for %s"
-msgstr "No hi ha ajuda disponible per a %s"
-
-#: ../yumcommands.py:710
-msgid ""
-"\n"
-"\n"
-"aliases: "
-msgstr ""
-"\n"
-"\n"
-"àlies: "
-
-#: ../yumcommands.py:712
-msgid ""
-"\n"
-"\n"
-"alias: "
-msgstr ""
-"\n"
-"\n"
-"àlies: "
-
-#: ../yumcommands.py:741
-msgid "Setting up Reinstall Process"
-msgstr "S'està preparant el procés de reinstal·lació"
-
-#: ../yumcommands.py:755
-msgid "reinstall a package"
-msgstr "reinstal·la un paquet"
-
-#: ../yummain.py:41
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel"
-msgstr ""
-"\n"
-"\n"
-"S'està sortint per la cancel·lació de l'usuari"
-
-#: ../yummain.py:47
-msgid ""
-"\n"
-"\n"
-"Exiting on Broken Pipe"
-msgstr ""
-"\n"
-"\n"
-"S'està sortint en trobar la canonada trencada"
-
-#: ../yummain.py:105
-msgid ""
-"Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr ""
-"Alguna altra aplicació té el bloqueig del yum; s'està esperant a que surti..."
-
-#: ../yummain.py:132 ../yummain.py:171
-#, python-format
-msgid "Error: %s"
-msgstr "Error: %s"
-
-#: ../yummain.py:142 ../yummain.py:178
-#, python-format
-msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "Errors desconeguts: Codi de sortida: %d:"
-
-#. Depsolve stage
-#: ../yummain.py:149
-msgid "Resolving Dependencies"
-msgstr "S'estan resolent dependències"
-
-#: ../yummain.py:184
-msgid ""
-"\n"
-"Dependencies Resolved"
-msgstr ""
-"\n"
-"Dependències resoltes"
-
-#: ../yummain.py:198
-msgid "Complete!"
-msgstr "Completat!"
-
-#: ../yummain.py:245
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel."
-msgstr ""
-"\n"
-"\n"
-"S'està sortint de l'ordre de l'usuari."
-
-#: ../yum/depsolve.py:82
-msgid "doTsSetup() will go away in a future version of Yum.\n"
-msgstr "doTsSetup() desapareixerà en una futura versió de Yum.\n"
-
-#: ../yum/depsolve.py:95
-msgid "Setting up TransactionSets before config class is up"
-msgstr "S'està configurant TransactionSets abans que la classe de configuració "
-"estigui iniciada"
-
-#: ../yum/depsolve.py:136
-#, python-format
-msgid "Invalid tsflag in config file: %s"
-msgstr "Tsflag invàlid en el fitxer de configuració: %s"
-
-#: ../yum/depsolve.py:147
-#, python-format
-msgid "Searching pkgSack for dep: %s"
-msgstr "S'està buscant pkgSack per a la dependència: %s"
-
-#: ../yum/depsolve.py:170
-#, python-format
-msgid "Potential match for %s from %s"
-msgstr "Coincidència potencial per a %s de %s"
-
-#: ../yum/depsolve.py:178
-#, python-format
-msgid "Matched %s to require for %s"
-msgstr "La coincidència %s es requereix per a %s"
-
-#: ../yum/depsolve.py:219
-#, python-format
-msgid "Member: %s"
-msgstr "Membre: %s"
-
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
-#, python-format
-msgid "%s converted to install"
-msgstr "%s convertits per a instal·lar"
-
-#: ../yum/depsolve.py:240
-#, python-format
-msgid "Adding Package %s in mode %s"
-msgstr "S'està afegint el paquet %s en mode %s"
-
-#: ../yum/depsolve.py:250
-#, python-format
-msgid "Removing Package %s"
-msgstr "S'està esborrant el paquet %s"
-
-#: ../yum/depsolve.py:261
-#, python-format
-msgid "%s requires: %s"
-msgstr "%s requereix: %s"
-
-#: ../yum/depsolve.py:312
-msgid "Needed Require has already been looked up, cheating"
-msgstr "El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
-
-#: ../yum/depsolve.py:322
-#, python-format
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "El requeriment necessari no és un nom de paquet. S'està buscant: %s"
-
-#: ../yum/depsolve.py:329
-#, python-format
-msgid "Potential Provider: %s"
-msgstr "Proveïdor potencial: %s"
-
-#: ../yum/depsolve.py:352
-#, python-format
-msgid "Mode is %s for provider of %s: %s"
-msgstr "El mode és %s per al proveïdor de %s: %s"
-
-#: ../yum/depsolve.py:356
-#, python-format
-msgid "Mode for pkg providing %s: %s"
-msgstr "Mode per al paquet que proporciona %s: %s"
-
-#: ../yum/depsolve.py:360
-#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar"
-
-#: ../yum/depsolve.py:372
-#, python-format
-msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: S'està marcant com a obsolet %s amb %s per resoldre dependències."
-
-#: ../yum/depsolve.py:375
-#, python-format
-msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: S'està actualitzant %s per a resoldre dependències."
-
-#: ../yum/depsolve.py:378
-#, python-format
-msgid "Cannot find an update path for dep for: %s"
-msgstr "No es pot trobar un camí d'actualització de dependències per a: %s"
-
-#: ../yum/depsolve.py:388
-#, python-format
-msgid "Unresolvable requirement %s for %s"
-msgstr "No es pot resoldre el requeriment %s per a %s"
-
-#. is it already installed?
-#: ../yum/depsolve.py:434
-#, python-format
-msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s es troba en els paquets proporcionats però ja es troba instal·lat, s'està esborrant."
-
-#: ../yum/depsolve.py:449
-#, python-format
-msgid "Potential resolving package %s has newer instance in ts."
-msgstr "El paquet potencial que resol dependències %s té una instància nova a ts"
-
-#: ../yum/depsolve.py:460
-#, python-format
-msgid "Potential resolving package %s has newer instance installed."
-msgstr "El paquet potencial que resol dependències %s té una nova instància insta·lada."
-
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
-#, python-format
-msgid "Missing Dependency: %s is needed by package %s"
-msgstr "La dependència que falta: %s es necessita per al paquet %s"
-
-#: ../yum/depsolve.py:481
-#, python-format
-msgid "%s already in ts, skipping this one"
-msgstr "%s ja es troba en ts, s'està ometent"
-
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-"S'ha produït un error trobant el millor proveïdor de %s per a %s, el bucle ha excedit la longitud màxima"
-
-#: ../yum/depsolve.py:537
-#, python-format
-msgid "TSINFO: Marking %s as update for %s"
-msgstr "TSINFO: S'està marcant %s com a actualització per a %s"
-
-#: ../yum/depsolve.py:544
-#, python-format
-msgid "TSINFO: Marking %s as install for %s"
-msgstr "TSINFO: S'està marcant %s com a instal·lació per a %s"
-
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
-msgid "Success - empty transaction"
-msgstr "Èxit - transacció buida"
-
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
-msgid "Restarting Loop"
-msgstr "S'està recomençant el bucle"
-
-#: ../yum/depsolve.py:702
-msgid "Dependency Process ending"
-msgstr "Està acabant el procés de dependències"
-
-#: ../yum/depsolve.py:708
-#, python-format
-msgid "%s from %s has depsolving problems"
-msgstr "%s de %s té problemes resolent dependències"
-
-#: ../yum/depsolve.py:715
-msgid "Success - deps resolved"
-msgstr "Èxit - dependències resoltes"
-
-#: ../yum/depsolve.py:729
-#, python-format
-msgid "Checking deps for %s"
-msgstr "S'estan comprobant les dependències per a %s"
-
-#: ../yum/depsolve.py:782
-#, python-format
-msgid "looking for %s as a requirement of %s"
-msgstr "s'està buscant %s com a requeriment de %s"
-
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr "S'està comparant el millor: %s amb po: %s"
-
-#: ../yum/depsolve.py:937
-#, python-format
-msgid "Same: best %s == po: %s"
-msgstr "Igual: el millor %s == po: %s"
-
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
-#, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "el millor %s deixa com a obsolet el po: %s"
-
-#: ../yum/depsolve.py:955
-#, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "el po %s deixa com a obsolet el millor: %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
-#, python-format
-msgid "better arch in po %s"
-msgstr "millor arq en el po %s"
-
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
-#, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr "el po %s comparteix un rpm origen amb %s"
-
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
-#, python-format
-msgid "best %s shares a sourcerpm with %s"
-msgstr "el millor %s comparteix un rpm origen amb %s"
-
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
-#, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr "el po %s comparteix més que el prefix del nom amb %s"
-
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
-#, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr "el po %s té un nom més curt que el millor %s"
-
-#: ../yum/depsolve.py:1025
-#, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "el millor paquet %s comparteix més el prefix del nom amb %s"
-
-#: ../yum/__init__.py:119
-msgid "doConfigSetup() will go away in a future version of Yum.\n"
-msgstr "doConfigsetup() desapareixerà en una futura versió de Yum.\n"
-
-#: ../yum/__init__.py:296
-#, python-format
-msgid "Repository %r is missing name in configuration, using id"
-msgstr "Falta el nom del repositori %r en la configuració, s'utilitzarà l'id"
-
-#: ../yum/__init__.py:332
-msgid "plugins already initialised"
-msgstr "els connectors ja estan inicialitzats"
-
-#: ../yum/__init__.py:339
-msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-msgstr "doRpmDBSetup() desapareixerà en una futura versió de Yum.\n"
-
-#: ../yum/__init__.py:349
-msgid "Reading Local RPMDB"
-msgstr "S'està llegint un RPMDB local"
-
-#: ../yum/__init__.py:367
-msgid "doRepoSetup() will go away in a future version of Yum.\n"
-msgstr "doRepoSetup() desapareixerà en una futura versió de Yum.\n"
-
-#: ../yum/__init__.py:387
-msgid "doSackSetup() will go away in a future version of Yum.\n"
-msgstr "doSackSetup() desapareixerà en una versió futura de Yum.\n"
-
-#: ../yum/__init__.py:404
-msgid "Setting up Package Sacks"
-msgstr "S'estan configurant els sacs de paquets"
-
-#: ../yum/__init__.py:447
-#, python-format
-msgid "repo object for repo %s lacks a _resetSack method\n"
-msgstr "l'objecte repositori per al repositori %s no té un mètode _resetSack\n"
-
-#: ../yum/__init__.py:448
-msgid "therefore this repo cannot be reset.\n"
-msgstr "Aquest repositori no es pot reiniciar.\n"
-
-#: ../yum/__init__.py:453
-msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-msgstr "doUpdateSetup() desapareixerà en una futura versió de Yum.\n"
-
-#: ../yum/__init__.py:465
-msgid "Building updates object"
-msgstr "S'està construint l'objecte d'actualitzacions"
-
-#: ../yum/__init__.py:496
-msgid "doGroupSetup() will go away in a future version of Yum.\n"
-msgstr "doGroupSetup() desapareixerà en una futura versió de Yum.\n"
-
-#: ../yum/__init__.py:520
-msgid "Getting group metadata"
-msgstr "S'estan obtenint les metadades del grup"
-
-#: ../yum/__init__.py:546
-#, python-format
-msgid "Adding group file from repository: %s"
-msgstr "S'està afegint el fitxer del grup des del repositori: %s"
-
-#: ../yum/__init__.py:555
-#, python-format
-msgid "Failed to add groups file for repository: %s - %s"
-msgstr "No s'ha pogut afegir el fitxer dels grups des del repositori: %s - %s"
-
-#: ../yum/__init__.py:561
-msgid "No Groups Available in any repository"
-msgstr "No hi ha cap grup disponible en cap repositori"
-
-#: ../yum/__init__.py:611
-msgid "Importing additional filelist information"
-msgstr "S'està important informació adicional de la llista de fitxers"
-
-#: ../yum/__init__.py:657
-#, python-format
-msgid "Skip-broken round %i"
-msgstr "Intent %i d'omissió dels trencats"
-
-#: ../yum/__init__.py:680
-#, python-format
-msgid "Skip-broken took %i rounds "
-msgstr "L'omisió dels trencats ha necessitat %i intents"
-
-#: ../yum/__init__.py:681
-msgid ""
-"\n"
-"Packages skipped because of dependency problems:"
-msgstr ""
-"\n"
-"Paquets omesos degut a problemes de dependències:"
-
-#: ../yum/__init__.py:685
-#, python-format
-msgid "    %s from %s"
-msgstr "    %s des de %s"
-
-#: ../yum/__init__.py:774
-#, python-format
-msgid "Failed to remove transaction file %s"
-msgstr "No s'ha pogut esborrar el fitxer de transaccions %s"
-
-#: ../yum/__init__.py:814
-#, python-format
-msgid "excluding for cost: %s from %s"
-msgstr "s'està excloent per cost: %s de %s"
-
-#: ../yum/__init__.py:845
-msgid "Excluding Packages in global exclude list"
-msgstr "S'estan excloent paquets en la llista global d'exclusió"
-
-#: ../yum/__init__.py:847
-#, python-format
-msgid "Excluding Packages from %s"
-msgstr "S'estan excloent paquets de %s"
-
-#: ../yum/__init__.py:875
-#, python-format
-msgid "Reducing %s to included packages only"
-msgstr "S'està reduint %s únicament a paquets inclosos."
-
-#: ../yum/__init__.py:880
-#, python-format
-msgid "Keeping included package %s"
-msgstr "S'està mantenint el paquet inclòs %s"
-
-#: ../yum/__init__.py:886
-#, python-format
-msgid "Removing unmatched package %s"
-msgstr "S'està esborrant el paquet sense coincidències %s"
-
-#: ../yum/__init__.py:889
-msgid "Finished"
-msgstr "Finalitzat"
-
-#. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
-#, python-format
-msgid "Unable to check if PID %s is active"
-msgstr "No s'ha pogut comprovar si el PID %s es troba actiu"
-
-#. Another copy seems to be running.
-#: ../yum/__init__.py:923
-#, python-format
-msgid "Existing lock %s: another copy is running as pid %s."
-msgstr "Bloqueig existent %s: una altra còpia s'està executant amb pid %s."
-
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
-msgid "Package does not match intended download"
-msgstr "El paquet no coincideix amb la descàrrega intentada"
-
-#: ../yum/__init__.py:991
-msgid "Could not perform checksum"
-msgstr "No s'ha pogut realitzar la suma de verificació"
-
-#: ../yum/__init__.py:994
-msgid "Package does not match checksum"
-msgstr "No coincideix la suma de verificació del paquet"
-
-#: ../yum/__init__.py:1036
-#, python-format
-msgid "package fails checksum but caching is enabled for %s"
-msgstr "la suma de verificació del paquet falla però l'ús de memòria cau està habilitat per a %s"
-
-#: ../yum/__init__.py:1042
-#, python-format
-msgid "using local copy of %s"
-msgstr "s'està utilitzant la còpia local de %s"
-
-#: ../yum/__init__.py:1061
-#, python-format
-msgid "Insufficient space in download directory %s to download"
-msgstr "No hi ha espai suficient al directori de descàrregues %s per a descarregar"
-
-#: ../yum/__init__.py:1094
-msgid "Header is not complete."
-msgstr "La capçalera no està completa."
-
-#: ../yum/__init__.py:1134
-#, python-format
-msgid ""
-"Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr ""
-"La capçalera no es troba en la memòria cau local i està habilitat el mode de només memòria cau. No es pot descarregar %s"
-
-#: ../yum/__init__.py:1189
-#, python-format
-msgid "Public key for %s is not installed"
-msgstr "La clau pública per a %s no està instal·lada"
-
-#: ../yum/__init__.py:1193
-#, python-format
-msgid "Problem opening package %s"
-msgstr "Hi ha hagut un problema obrint el paquet %s"
-
-#: ../yum/__init__.py:1201
-#, python-format
-msgid "Public key for %s is not trusted"
-msgstr "La clau pública per a %s no és de confiança"
-
-#: ../yum/__init__.py:1205
-#, python-format
-msgid "Package %s is not signed"
-msgstr "El paquet %s no està signat"
-
-#: ../yum/__init__.py:1243
-#, python-format
-msgid "Cannot remove %s"
-msgstr "No es pot esborrar %s"
-
-#: ../yum/__init__.py:1247
-#, python-format
-msgid "%s removed"
-msgstr "S'ha esborrat %s"
-
-#: ../yum/__init__.py:1283
-#, python-format
-msgid "Cannot remove %s file %s"
-msgstr "No es pot esborrar %s fitxer %s"
-
-#: ../yum/__init__.py:1287
-#, python-format
-msgid "%s file %s removed"
-msgstr "%s fitxer %s esborrat"
-
-#: ../yum/__init__.py:1289
-#, python-format
-msgid "%d %s files removed"
-msgstr "%d %s fitxers esborrats"
-
-#: ../yum/__init__.py:1329
-#, python-format
-msgid "More than one identical match in sack for %s"
-msgstr "Hi ha més d'una coincidència idèntica en el sac per a %s"
-
-#: ../yum/__init__.py:1335
-#, python-format
-msgid "Nothing matches %s.%s %s:%s-%s from update"
-msgstr "No hi ha coincidències %s.%s-%s:%s-%s de l'actualització"
-
-#: ../yum/__init__.py:1543
-msgid ""
-"searchPackages() will go away in a future version of "
-"Yum.                      Use searchGenerator() instead. \n"
-msgstr ""
-"searchPackages() desapareixerà en una futura versió de "
-"Yum.                      Useu searchGenerator(). \n"
-
-#: ../yum/__init__.py:1580
-#, python-format
-msgid "Searching %d packages"
-msgstr "S'estan buscant %d paquets"
-
-#: ../yum/__init__.py:1584
-#, python-format
-msgid "searching package %s"
-msgstr "s'està buscant el paquet %s"
-
-#: ../yum/__init__.py:1596
-msgid "searching in file entries"
-msgstr "s'està buscant en les entrades de fitxers"
-
-#: ../yum/__init__.py:1603
-msgid "searching in provides entries"
-msgstr "s'està buscant en les entrades proporcionades"
-
-#: ../yum/__init__.py:1633
-#, python-format
-msgid "Provides-match: %s"
-msgstr "Proporciona-coincideix: %s"
-
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
-#, python-format
-msgid "No Group named %s exists"
-msgstr "No existeix cap grup anomenat %s"
-
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
-#, python-format
-msgid "package %s was not marked in group %s"
-msgstr "el paquet %s no estava marcat en el grup %s"
-
-#: ../yum/__init__.py:1770
-#, python-format
-msgid "Adding package %s from group %s"
-msgstr "S'està afegint el paquet %s del grup %s"
-
-#: ../yum/__init__.py:1774
-#, python-format
-msgid "No package named %s available to be installed"
-msgstr "No hi ha cap paquet anomenat %s disponible per a ser instal·lat"
-
-#: ../yum/__init__.py:1849
-#, python-format
-msgid "Package tuple %s could not be found in packagesack"
-msgstr "No s'ha pogut trobar la tupla de paquets %s al sac de paquets"
-
-#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
-msgid "Invalid versioned dependency string, try quoting it."
-msgstr "La cadena de versió de dependència és invàlida, proveu-ho entre cometes."
-
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
-msgid "Invalid version flag"
-msgstr "Versió de flag invàlida"
-
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
-#, python-format
-msgid "No Package found for %s"
-msgstr "No s'ha trobat cap paquet per a %s"
-
-#: ../yum/__init__.py:2066
-msgid "Package Object was not a package object instance"
-msgstr "L'objecte paquet no era una instància d'objecte paquet"
-
-#: ../yum/__init__.py:2070
-msgid "Nothing specified to install"
-msgstr "No hi ha res especificat per a instal·lar"
-
-#. only one in there
-#: ../yum/__init__.py:2085
-#, python-format
-msgid "Checking for virtual provide or file-provide for %s"
-msgstr "S'està verificant si hi ha un proveïdor virtual o un fitxer proveïdor per a %s"
-
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
-#, python-format
-msgid "No Match for argument: %s"
-msgstr "No hi ha cap coincidència per a l'argument: %s"
-
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
-msgid "No package(s) available to install"
-msgstr "No hi ha cap paquet disponible per a instal·lar"
-
-#: ../yum/__init__.py:2158
-#, python-format
-msgid "Package: %s  - already in transaction set"
-msgstr "El paquet: %s  - ja està en la transacció"
-
-#: ../yum/__init__.py:2171
-#, python-format
-msgid "Package %s already installed and latest version"
-msgstr "El paquet %s ja es troba instal·lat i en l'última versió."
-
-#: ../yum/__init__.py:2178
-#, python-format
-msgid "Package matching %s already installed. Checking for update."
-msgstr "El paquet coincident %s ja es troba instal·lat. S'està buscant una actualització."
-
-#. update everything (the easy case)
-#: ../yum/__init__.py:2220
-msgid "Updating Everything"
-msgstr "S'està actualitzant tot"
-
-#: ../yum/__init__.py:2304
-#, python-format
-msgid "Package is already obsoleted: %s.%s %s:%s-%s"
-msgstr "El paquet és obsolet: %s.%s. %s:%s-%s"
-
-#: ../yum/__init__.py:2377
-#, python-format
-msgid "%s"
-msgstr "%s"
-
-#: ../yum/__init__.py:2392
-msgid "No package matched to remove"
-msgstr "No hi ha cap paquet coincident per a esborrar"
-
-#: ../yum/__init__.py:2426
-#, python-format
-msgid "Cannot open file: %s. Skipping."
-msgstr "No es pot obrir el fitxer %s. S'ometrà."
-
-#: ../yum/__init__.py:2429
-#, python-format
-msgid "Examining %s: %s"
-msgstr "S'està examinant %s: %s"
-
-#: ../yum/__init__.py:2436
-#, python-format
-msgid ""
-"Package %s not installed, cannot update it. Run yum install to install it "
-"instead."
-msgstr "El paquet %s no està instal·lat; no es pot actualitzar. Executa yum install per a instal·lar-lo."
-
-#: ../yum/__init__.py:2468
-#, python-format
-msgid "Excluding %s"
-msgstr "S'està excloent %s"
-
-#: ../yum/__init__.py:2473
-#, python-format
-msgid "Marking %s to be installed"
-msgstr "S'està marcant %s per a ser instal·lat"
-
-#: ../yum/__init__.py:2479
-#, python-format
-msgid "Marking %s as an update to %s"
-msgstr "S'està marcant %s com a actualització de %s"
-
-#: ../yum/__init__.py:2486
-#, python-format
-msgid "%s: does not update installed package."
-msgstr "%s no actualitza el paquet instal·lat."
-
-#: ../yum/__init__.py:2504
-msgid "Problem in reinstall: no package matched to remove"
-msgstr "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a esborrar"
-
-#: ../yum/__init__.py:2515
-#, python-format
-msgid "Package %s is allowed multiple installs, skipping"
-msgstr "El paquet %s permet múltiples instal·lacions, s'està ometent"
-
-#: ../yum/__init__.py:2522
-msgid "Problem in reinstall: no package matched to install"
-msgstr "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a instal·lar"
-
-#: ../yum/__init__.py:2570
-#, python-format
-msgid "Retrieving GPG key from %s"
-msgstr "S'està recuperant la clau GPG des de %s"
-
-#: ../yum/__init__.py:2576
-msgid "GPG key retrieval failed: "
-msgstr "La recuperació de la clau GPG ha fallat: "
-
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "L'ànalisi de la clau GPG ha fallat: "
-
-#: ../yum/__init__.py:2593
-#, python-format
-msgid "GPG key at %s (0x%s) is already installed"
-msgstr "La clau GPG de %s (0x%s) ja està instal·lada"
-
-#. Try installing/updating GPG key
-#: ../yum/__init__.py:2598
-#, python-format
-msgid "Importing GPG key 0x%s \"%s\" from %s"
-msgstr "S'està important la clau GPG 0x%s \"%s\" des de %s"
-
-#: ../yum/__init__.py:2610
-msgid "Not installing key"
-msgstr "No s'està instal·lant la clau"
-
-#: ../yum/__init__.py:2616
-#, python-format
-msgid "Key import failed (code %d)"
-msgstr "L'importació de la clau ha fallat (codi %d)"
-
-#: ../yum/__init__.py:2619
-msgid "Key imported successfully"
-msgstr "La clau s'ha importat amb èxit"
-
-#: ../yum/__init__.py:2624
-#, 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 ""
-"Les claus GPG llistades pel repositori \"%s\" ja estan instal·lades però "
-"no són correctes per a aquest paquet.\n"
-"Comproveu que les URL de clau correctes estan configurades per a aquest repositori."
-
-#: ../yum/__init__.py:2633
-msgid "Import of key(s) didn't help, wrong key(s)?"
-msgstr "La importació de claus no ha ajudat, eren claus incorrectes?"
-
-#: ../yum/__init__.py:2707
-msgid "Unable to find a suitable mirror."
-msgstr "No s'ha pogut trobar un servidor rèplica vàlid."
-
-#: ../yum/__init__.py:2709
-msgid "Errors were encountered while downloading packages."
-msgstr "S'han trobat errors descarregant paquets."
-
-#: ../yum/__init__.py:2774
-msgid "Test Transaction Errors: "
-msgstr "Errors en la transacció de prova: "
-
-#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
-msgid "Loaded plugins: "
-msgstr "Connectors carregats: "
-
-#: ../yum/plugins.py:206
-#, python-format
-msgid "No plugin match for: %s"
-msgstr "No hi ha cap connector que coincideixi amb: %s"
-
-#: ../yum/plugins.py:219
-#, python-format
-msgid "\"%s\" plugin is disabled"
-msgstr "El connector \"%s\" està deshabilitat"
-
-#: ../yum/plugins.py:231
-#, python-format
-msgid "Plugin \"%s\" doesn't specify required API version"
-msgstr "El connector \"%s\" no especifica la versió de l'API requerida."
-
-#: ../yum/plugins.py:235
-#, python-format
-msgid "Plugin \"%s\" requires API %s. Supported API is %s."
-msgstr "El connector \"%s\" requereix l'API %s. L'API disponible és %s"
-
-#: ../yum/plugins.py:264
-#, python-format
-msgid "Loading \"%s\" plugin"
-msgstr "S'està carregant el connector \"%s\""
-
-#: ../yum/plugins.py:271
-#, python-format
-msgid ""
-"Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr ""
-"Existeixen dos o més connectors amb el mateix nom \"%s\" en el camí de cerca de connectors"
-
-#: ../yum/plugins.py:291
-#, python-format
-msgid "Configuration file %s not found"
-msgstr "No s'ha trobat el fitxer de configuració %s"
-
-#. for
-#. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
-#, python-format
-msgid "Unable to find configuration file for plugin %s"
-msgstr "No s'ha pogut trobar un fitxer de configuració per al connector %s"
-
-#: ../yum/plugins.py:448
-msgid "registration of commands not supported"
-msgstr "l'enregistrament d'ordres no està suportat"
-
-#: ../rpmUtils/oldUtils.py:26
-#, python-format
-msgid "Header cannot be opened or does not match %s, %s."
-msgstr "La capçalera no es pot obrir o no coincideix amb %s, %s"
-
-#: ../rpmUtils/oldUtils.py:46
-#, python-format
-msgid "RPM %s fails md5 check"
-msgstr "falla la comprobació md5 per al RPM %s"
-
-#: ../rpmUtils/oldUtils.py:144
-msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr "No s'ha pogut obrir la base de dades RPM per a llegir-la. Potser ja està en ús?"
-
-#: ../rpmUtils/oldUtils.py:174
-msgid "Got an empty Header, something has gone wrong"
-msgstr "S'ha obtingut una capçalera buida, alguna cosa ha anat malament"
-
-#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
-#, python-format
-msgid "Damaged Header %s"
-msgstr "Capçalera danyada %s"
-
-#: ../rpmUtils/oldUtils.py:272
-#, python-format
-msgid "Error opening rpm %s - error %s"
-msgstr "Error en obrir rpm %s - error %s"
-
commit 7247e4744cb34503a0be6f671cec8b37845c03c4
Author: James Antill <james at and.org>
Date:   Fri Nov 21 12:03:42 2008 -0500

    Revert "Added chinese translation by lijiansheng"
    
    This reverts commit 388ea0b4b2a526955beab9ab6fa6004b1e4de2f7.
    
     Trying to merge with yum-3_2_X

diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100644
index 3b30c2f..0000000
--- a/po/zh_CN.po
+++ /dev/null
@@ -1,1311 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: yum\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-20 10:00+0000\n"
-"PO-Revision-Date: 2008-07-24 19:43+0800\n"
-"Last-Translator: lijiansheng <lijiangsheng1 at gmail.com>\n"
-"Language-Team: zh_CN <lijiangsheng1 at gmail.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: CHINA\n"
-
-msgid ""
-"\n"
-"\n"
-"Exiting on Broken Pipe"
-msgstr ""
-"\n"
-"\n"
-"管道损坏而退出"
-
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel"
-msgstr ""
-"\n"
-"\n"
-"用户取消而退出"
-
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel."
-msgstr ""
-"\n"
-"\n"
-"用户取消而退出"
-
-msgid ""
-"\n"
-"\n"
-"alias: "
-msgstr ""
-"\n"
-"\n"
-"别名: "
-
-msgid ""
-"\n"
-"\n"
-"aliases: "
-msgstr ""
-"\n"
-"\n"
-"多重别名: "
-
-msgid ""
-"\n"
-" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n"
-msgstr ""
-"\n"
-" 当前下载取消, %s 中断 (ctrl-c) 再次 %s 将在%s%s%s 秒内退出.\n"
-
-msgid ""
-"\n"
-"Dependencies Resolved"
-msgstr ""
-"\n"
-"依赖性解决"
-
-msgid ""
-"\n"
-"Group: %s"
-msgstr ""
-"\n"
-"组: %s"
-
-msgid ""
-"\n"
-"Packages skipped because of dependency problems:"
-msgstr ""
-"\n"
-"因为依赖性问题而忽略的包:"
-
-msgid ""
-"\n"
-"Transaction Summary\n"
-"=============================================================================\n"
-"Install  %5.5s Package(s)         \n"
-"Update   %5.5s Package(s)         \n"
-"Remove   %5.5s Package(s)         \n"
-msgstr ""
-"\n"
-"处理信息摘要\n"
-"=============================================================================\n"
-"安装    %5.5s 个包        \n"
-"升级   %5.5s 个包         \n"
-"删除      %5.5s 个包         \n"
-
-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"
-"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"
-
-msgid ""
-"     replacing  %s.%s %s\n"
-"\n"
-msgstr ""
-"     替代中 %s.%s %s\n"
-"\n"
-
-msgid "    %s from %s"
-msgstr "    %s 从 %s"
-
-msgid "   Unsatisfied dependency"
-msgstr "  不能满意的依赖性"
-
-msgid "  At least %dMB needed on the %s filesystem.\n"
-msgstr " 至少 需要%d MB ,但前的 %s 文件系统.\n"
-
-msgid "  No dependencies for this package"
-msgstr "此包无任何的依赖"
-
-msgid "  dependency: %s"
-msgstr "   依赖: %s"
-
-msgid " Conditional Packages:"
-msgstr " 包条件:"
-
-msgid " Default Packages:"
-msgstr " 默认的包:"
-
-msgid " Description: %s"
-msgstr " 描述: %s"
-
-msgid " Mandatory Packages:"
-msgstr " 托管的包是:"
-
-msgid " Optional Packages:"
-msgstr "  包的属性:"
-
-msgid "\"%s\" plugin is disabled"
-msgstr "\"%s\" 此插件已被禁掉"
-
-msgid "%d %s files removed"
-msgstr "%d %s 文件已移除"
-
-msgid "%d Package(s) to Install"
-msgstr "%d 个包将安装"
-
-msgid "%d Package(s) to remove"
-msgstr "%d 个包将删除"
-
-msgid "%d packages marked for Update"
-msgstr "%d 个包已标志为升级"
-
-msgid "%d packages marked for removal"
-msgstr "%d 个包已标志为删除"
-
-msgid "%s"
-msgstr "%s"
-
-msgid "%s already in ts, skipping this one"
-msgstr "%s 已在处理中, 忽略此项"
-
-msgid "%s converted to install"
-msgstr "%s 已转换的将安装"
-
-msgid "%s file %s removed"
-msgstr "%s 文件 %s 已移除"
-
-msgid "%s from %s has depsolving problems"
-msgstr "%s 已从%s  解决了问题"
-
-msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s 在假设的包中,但是已经安装,删除中...."
-
-msgid "%s removed"
-msgstr "%s 已删除"
-
-msgid "%s requires: %s"
-msgstr "%s 需要: %s"
-
-msgid "%s: does not update installed package."
-msgstr "%s: 没有可供升级的包."
-
-msgid "---> Downloading header for %s to pack into transaction set."
-msgstr "--->为 %s下载头文件以便于设置处理."
-
-msgid "---> Package %s.%s %s:%s-%s set to be %s"
-msgstr "---> 包 %s.%s %s:%s-%s 设置为 %s "
-
-msgid "--> Finished Dependency Resolution"
-msgstr "--> 完成依赖性检查"
-
-msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> 正在处理已选择的包,请稍候。"
-
-msgid "--> Processing Conflict: %s conflicts %s"
-msgstr "--> 过程冲突: %s 冲突于 %s"
-
-msgid "--> Processing Dependency: %s for package: %s"
-msgstr "--> 过程依赖: %s 依赖于包: %s"
-
-msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> 为新包重新启动解决依赖问题"
-
-msgid "--> Running transaction check"
-msgstr "-->运行处理检查"
-
-msgid "--> Unresolved Dependency: %s"
-msgstr "--> 没有解决的依赖: %s"
-
-msgid "Adding Package %s in mode %s"
-msgstr "添加包 %s 在 %s 的模式下"
-
-msgid "Adding group file from repository: %s"
-msgstr "从仓库: %s 中添加组文件"
-
-msgid "Adding package %s from group %s"
-msgstr "添加包 %s 从组 %s 中"
-
-msgid "Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr "另外一个应用程序正在适用yum锁;等待其退出 ... ..."
-
-msgid "Apr"
-msgstr "Apr"
-
-msgid "Arch"
-msgstr "架构"
-
-msgid "Arch       : %s"
-msgstr "架构 : %s"
-
-msgid "Aug"
-msgstr "Aug"
-
-msgid "Available Groups:"
-msgstr "有效的组:"
-
-msgid "Available Packages"
-msgstr "已经提供的包"
-
-msgid "Building updates object"
-msgstr "建立升级对象"
-
-msgid "Cannot find an update path for dep for: %s"
-msgstr "Cannot find an update path for dep for: %s"
-
-msgid "Cannot open file: %s. Skipping."
-msgstr "不能打开文件: %s. 跳过."
-
-msgid "Cannot remove %s"
-msgstr "无法删除 %s "
-
-msgid "Cannot remove %s file %s"
-msgstr "无法删除 %s 文件 %s"
-
-msgid "Check for available package updates"
-msgstr "检查可提供的包升级"
-
-msgid "Checking deps for %s"
-msgstr "为 %s 检查依赖性"
-
-msgid "Checking for virtual provide or file-provide for %s"
-msgstr "Checking for virtual provide or file-provide for %s"
-
-msgid "Cleaning up Everything"
-msgstr "清理一切"
-
-msgid "Cleaning up Headers"
-msgstr "Räume Header auf"
-
-msgid "Cleaning up Packages"
-msgstr "清理包"
-
-msgid "Cleaning up database cache"
-msgstr "清理数据库缓存"
-
-msgid "Cleaning up plugins"
-msgstr "清理插件"
-
-msgid "Cleaning up xml metadata"
-msgstr "清理XML元数据"
-
-msgid "Cleanup"
-msgstr "清理"
-
-msgid "Command \"%s\" already defined"
-msgstr "命令 \"%s\" 早已经被定义"
-
-msgid "Command line error: %s"
-msgstr "命令行错误: %s"
-
-msgid "Committer  : %s"
-msgstr "Ãœbermittler  : %s"
-
-msgid "Comparing best: %s to po: %s"
-msgstr "Vergleiche besseres: %s zu po: %s"
-
-msgid "Complete!"
-msgstr "恭喜你!成功完成!"
-
-msgid "Config Error: %s"
-msgstr "配置错误: %s"
-
-msgid "Configuration file %s not found"
-msgstr "配置文件 %s 不能被找到"
-
-msgid "Could not find update match for %s"
-msgstr "不能找到和 %s 匹配的升级"
-
-msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr "不能以读的方式打开RPM数据库,或许是它已经在被用?"
-
-msgid "Could not perform checksum"
-msgstr "无法执行校验和"
-
-msgid "Damaged Header %s"
-msgstr "损坏的头文件 %s"
-
-msgid "Dec"
-msgstr "Dec"
-
-msgid "Dependency Installed"
-msgstr "依赖安装"
-
-msgid "Dependency Process ending"
-msgstr "依赖进程完成中"
-
-msgid "Dependency Removed"
-msgstr "依赖删除"
-
-msgid "Dependency Updated"
-msgstr "依赖升级"
-
-msgid "Description: "
-msgstr "升级:"
-
-msgid "Determine which package provides the given dependency"
-msgstr "决定哪个包提供了给定的依赖"
-
-msgid "Discarding non-comparable pkg %s.%s"
-msgstr " 丢弃无对照的包%s.%s"
-
-msgid "Disk Requirements:\n"
-msgstr "磁盘要求:\n"
-
-msgid "Display a helpful usage message"
-msgstr "显示帮助用法信息"
-
-msgid "Display details about a package group"
-msgstr "显示关于包组的细节"
-
-msgid "Display details about a package or group of packages"
-msgstr "显示关于包或一组包的细节信息"
-
-msgid "Display the configured software repositories"
-msgstr "显示软件仓库的配置"
-
-msgid "Done"
-msgstr "完成"
-
-msgid "Downloading Packages:"
-msgstr "下载软件包:"
-
-msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "错误 rpm_check_debug 和 depsolve:"
-
-msgid "Epoch      : %s"
-msgstr "Epoch      : %s"
-
-msgid "Erased"
-msgstr "已删除"
-
-msgid "Erased: %s"
-msgstr "已删除: %s"
-
-msgid "Erasing"
-msgstr "正在删除"
-
-msgid "Error Downloading Packages:\n"
-msgstr "下载包错误:\n"
-
-msgid ""
-"Error Summary\n"
-"-------------\n"
-msgstr ""
-"错误的语法\n"
-"-------------\n"
-
-msgid "Error opening rpm %s - error %s"
-msgstr "打开 RPM %s 错误 - 错误 %s"
-
-msgid "Error: %s"
-msgstr "错误: %s"
-
-msgid "Error: Need a group or list of groups"
-msgstr "错误:需要组或组的列表"
-
-msgid "Error: Need an item to match"
-msgstr "错误:需要细微的匹配"
-
-msgid "Error: Need to pass a list of pkgs to %s"
-msgstr "错误: 需要传输在列表的包到%s"
-
-msgid "Error: clean requires an option: %s"
-msgstr "Error: clean requires an option: %s"
-
-msgid "Error: invalid clean argument: %r"
-msgstr "Error: invalid clean argument: %r"
-
-msgid "Error: invalid output state: %s for %s"
-msgstr "Error: invalid output state: %s for %s"
-
-msgid "Error: more than one file given as argument to shell."
-msgstr "Error: more than one file given as argument to shell."
-
-msgid "Errors were encountered while downloading packages."
-msgstr "Errors were encountered while downloading packages."
-
-msgid "Examining %s: %s"
-msgstr " 诊断 %s: %s"
-
-msgid "Excluding %s"
-msgstr "不包括 %s"
-
-msgid "Excluding Packages from %s"
-msgstr "在 %s 中排除的包"
-
-msgid "Excluding Packages in global exclude list"
-msgstr "不包适包在全局的排除的列表中"
-
-msgid "Existing lock %s: another copy is running as pid %s."
-msgstr "锁已被用 %s:  另外的一个复制正在运行在 PID为 %s."
-
-msgid "Exiting on user Command"
-msgstr "在用户的命令下退出"
-
-msgid "Extra Packages"
-msgstr "扩展的包"
-
-msgid "Failed to add groups file for repository: %s - %s"
-msgstr "为仓库添加组失败: %s - %s"
-
-msgid "Failed to remove transaction file %s"
-msgstr "移除处理文件%s 失败"
-
-msgid "Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr "Failure finding best provider of %s for %s, exceeded maximum loop length"
-
-msgid "Feb"
-msgstr "二月"
-
-msgid "File %s given as argument to shell does not exist."
-msgstr "File %s given as argument to shell does not exist."
-
-msgid "Filename passed to shell: %s"
-msgstr "Filename passed to shell: %s"
-
-msgid "Find what package provides the given value"
-msgstr "Find what package provides the given value"
-
-msgid "Finding dependencies: "
-msgstr "找到依赖:"
-
-msgid "Finished"
-msgstr "完成"
-
-msgid "Finished Transaction Test"
-msgstr "传输测试完成"
-
-msgid "GPG key at %s (0x%s) is already installed"
-msgstr "GPG密钥在 %s (0x%s) 已经安装"
-
-msgid "GPG key parsing failed: "
-msgstr "分析GPG密钥失败: "
-
-msgid "GPG key retrieval failed: "
-msgstr "GPG密钥修复失败:"
-
-msgid "Generate the metadata cache"
-msgstr "生成原数据缓存"
-
-msgid "Getting group metadata"
-msgstr "获得组元数据"
-
-msgid "Got an empty Header, something has gone wrong"
-msgstr "得到空的头文件,有错误发生"
-
-msgid "Header cannot be opened or does not match %s, %s."
-msgstr "Header 不能打开或对 %s, %s不匹配."
-
-msgid "Header is not complete."
-msgstr "Header 不是完整的."
-
-msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr "Header并不在本地缓存而且caching-only 模式被激活。不能下载 %s"
-
-msgid "Import of key(s) didn't help, wrong key(s)?"
-msgstr "导入密钥时没有求助,错误的密钥?"
-
-msgid "Importing GPG key 0x%s \"%s\" from %s"
-msgstr "导入GPG密钥 0x%s \"%s\" ,来自 %s"
-
-msgid "Importing additional filelist information"
-msgstr "正在导入额外的文件列表信息"
-
-msgid "Install a local RPM"
-msgstr "安装本地 RPM"
-
-msgid "Install a package or packages on your system"
-msgstr "安装一个或多个软件包在你的系统"
-
-msgid "Install the packages in a group on your system"
-msgstr "从组里安装软件包到你的系统"
-
-msgid "Installed"
-msgstr "已安装"
-
-msgid "Installed Groups:"
-msgstr "已安装组:"
-
-msgid "Installed Packages"
-msgstr "已经安装的包"
-
-msgid "Installing"
-msgstr "正在安装"
-
-msgid "Installing for dependencies"
-msgstr "为依赖而安装"
-
-msgid "Insufficient space in download directory %s to download"
-msgstr "目录 %s没有足够的空间下载文件"
-
-msgid "Invalid tsflag in config file: %s"
-msgstr "配置文件: %s中的tsflag是无效的"
-
-msgid "Invalid version flag"
-msgstr "无效的版本标志"
-
-msgid "Invalid versioned dependency string, try quoting it."
-msgstr "无效的依赖字符串,尝试重新引用."
-
-msgid "Is this ok [y/N]: "
-msgstr "确定是这样吗? [y/N]: "
-
-msgid "Jan"
-msgstr "一月"
-
-msgid "Jul"
-msgstr "Jul"
-
-msgid "Jun"
-msgstr "Jun"
-
-msgid "Keeping included package %s"
-msgstr "保持已包含的包 %s"
-
-msgid "Key import failed (code %d)"
-msgstr "导入密钥失败 (代号 %d)"
-
-msgid "Key imported successfully"
-msgstr "导入密钥成功"
-
-msgid "License    : %s"
-msgstr "许可证    : %s"
-
-msgid "List a package or groups of packages"
-msgstr "列出一个包或某组的包"
-
-msgid "List a package's dependencies"
-msgstr "列出包依赖相关"
-
-msgid "List available package groups"
-msgstr "列出当前的组"
-
-msgid "Loaded plugins: "
-msgstr "载入插件: "
-
-msgid "Loading \"%s\" plugin"
-msgstr "载入 \"%s\" 插件"
-
-msgid "Making cache files for all metadata files."
-msgstr "将所有的元数据文件生成缓存文件."
-
-msgid "Mar"
-msgstr "Mar"
-
-msgid "Marking %s as an update to %s"
-msgstr "标志 %s 将被更新为 %s"
-
-msgid "Marking %s to be installed"
-msgstr "标志 %s 将被安装"
-
-msgid "Matched %s to require for %s"
-msgstr "标志%s 要求 %s"
-
-msgid "Matched from:"
-msgstr "匹配来自于:"
-
-msgid "Matching packages for package list to user args"
-msgstr "从用户的包列表中匹配包"
-
-msgid "May"
-msgstr "Mai"
-
-msgid "Member: %s"
-msgstr "成员: %s"
-
-msgid "Metadata Cache Created"
-msgstr "原数据缓存已建立"
-
-msgid "Missing Dependency: %s is needed by package %s"
-msgstr "丢失的依赖相关: %s 被包 %s 所需要"
-
-msgid "Mode for pkg providing %s: %s"
-msgstr "Mode for pkg providing %s: %s"
-
-msgid "Mode is %s for provider of %s: %s"
-msgstr "Mode is %s for provider of %s: %s"
-
-msgid "More than one identical match in sack for %s"
-msgstr "More than one identical match in sack for %s"
-
-msgid "Name       : %s"
-msgstr "名称       : %s"
-
-msgid "Needed Require has already been looked up, cheating"
-msgstr "Needed Require has already been looked up, cheating"
-
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "Needed Require is not a package name. Looking up: %s"
-
-msgid "No Group named %s exists"
-msgstr "没有发现组 %s "
-
-msgid "No Groups Available in any repository"
-msgstr "在现有的仓库中没有组可被提供"
-
-msgid "No Groups on which to run command"
-msgstr "没有组可以运行的命令"
-
-msgid "No Match for argument: %s"
-msgstr "没有匹配的参数: %s"
-
-msgid "No Matches found"
-msgstr "没有匹配发现"
-
-msgid "No Package Found for %s"
-msgstr "没有发现包 %s"
-
-msgid "No Package found for %s"
-msgstr "没有发现包 %s"
-
-msgid "No Packages Provided"
-msgstr "没有可提供的包"
-
-msgid "No Packages marked for Update"
-msgstr "没有包标志为升级"
-
-msgid "No Packages marked for removal"
-msgstr "没有包标志为删除"
-
-msgid "No argument to shell"
-msgstr "没有参数提供给shell"
-
-msgid "No group named %s exists"
-msgstr "没有组名为 %s "
-
-msgid "No header - huh?"
-msgstr "没有头文件--:)?"
-
-msgid "No help available for %s"
-msgstr "没有关于 %s 的帮助"
-
-msgid "No matching Packages to list"
-msgstr "列表中没有匹配的包"
-
-msgid "No other %s installed, adding to list for potential install"
-msgstr "No other %s installed, adding to list for 潜在的install"
-
-msgid "No package %s available."
-msgstr "包 %s 不可提供."
-
-msgid "No package matched to remove"
-msgstr "没有匹配的包删除"
-
-msgid "No package named %s available to be installed"
-msgstr "没有名称为 %s 包可供安装"
-
-msgid "No package(s) available to install"
-msgstr "没有包可供安装."
-
-msgid "No packages in any requested group available to install or update"
-msgstr "没有包在所要求的组中可提供安装或升级"
-
-msgid "No packages to remove from groups"
-msgstr "No packages to remove from groups"
-
-msgid "No plugin match for: %s"
-msgstr "没有插件可匹配: %s"
-
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "不可更新早已被废弃的包: %s.%s %s:%s-%s"
-
-msgid "Not installing key"
-msgstr "没有安装密钥"
-
-msgid "Nothing matches %s.%s %s:%s-%s from update"
-msgstr "无法匹配  %s.%s %s:%s-%s 从更新中"
-
-msgid "Nothing specified to install"
-msgstr "没有指定安装"
-
-msgid "Nothing to do"
-msgstr "无事可做"
-
-msgid "Nov"
-msgstr "Nov"
-
-msgid "Obsoleted"
-msgstr "已废弃"
-
-msgid "Obsoleting Packages"
-msgstr "废弃中的包"
-
-msgid "Oct"
-msgstr "十月"
-
-msgid "Options Error: %s"
-msgstr "属性错误: %s"
-
-msgid "PACKAGE..."
-msgstr "包..."
-
-msgid "Package"
-msgstr "包"
-
-msgid "Package %s already installed and latest version"
-msgstr "包 %s 已安装并且是最新版本"
-
-msgid "Package %s is allowed multiple installs, skipping"
-msgstr "包 %s 被允许多方式安装,忽略"
-
-msgid "Package %s is already installed, skipping"
-msgstr "包 %s 早已安装,忽略"
-
-msgid "Package %s is not signed"
-msgstr "包 %s 无签名认证"
-
-msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
-msgstr "包 %s 没有安装, 不能安装。请适用yum install 安装它。"
-
-msgid "Package Object was not a package object instance"
-msgstr "Package Object was not a package object instance"
-
-msgid "Package does not match checksum"
-msgstr "包不匹配校验结果"
-
-msgid "Package does not match intended download"
-msgstr "Package does not match intended download."
-
-msgid "Package is already obsoleted: %s.%s %s:%s-%s"
-msgstr "包已经废弃: %s.%s %s:%s-%s"
-
-msgid "Package matching %s already installed. Checking for update."
-msgstr "匹配包 %s 已经安装. 检查更新."
-
-msgid "Package tuple %s could not be found in packagesack"
-msgstr "包元组 %s 不能在packagesack中发现"
-
-msgid "Package(s) to install"
-msgstr "包将安装"
-
-msgid "Package: %s  - already in transaction set"
-msgstr "安装包: %s - 事务处理已设置"
-
-msgid "Parsing package install arguments"
-msgstr "分析安装参数的语法"
-
-msgid "Please report this error in bugzilla"
-msgstr "请报告这个错误给 Bugzilla"
-
-msgid "Plugin \"%s\" doesn't specify required API version"
-msgstr "Plugin \"%s\" 没有指定必要的API版本"
-
-msgid "Plugin \"%s\" requires API %s. Supported API is %s."
-msgstr "Plugin \"%s\" 需要 API %s. 支持的 API 为 %s."
-
-msgid "Potential Provider: %s"
-msgstr " 潜在的提供者: %s"
-
-msgid "Potential match for %s from %s"
-msgstr "Potential match for %s from %s"
-
-msgid "Potential resolving package %s has newer instance in ts."
-msgstr "Potential resolving package %s has newer instance in ts."
-
-msgid "Potential resolving package %s has newer instance installed."
-msgstr "Potential resolving package %s has newer instance installed."
-
-msgid "Problem in reinstall: no package matched to install"
-msgstr "Problem in reinstall: no package matched to install"
-
-msgid "Problem in reinstall: no package matched to remove"
-msgstr "Problem in reinstall: no package matched to remove"
-
-msgid "Problem opening package %s"
-msgstr "打开包 %s 出现问题"
-
-msgid "Provides-match: %s"
-msgstr "Provides-match: %s"
-
-msgid "Public key for %s is not installed"
-msgstr "给 %s 的公钥没有安装"
-
-msgid "Public key for %s is not trusted"
-msgstr "给 %s 的公钥不可信任"
-
-msgid "RPM %s fails md5 check"
-msgstr "RPM %s md5码校验失败"
-
-msgid "Reading Local RPMDB"
-msgstr "读入本地RPMDB"
-
-msgid "Reading repository metadata in from local files"
-msgstr "从本地文件读入仓库元数据"
-
-msgid "Recently Added Packages"
-msgstr "近期添加的包"
-
-msgid "Reducing %s to included packages only"
-msgstr "减少 %s 所仅包含的包"
-
-msgid ""
-"Refusing to automatically import keys when running unattended.\n"
-"Use \"-y\" to override."
-msgstr ""
-"当运行unattended时拒绝自动导入密钥.\n"
-"用 \"-y\" 来覆盖"
-
-msgid "Release    : %s"
-msgstr "发行    : %s"
-
-msgid "Remove a package or packages from your system"
-msgstr "移除一个或多个包从你的系统"
-
-msgid "Remove cached data"
-msgstr "删除缓存数据"
-
-msgid "Remove the packages in a group from your system"
-msgstr "在一个组中移除包从您的系统"
-
-msgid "Removed"
-msgstr "已删除"
-
-msgid "Removing"
-msgstr "正在删除"
-
-msgid "Removing Package %s"
-msgstr "正在删除包 %s"
-
-msgid "Removing for dependencies"
-msgstr "为依赖移除"
-
-msgid "Removing unmatched package %s"
-msgstr "移除不匹配的包: %s"
-
-msgid "Repackage"
-msgstr "重新打包"
-
-msgid "Replaced"
-msgstr "替代"
-
-msgid "Repo       : %s"
-msgstr "Repo       : %s"
-
-msgid "Repository"
-msgstr "仓库"
-
-msgid "Repository %r is missing name in configuration, using id"
-msgstr "仓库 %r 丢失了名字在配置文件中,用id代替"
-
-msgid "Resolving Dependencies"
-msgstr "解决依赖相关"
-
-msgid "Restarting Loop"
-msgstr "重新启动环回"
-
-msgid "Retrieving GPG key from %s"
-msgstr "从 %s 中恢复GPG密钥"
-
-msgid "Run an interactive yum shell"
-msgstr "运行交互式的yum shell"
-
-msgid "Running Transaction"
-msgstr "运行事务处理"
-
-msgid "Running Transaction Test"
-msgstr "运行测试事务处理"
-
-msgid "Running rpm_check_debug"
-msgstr "运行 rpm_check_debug "
-
-msgid "Same: best %s == po: %s"
-msgstr "Same: best %s == po: %s"
-
-msgid "Search package details for the given string"
-msgstr "查找包细节居给定的字符串"
-
-msgid "Searching %d packages"
-msgstr "查询 %d 个包"
-
-msgid "Searching Packages for Dependency:"
-msgstr "为依赖相关查找包:"
-
-msgid "Searching Packages: "
-msgstr "查询包:"
-
-msgid "Searching pkgSack for dep: %s"
-msgstr "查找pkgSack 为依赖: %s"
-
-msgid "Sep"
-msgstr "Sep"
-
-msgid "Setting up Group Process"
-msgstr "设置组进程"
-
-msgid "Setting up Install Process"
-msgstr "设置安装进程"
-
-msgid "Setting up Local Package Process"
-msgstr "设置本地包进程"
-
-msgid "Setting up Package Sacks"
-msgstr "设置包麻袋"
-
-msgid "Setting up Reinstall Process"
-msgstr "设置重新安装进程"
-
-msgid "Setting up Remove Process"
-msgstr "设置删除进程"
-
-msgid "Setting up TransactionSets before config class is up"
-msgstr "在config类启用之前设置事务处理"
-
-msgid "Setting up Update Process"
-msgstr "设置更新进程"
-
-msgid "Setting up Upgrade Process"
-msgstr "设置升级进程"
-
-msgid "Setting up Yum Shell"
-msgstr "设置Yum-Shell yum交互式环境"
-
-msgid "Setting up repositories"
-msgstr "设置仓库"
-
-msgid "Size"
-msgstr "大小"
-
-msgid "Size       : %s"
-msgstr "大小    : %s"
-
-msgid "Skip-broken round %i"
-msgstr "Skip-broken round %i"
-
-msgid "Skip-broken took %i rounds "
-msgstr "Skip-broken took %i rounds"
-
-msgid "Success - deps resolved"
-msgstr "成功 --依赖性解决"
-
-msgid "Success - empty transaction"
-msgstr "成功 --空的事务处理"
-
-msgid "Summary    : "
-msgstr "语法    : "
-
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: %s package requiring %s marked as erase"
-
-msgid "TSINFO: Marking %s as install for %s"
-msgstr "TSINFO: Marking %s as install for %s"
-
-msgid "TSINFO: Marking %s as update for %s"
-msgstr "TSINFO: Marking %s as update for %s"
-
-msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: Obsoleting %s with %s to resolve dep."
-
-msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: Updating %s to resolve dep."
-
-msgid "Test Transaction Errors: "
-msgstr "测试事务处理错误"
-
-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."
-
-msgid "There was an error calculating total download size"
-msgstr "There was an error calculating total download size"
-
-msgid "This may take a while depending on the speed of this computer"
-msgstr "这会占用一段时间,具体将取决于这台计算机的速度"
-
-msgid "Total download size: %s"
-msgstr "总共下载大小: %s"
-
-msgid "Total size: %s"
-msgstr "总大小: %s"
-
-msgid "Transaction Check Error:\n"
-msgstr "处理检查错误:\n"
-
-msgid "Transaction Test Succeeded"
-msgstr "事务处理测试成功"
-
-msgid "Trying other mirror."
-msgstr "尝试其他镜像."
-
-msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "尝试运行事务处理但是什么也做不成,退出."
-
-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"
-
-msgid "URL        : %s"
-msgstr "统一资源定位符       : %s"
-
-msgid "Unable to check if PID %s is active"
-msgstr "不能检查到PID %s是否激活"
-
-msgid "Unable to find a suitable mirror."
-msgstr "不能发现合适的镜像."
-
-msgid "Unable to find configuration file for plugin %s"
-msgstr "不能找到插件 %s 的配置文件 "
-
-msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "莫名的错误:  退出代码为: %d:"
-
-msgid "Unresolvable requirement %s for %s"
-msgstr "没有解决的需求 %s 为 %s"
-
-msgid "Update a package or packages on your system"
-msgstr "更新一个或多个包在你的系统"
-
-msgid "Update packages taking obsoletes into account"
-msgstr "Update packages taking obsoletes into account"
-
-msgid "Updated"
-msgstr "更新完毕"
-
-msgid "Updated Packages"
-msgstr "更新过的包"
-
-msgid "Updating"
-msgstr "正在升级"
-
-msgid "Updating Everything"
-msgstr "全部升级"
-
-msgid "Updating for dependencies"
-msgstr "更新依赖性"
-
-msgid "Version"
-msgstr "版本"
-
-msgid "Version    : %s"
-msgstr "版本    : %s"
-
-msgid "Warning: Group %s does not exist."
-msgstr "提示: 组 %s 不存在."
-
-msgid "Warning: No matches found for: %s"
-msgstr "提示 : 没有发现和: %s 匹配"
-
-msgid "You need to be root to perform this command."
-msgstr "你需要root身份执行此命令."
-
-msgid "You need to give some command"
-msgstr "你需要给出命令"
-
-msgid "[PACKAGE...]"
-msgstr "[包 ...]"
-
-msgid "answer yes for all questions"
-msgstr "回答所有的问题为是"
-
-msgid "be tolerant of errors"
-msgstr "be tolerant of errors"
-
-msgid "best %s obsoletes po: %s"
-msgstr "best %s obsoletes po: %s"
-
-msgid "best %s shares a sourcerpm with %s"
-msgstr "best %s shares a sourcerpm with %s"
-
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "bestpkg %s shares more of the name prefix with %s"
-
-msgid "better arch in po %s"
-msgstr "better arch in po %s"
-
-msgid "config file location"
-msgstr "config file location"
-
-msgid "debugging output level"
-msgstr "调试输出级别"
-
-msgid "disable Yum plugins"
-msgstr "禁掉yum插件"
-
-msgid "disable exclude from main, for a repo or for everything"
-msgstr "disable exclude from main, for a repo or for everything"
-
-msgid "disable gpg signature checking"
-msgstr "禁掉GPG验证检查"
-
-msgid "disable one or more repositories (wildcards allowed)"
-msgstr "禁掉一个或多个仓库(支持通配符)"
-
-msgid "disable plugins by name"
-msgstr "用名称禁掉插件"
-
-msgid "disabled"
-msgstr "禁掉"
-
-msgid "doConfigSetup() will go away in a future version of Yum.\n"
-msgstr "doConfigSetup() 将在未来的YUM版本中消失.\n"
-
-msgid "doGroupSetup() will go away in a future version of Yum.\n"
-msgstr "doGroupSetup()将在未来的YUM版本中消失.\n"
-
-msgid "doRepoSetup() will go away in a future version of Yum.\n"
-msgstr "doRepoSetup() 将在未来的YUM版本中消失.\n"
-
-msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-msgstr "doRpmDBSetup() 将在未来的YUM版本中消失.\n"
-
-msgid "doSackSetup() will go away in a future version of Yum.\n"
-msgstr "doSackSetup() 将在未来的YUM版本中消失.\n"
-
-msgid "doTsSetup() will go away in a future version of Yum.\n"
-msgstr "doTsSetup() 将在未来的YUM版本中消失.\n"
-
-msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-msgstr "doUpdateSetup() wird verschwinden in zukünfigen Version von Yum.\n"
-
-msgid "enable obsoletes processing during updates"
-msgstr "enable obsoletes processing during updates"
-
-msgid "enable one or more repositories (wildcards allowed)"
-msgstr "激活一个或多个仓库(支持通配符)"
-
-msgid "enabled"
-msgstr "激活"
-
-msgid "erased"
-msgstr "删除"
-
-msgid "error output level"
-msgstr "错误输出级别"
-
-msgid "exclude package(s) by name or glob"
-msgstr "在名称或glob不包含包。"
-
-msgid "excluding for cost: %s from %s"
-msgstr "excluding for cost: %s from %s"
-
-msgid "installed"
-msgstr "已安装"
-
-msgid "looking for %s as a requirement of %s"
-msgstr "查找 %s 在要求的 %s 下"
-
-msgid "maximum command wait time"
-msgstr "最大化的命令等待时间"
-
-msgid "n"
-msgstr "n"
-
-msgid "no"
-msgstr "否"
-
-msgid "obsoleted"
-msgstr "已废弃"
-
-msgid "package %s was not marked in group %s"
-msgstr "包 %s 在组 %s中没有被标志"
-
-msgid "package fails checksum but caching is enabled for %s"
-msgstr "包校验失败但是缓存已为 %s激活"
-
-msgid "package: %s"
-msgstr "包: %s"
-
-msgid "plugins already initialised"
-msgstr "插件已经initialised"
-
-msgid "po %s has a shorter name than best %s"
-msgstr "po %s has a shorter name than best %s"
-
-msgid "po %s obsoletes best: %s"
-msgstr "po %s obsoletes best: %s"
-
-msgid "po %s shares a sourcerpm with %s"
-msgstr "po %s shares a sourcerpm with %s"
-
-msgid "po %s shares more of the name prefix with %s"
-msgstr "po %s shares more of the name prefix with %s"
-
-msgid "quiet operation"
-msgstr "安静的操作"
-
-msgid "registration of commands not supported"
-msgstr "注册命令不支持"
-
-msgid "reinstall a package"
-msgstr "重新安装一个包"
-
-msgid "repo id"
-msgstr "Repo-号"
-
-msgid "repo name"
-msgstr "Repo-名称:"
-
-msgid "repo object for repo %s lacks a _resetSack method\n"
-msgstr "repo对象for repo  %s 缺少 a _resetSack 方法\n"
-
-msgid "run entirely from cache, don't update cache"
-msgstr "从缓冲中运行,而不是升级缓存"
-
-msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
-msgstr "searchPackages() 将在YUM未来的版本中消失.                     用 searchGenerator()替代. \n"
-
-msgid "searching in file entries"
-msgstr "searching in file entries"
-
-msgid "searching in provides entries"
-msgstr "在可提供的入口查询"
-
-msgid "searching package %s"
-msgstr "查询包: %s"
-
-msgid "set install root"
-msgstr "设置为root安装"
-
-msgid "show Yum version and exit"
-msgstr "显示 YUM版本信息并退出"
-
-msgid "show duplicates, in repos, in list/search commands"
-msgstr "显示复制, 在repo,list/search命令下"
-
-msgid "skip packages with depsolving problems"
-msgstr "忽略包的依赖问题"
-
-msgid "status"
-msgstr "状态"
-
-msgid "therefore this repo cannot be reset.\n"
-msgstr "因此此repo不能复位.\n"
-
-msgid "updated"
-msgstr "升级"
-
-msgid "user interrupt"
-msgstr "用户中断"
-
-msgid "using local copy of %s"
-msgstr "在本地复制 %s"
-
-msgid "y"
-msgstr "Y"
-
-msgid "yes"
-msgstr "是"
-
commit a1e3e80591f6763c007ff650b5342a1969e2abe7
Author: James Antill <james at and.org>
Date:   Fri Nov 21 12:03:10 2008 -0500

    Revert "added updated Norsk translation by Kjartan Maraas"
    
    This reverts commit 51229db7af0db6148fe8ceacbd01a7a526c18da6.
    
     Trying to merge with yum-3_2_X

diff --git a/po/nb.po b/po/nb.po
index 512a227..a4214b1 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -3,39 +3,36 @@
 # Copyright (C) 2008 Terje Røsten
 # This file is distributed under the same license as the yum package.
 # Terje Røsten <terje.rosten at ntnu.no>, 2008.
-# Kjartan Maraas <kmaraas at broadpark.no>, 2008.
-#
-
+#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: yum 3.2.10\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 13:29+0000\n"
-"PO-Revision-Date: 2008-10-31 20:25+0100\n"
-"Last-Translator: Kjartan Maraas <kmaraas at broadpark.no>\n"
-"Language-Team: Norwegian bokmål <i18n-nb at lister.ping.uio.no>\n"
+"POT-Creation-Date: 2008-03-25 11:29+0100\n"
+"PO-Revision-Date: 2008-02-12 11:16+0100\n"
+"Last-Translator: Terje Røsten <terje.rosten at ntnu.no>\n"
+"Language-Team: Norwegian (bokmål) <i18n-no at lister.ping.uio.no>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:512
 msgid "Updating"
 msgstr "Oppdaterer"
 
-#: ../callback.py:49 ../yum/rpmtrans.py:72
+#: ../callback.py:49
 msgid "Erasing"
 msgstr "Fjerner"
 
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
-#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
 msgid "Installing"
 msgstr "Legger inn"
 
-#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
+#: ../callback.py:52 ../callback.py:58
 msgid "Obsoleted"
 msgstr "Er utgått"
 
-#: ../callback.py:54 ../output.py:562
+#: ../callback.py:54 ../output.py:558
 msgid "Updated"
 msgstr "Oppdatert"
 
@@ -43,7 +40,7 @@ msgstr "Oppdatert"
 msgid "Erased"
 msgstr "Fjernet"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
 msgid "Installed"
 msgstr "Lagt inn"
 
@@ -53,7 +50,7 @@ msgstr "Intet hode - merksnodig?!"
 
 #: ../callback.py:168
 msgid "Repackage"
-msgstr "Pakk på nytt"
+msgstr "Pakker på nytt"
 
 #: ../callback.py:189
 #, python-format
@@ -65,425 +62,405 @@ msgstr "Feil: ugyldig tilstand ut: %s for %s"
 msgid "Erased: %s"
 msgstr "Fjernet: %s"
 
-#: ../callback.py:217 ../output.py:517
+#: ../callback.py:217 ../output.py:513
 msgid "Removing"
 msgstr "Fjerner"
 
-#: ../callback.py:219 ../yum/rpmtrans.py:77
+#: ../callback.py:219
 msgid "Cleanup"
 msgstr "Rydder opp"
 
-#: ../cli.py:105
+#: ../cli.py:103
 #, python-format
 msgid "Command \"%s\" already defined"
-msgstr "Kommando «%s» er allerede definert"
+msgstr "Kommando \"%s\" er allerede definert"
 
-#: ../cli.py:117
+#: ../cli.py:115
 msgid "Setting up repositories"
-msgstr "Konfigurerer lagre"
+msgstr "Lager pakkeoversikt"
 
-#: ../cli.py:128
+#: ../cli.py:126
 msgid "Reading repository metadata in from local files"
-msgstr "Leser inn data om lager fra lokale filer"
+msgstr "Leser inn data om pakker fra lokale filer"
 
-#: ../cli.py:186 ../utils.py:71
+#: ../cli.py:183 ../utils.py:72
 #, python-format
 msgid "Config Error: %s"
-msgstr "Feil i konfigurasjon: %s"
+msgstr "Feil ved konfigurasjon: %s"
 
-#: ../cli.py:189 ../cli.py:1081 ../utils.py:74
+#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
 #, python-format
 msgid "Options Error: %s"
-msgstr "Feil i flagg: %s"
+msgstr "Feil med opsjoner: %s"
 
-#: ../cli.py:232
+#: ../cli.py:229
 msgid "You need to give some command"
-msgstr "Du må oppgi en kommando"
+msgstr "Vennligst oppgi minst en kommando"
 
-#: ../cli.py:274
+#: ../cli.py:271
 msgid "Disk Requirements:\n"
-msgstr "Krav til ledig diskplass:\n"
+msgstr "Krav til ledig diskplass\n"
 
-#: ../cli.py:276
+#: ../cli.py:273
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
-msgstr "Minst %dMB kreves på filsystem %s.\n"
+msgstr "Minst %dMB er nødvendig i filsystemet %s.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:281
+#: ../cli.py:278
 msgid ""
 "Error Summary\n"
 "-------------\n"
 msgstr ""
-"Sammendrag for feil\n"
-"---------------------\n"
+"Oversikt over feil\n"
+"------------------\n"
 
-#: ../cli.py:320
+#: ../cli.py:317
 msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "Prøver å kjøre transaksjonen, men den er tom. Avslutter."
+msgstr "Prøver og fullføre transaksjonen, men den er tom. Avslutter."
 
-#: ../cli.py:350
+#: ../cli.py:347
 msgid "Exiting on user Command"
 msgstr "Avslutter på grunn av kommando fra bruker"
 
-#: ../cli.py:354
+#: ../cli.py:351
 msgid "Downloading Packages:"
 msgstr "Laster ned pakker:"
 
-#: ../cli.py:359
+#: ../cli.py:356
 msgid "Error Downloading Packages:\n"
 msgstr "Kunne ikke laste ned pakkene:\n"
 
-#: ../cli.py:373 ../yum/__init__.py:2826
+#: ../cli.py:370 ../yum/__init__.py:2746
 msgid "Running rpm_check_debug"
-msgstr "Kjører rpm_check_debug"
+msgstr "Kjører rpm-sjekker"
 
-#: ../cli.py:376 ../yum/__init__.py:2829
+#: ../cli.py:373 ../yum/__init__.py:2749
 msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "FEIL med rpm_check_debug i forhold til løsing av avhengigheter:"
+msgstr "Feil: en forskjell mellom rpm-sjekker og yum har oppstått"
 
-#: ../cli.py:380 ../yum/__init__.py:2831
+#: ../cli.py:377 ../yum/__init__.py:2751
 msgid "Please report this error in bugzilla"
 msgstr "Vennligst send en feilrapport til bugzilla"
 
-#: ../cli.py:386
+#: ../cli.py:383
 msgid "Running Transaction Test"
-msgstr "Gjennomfører test av transaksjonen"
+msgstr "Gjennomfører en test av transaksjonen"
 
-#: ../cli.py:402
+#: ../cli.py:399
 msgid "Finished Transaction Test"
 msgstr "Transaksjonstesten er fullført"
 
-#: ../cli.py:404
+#: ../cli.py:401
 msgid "Transaction Check Error:\n"
-msgstr "Feil ved test av transaksjonen:\n"
+msgstr "Feil ved sjekk av transaksjonen:\n"
 
-#: ../cli.py:411
+#: ../cli.py:408
 msgid "Transaction Test Succeeded"
 msgstr "Test av transaksjonen var vellykket"
 
-#: ../cli.py:432
+#: ../cli.py:429
 msgid "Running Transaction"
 msgstr "Utfører transaksjonen"
 
-#: ../cli.py:462
+#: ../cli.py:459
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
 msgstr ""
-"Nekter å importere nøkler automatisk ved kjøring uten oppsyn.\n"
-"Bruk «-y» for å overstyre."
+"Nekter og automatisk importere nøkler når man kjører uten oppsyn.\n"
+"Bruk \"-y\" for uansett å godta import."
 
-#: ../cli.py:494
+#: ../cli.py:491
 msgid "Parsing package install arguments"
 msgstr "Analyserer argumentene for pakkeinstallasjon"
 
-#: ../cli.py:504
+#: ../cli.py:501
 #, python-format
 msgid "No package %s available."
-msgstr "Pakke: %s er ikke tilgjengelig."
+msgstr "Ingen pakke: %s er tilgjengelig."
 
-#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:790
+#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
 msgid "Package(s) to install"
-msgstr "Pakke(r) som skal legges inn"
+msgstr "Pakker som legges"
 
-#: ../cli.py:509 ../cli.py:627 ../yumcommands.py:147 ../yumcommands.py:791
+#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
 msgid "Nothing to do"
-msgstr "Ingenting å gjøre"
+msgstr "Ingenting og gjøre"
 
-#: ../cli.py:539 ../yum/__init__.py:2275 ../yum/__init__.py:2375
-#: ../yum/__init__.py:2387
+#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
+#: ../yum/__init__.py:2340
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
 
-#: ../cli.py:571
+#: ../cli.py:568
 #, python-format
 msgid "Could not find update match for %s"
 msgstr "Kunne ikke finne oppdatering som passet for %s"
 
-#: ../cli.py:583
+#: ../cli.py:580
 #, python-format
 msgid "%d packages marked for Update"
-msgstr "%d pakker merket for oppdatering"
+msgstr "%d pakker er vil bli oppdatert"
 
-#: ../cli.py:586
+#: ../cli.py:583
 msgid "No Packages marked for Update"
-msgstr "Ingen pakker merket for oppdatering"
+msgstr "Ingen pakker vil bli oppdatert"
 
-#: ../cli.py:602
+#: ../cli.py:599
 #, python-format
 msgid "%d packages marked for removal"
-msgstr "%d pakker merket for fjerning"
+msgstr "%d pakker vil bli fjernet"
 
-#: ../cli.py:605
+#: ../cli.py:602
 msgid "No Packages marked for removal"
-msgstr "Ingen pakker merket for fjerning"
+msgstr "Ingen pakker vil bli fjernet"
 
-#: ../cli.py:617
+#: ../cli.py:614
 msgid "No Packages Provided"
 msgstr "Ingen pakker ble tilbudt"
 
-#: ../cli.py:657
+#: ../cli.py:654
 msgid "Matching packages for package list to user args"
 msgstr "Tilpasser pakkeliste etter brukers ønske"
 
-#: ../cli.py:705
-#, python-format
+#: ../cli.py:701
+#, fuzzy, python-format
 msgid "Warning: No matches found for: %s"
-msgstr "Advarsel: Ingen treff funnet for: %s"
+msgstr "Ingen pakke for %s er funnet"
 
-#: ../cli.py:708
+#: ../cli.py:704
 msgid "No Matches found"
-msgstr "Fant ingen treff"
+msgstr "Ingen passende pakker ble funnet"
 
-#: ../cli.py:749
+#: ../cli.py:745
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Ingen pakke ble funnet for %s"
 
-#: ../cli.py:761
+#: ../cli.py:757
 msgid "Cleaning up Everything"
 msgstr "Rydder opp alt"
 
-#: ../cli.py:775
+#: ../cli.py:771
 msgid "Cleaning up Headers"
-msgstr "Rydder opp pakkehoder"
+msgstr "Rydder opp metadata"
 
-#: ../cli.py:778
+#: ../cli.py:774
 msgid "Cleaning up Packages"
-msgstr "Rydder opp pakker"
+msgstr "Fjerner lagrede pakker"
 
-#: ../cli.py:781
+#: ../cli.py:777
 msgid "Cleaning up xml metadata"
 msgstr "Rydder opp i XML-metadata"
 
-#: ../cli.py:784
+#: ../cli.py:780
 msgid "Cleaning up database cache"
-msgstr "Rydder opp i mellomlager for database"
+msgstr "Rydder opp i databasen"
 
-#: ../cli.py:787
+#: ../cli.py:783
+#, fuzzy
 msgid "Cleaning up expire-cache metadata"
-msgstr "Rydder opp i metadata for expire-cache"
+msgstr "Rydder opp i XML-metadata"
 
-#: ../cli.py:790
+#: ../cli.py:786
 msgid "Cleaning up plugins"
 msgstr "Rydder opp i tillegg"
 
-#: ../cli.py:812
+#: ../cli.py:807
 msgid "Installed Groups:"
 msgstr "Installerte grupper:"
 
-#: ../cli.py:819
+#: ../cli.py:814
 msgid "Available Groups:"
 msgstr "Tilgjengelig grupper:"
 
-#: ../cli.py:825
+#: ../cli.py:820
 msgid "Done"
 msgstr "Ferdig"
 
-#: ../cli.py:836 ../cli.py:854 ../cli.py:860
+#: ../cli.py:829 ../cli.py:841 ../cli.py:847
 #, python-format
 msgid "Warning: Group %s does not exist."
-msgstr "Advarsel: Gruppe %s eksisterer ikke."
+msgstr "Advarsel: gruppe %s eksisterer ikke."
 
-#: ../cli.py:864
+#: ../cli.py:853
 msgid "No packages in any requested group available to install or update"
-msgstr ""
-"Ingen pakker tilgjengelig for installering eller oppdatering i aktuelle "
-"grupper"
+msgstr "Ingen pakker i aktuelle grupper er tilgjengelig"
 
-#: ../cli.py:866
+#: ../cli.py:855
 #, python-format
 msgid "%d Package(s) to Install"
-msgstr "%d pakke(r) vil bli installert"
+msgstr "%d pakker vil bli installert"
 
-#: ../cli.py:876
+#: ../cli.py:865
 #, python-format
 msgid "No group named %s exists"
-msgstr "Det finnes ingen gruppe med navn %s"
+msgstr "Ingen gruppe med navn %s er tilgjengelig"
 
-#: ../cli.py:882
+#: ../cli.py:871
 msgid "No packages to remove from groups"
-msgstr "Ingen pakker å fjerne fra grupper"
+msgstr "Ingen pakker og fjerne fra gruppe"
 
-#: ../cli.py:884
+#: ../cli.py:873
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d pakker vil bli fjernet"
 
-#: ../cli.py:926
+#: ../cli.py:915
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Pakke %s er allerede lagt inn, hopper over"
 
-#: ../cli.py:937
+#: ../cli.py:926
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
-msgstr "Vraker pakke som ikke kan sammenlignes %s.%s"
+msgstr "Vraker pakke som ikke sammenlignes %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:963
+#: ../cli.py:952
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr ""
-"Ingen annen %s er lagt inn, legger til pakke til liste over potensielle "
-"pakker"
+"Ingen annen pakke %s er lagt inn, legger til pakke til liste over "
+"potensielle pakker"
 
-#: ../cli.py:982
+#: ../cli.py:971
 #, python-format
 msgid "Command line error: %s"
-msgstr "Feil med kommandolinje: %s"
-
-#: ../cli.py:994
-#, python-format
-msgid ""
-"\n"
-"\n"
-"%s: %s option requires an argument"
-msgstr ""
-"\n"
-"\n"
-"%s: flagg %s krever et argument"
+msgstr "Feil ved kommandolinje: %s"
 
-#: ../cli.py:1123
-msgid "show this help message and exit"
-msgstr "vis denne hjelpteksten og avslutt"
-
-#: ../cli.py:1127
+#: ../cli.py:1101
 msgid "be tolerant of errors"
 msgstr "vær tolerant ved feil"
 
-#: ../cli.py:1129
+#: ../cli.py:1103
 msgid "run entirely from cache, don't update cache"
 msgstr "bruk kun lagrede filer ved kjøring, ikke oppdater lagrede filer"
 
-#: ../cli.py:1131
+#: ../cli.py:1105
 msgid "config file location"
 msgstr "plassering av konfigurasjonsfil"
 
-#: ../cli.py:1133
+#: ../cli.py:1107
 msgid "maximum command wait time"
 msgstr "maksimaltid for å vente på kommando"
 
-#: ../cli.py:1135
+#: ../cli.py:1109
 msgid "debugging output level"
-msgstr "nivå for tilbakemeldinger ved avlusing"
+msgstr "mengde tilbakemelding ved avlusing"
 
-#: ../cli.py:1139
+#: ../cli.py:1113
 msgid "show duplicates, in repos, in list/search commands"
-msgstr "vis duplikater i lager og i kommandoer for å liste/søke i pakker"
+msgstr ""
 
-#: ../cli.py:1141
+#: ../cli.py:1115
 msgid "error output level"
 msgstr "mengde tilbakemelding ved feil"
 
-#: ../cli.py:1144
+#: ../cli.py:1118
 msgid "quiet operation"
-msgstr "stille operasjon"
-
-#: ../cli.py:1146
-msgid "verbose operation"
-msgstr "vis ekstra informasjon"
+msgstr "utfører med minimalt av tilbakemelding"
 
-#: ../cli.py:1148
+#: ../cli.py:1122
 msgid "answer yes for all questions"
-msgstr "svar Ja til alle spørsmål"
+msgstr "svar Ja til alle eventuelle spørsmål som kan oppstå"
 
-#: ../cli.py:1150
+#: ../cli.py:1124
 msgid "show Yum version and exit"
-msgstr "vis Yum-versjon og avslutt"
+msgstr "vis versjon til Yum og avslutt deretter"
 
-#: ../cli.py:1151
+#: ../cli.py:1125
 msgid "set install root"
-msgstr "sett rot for installasjonen"
+msgstr "setter laveste filtre-nivå for intallering (standard er /)"
 
-#: ../cli.py:1155
+#: ../cli.py:1129
 msgid "enable one or more repositories (wildcards allowed)"
-msgstr "legger til et eller flere lager (jokertegn er tillatt)"
+msgstr "legger til en eller flere pakkeoversikter (jokertegn er tillatt)"
 
-#: ../cli.py:1159
+#: ../cli.py:1133
 msgid "disable one or more repositories (wildcards allowed)"
-msgstr "slå av et eller flere lager (jokertegn er tillatt)"
+msgstr "fjernet en eller flere pakkeoversikter (jokertegn er tillatt)"
 
-#: ../cli.py:1162
+#: ../cli.py:1136
 msgid "exclude package(s) by name or glob"
-msgstr "overse pakke(r) ved navn eller mønster"
+msgstr "overse pakke(r) ved navn eller glob"
 
-#: ../cli.py:1164
+#: ../cli.py:1138
 msgid "disable exclude from main, for a repo or for everything"
-msgstr "fjerner ekskludering av pakker, for et lager eller alle pakker"
+msgstr "fjerner ekskludering av pakker, for en pakkeoversikt eller fullstendig"
 
-#: ../cli.py:1167
+#: ../cli.py:1141
 msgid "enable obsoletes processing during updates"
 msgstr "ta med foreldede pakker i beregningen ved oppdatering"
 
-#: ../cli.py:1169
+#: ../cli.py:1143
 msgid "disable Yum plugins"
 msgstr "ikke bruk tillegg til Yum"
 
-#: ../cli.py:1171
+#: ../cli.py:1145
 msgid "disable gpg signature checking"
-msgstr "ikke sjekk GPG-signaturer"
+msgstr "ikke gjennomfør sjekk av GPG-signaturer"
 
-#: ../cli.py:1173
+#: ../cli.py:1147
 msgid "disable plugins by name"
-msgstr "slå av tillegg til yum etter navn"
+msgstr "ikke bruk tillegg til yum ved navn"
 
-#: ../cli.py:1176
+#: ../cli.py:1150
 msgid "skip packages with depsolving problems"
-msgstr "hopp over pakker som har problemer med avhengigheter"
+msgstr "hoppe over pakker som har problemer med avhengigheter"
 
-#: ../output.py:228
+#: ../output.py:229
 msgid "Jan"
 msgstr "jan"
 
-#: ../output.py:228
+#: ../output.py:229
 msgid "Feb"
 msgstr "feb"
 
-#: ../output.py:228
+#: ../output.py:229
 msgid "Mar"
 msgstr "mar"
 
-#: ../output.py:228
+#: ../output.py:229
 msgid "Apr"
 msgstr "apr"
 
-#: ../output.py:228
+#: ../output.py:229
 msgid "May"
 msgstr "mai"
 
-#: ../output.py:228
+#: ../output.py:229
 msgid "Jun"
 msgstr "jun"
 
-#: ../output.py:229
+#: ../output.py:230
 msgid "Jul"
 msgstr "jul"
 
-#: ../output.py:229
+#: ../output.py:230
 msgid "Aug"
 msgstr "aug"
 
-#: ../output.py:229
+#: ../output.py:230
 msgid "Sep"
 msgstr "sep"
 
-#: ../output.py:229
+#: ../output.py:230
 msgid "Oct"
 msgstr "okt"
 
-#: ../output.py:229
+#: ../output.py:230
 msgid "Nov"
 msgstr "nov"
 
-#: ../output.py:229
+#: ../output.py:230
 msgid "Dec"
 msgstr "des"
 
-#: ../output.py:239
+#: ../output.py:240
 msgid "Trying other mirror."
 msgstr "Prøver et annet speil."
 
@@ -547,25 +524,25 @@ msgstr "Beskrivelse:"
 
 #: ../output.py:351
 msgid "Is this ok [y/N]: "
-msgstr "Er dette ok [j/N]:"
+msgstr "Er dette greit [y/N]:"
 
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
 msgid "y"
-msgstr "j"
+msgstr ""
 
-#: ../output.py:359
+#: ../output.py:357
 msgid "n"
-msgstr "n"
+msgstr ""
 
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
 msgid "yes"
-msgstr "ja"
+msgstr ""
 
-#: ../output.py:359
+#: ../output.py:357
 msgid "no"
-msgstr "nei"
+msgstr ""
 
-#: ../output.py:370
+#: ../output.py:367
 #, python-format
 msgid ""
 "\n"
@@ -574,96 +551,96 @@ msgstr ""
 "\n"
 "Gruppe:%s"
 
-#: ../output.py:372
+#: ../output.py:369
 #, python-format
 msgid " Description: %s"
 msgstr " Beskrivelse: %s"
 
-#: ../output.py:374
+#: ../output.py:371
 msgid " Mandatory Packages:"
 msgstr "Obligatoriske pakker:"
 
-#: ../output.py:379
+#: ../output.py:376
 msgid " Default Packages:"
 msgstr "Standard pakker:"
 
-#: ../output.py:384
+#: ../output.py:381
 msgid " Optional Packages:"
 msgstr "Valgfrie pakker:"
 
-#: ../output.py:389
+#: ../output.py:386
 msgid " Conditional Packages:"
 msgstr "Betingede pakker:"
 
-#: ../output.py:398
+#: ../output.py:394
 #, python-format
 msgid "package: %s"
 msgstr "pakke: %s"
 
-#: ../output.py:400
+#: ../output.py:396
 msgid "  No dependencies for this package"
 msgstr " Ingen avhengigheter for denne pakka"
 
-#: ../output.py:405
+#: ../output.py:401
 #, python-format
 msgid "  dependency: %s"
 msgstr " avhengighet: %s"
 
-#: ../output.py:407
+#: ../output.py:403
 msgid "   Unsatisfied dependency"
 msgstr " avhengighet som ikke kunne tilfredstilles"
 
-#: ../output.py:465
+#: ../output.py:461
 msgid "Matched from:"
 msgstr "Treff fra:"
 
-#: ../output.py:491
+#: ../output.py:487
 msgid "There was an error calculating total download size"
 msgstr "Kunne ikke finne ut størrelse på det som skal hentes ned"
 
-#: ../output.py:496
+#: ../output.py:492
 #, python-format
 msgid "Total size: %s"
 msgstr "Totale størrelse: %s"
 
-#: ../output.py:499
+#: ../output.py:495
 #, python-format
 msgid "Total download size: %s"
 msgstr "Totale størrelse på pakker som hentes: %s"
 
-#: ../output.py:511
+#: ../output.py:507
 msgid "Package"
 msgstr "Pakke"
 
-#: ../output.py:511
+#: ../output.py:507
 msgid "Arch"
 msgstr "Arkitektur"
 
-#: ../output.py:511
+#: ../output.py:507
 msgid "Version"
 msgstr "Versjon"
 
-#: ../output.py:511
+#: ../output.py:507
 msgid "Repository"
 msgstr "Pakkeoversikt"
 
-#: ../output.py:511
+#: ../output.py:507
 msgid "Size"
 msgstr "Størrelse"
 
-#: ../output.py:518
+#: ../output.py:514
 msgid "Installing for dependencies"
 msgstr "Legges inn på grunn avhengigheter"
 
-#: ../output.py:519
+#: ../output.py:515
 msgid "Updating for dependencies"
 msgstr "Oppdateres på grunn avhengigheter"
 
-#: ../output.py:520
+#: ../output.py:516
 msgid "Removing for dependencies"
 msgstr "Fjernes på grunn avhengigheter"
 
-#: ../output.py:532
+#: ../output.py:528
 #, python-format
 msgid ""
 "     replacing  %s.%s %s\n"
@@ -672,7 +649,7 @@ msgstr ""
 "     erstatter   %s.%s %s\"\n"
 "\n"
 
-#: ../output.py:540
+#: ../output.py:536
 #, python-format
 msgid ""
 "\n"
@@ -689,27 +666,27 @@ msgstr ""
 "Oppdaterer %5.5s pakker\n"
 "Fjerner    %5.5s pakker\n"
 
-#: ../output.py:558
+#: ../output.py:554
 msgid "Removed"
 msgstr "Fjernet"
 
-#: ../output.py:559
+#: ../output.py:555
 msgid "Dependency Removed"
 msgstr "Fjernet på grunn avhengighet"
 
-#: ../output.py:561
+#: ../output.py:557
 msgid "Dependency Installed"
 msgstr "Lagt inn på grunn av avhengighet"
 
-#: ../output.py:563
+#: ../output.py:559
 msgid "Dependency Updated"
 msgstr "Oppdatert på grunn avhengighet"
 
-#: ../output.py:564
+#: ../output.py:560
 msgid "Replaced"
 msgstr "Erstattet"
 
-#: ../output.py:622
+#: ../output.py:618
 #, python-format
 msgid ""
 "\n"
@@ -720,72 +697,72 @@ msgstr ""
 " Pågående nedlastning er avbrutt, %s avbryt (ved å trykke Ctrl-C) %s ganger "
 "til innen %s%s%s sekunder for å avslutte helt.\n"
 
-#: ../output.py:632
+#: ../output.py:628
 msgid "user interrupt"
-msgstr "avbrutt av bruker"
+msgstr "avbryt av bruker"
 
-#: ../output.py:643
+#: ../output.py:639
 msgid "installed"
 msgstr "lagt inn"
 
-#: ../output.py:644
+#: ../output.py:640
 msgid "updated"
 msgstr "oppdatert"
 
-#: ../output.py:645
+#: ../output.py:641
 msgid "obsoleted"
 msgstr "foreldet"
 
-#: ../output.py:646
+#: ../output.py:642
 msgid "erased"
 msgstr "fjernet"
 
-#: ../output.py:650
+#: ../output.py:646
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> pakke %s.%s %s:%s-%s er satt til %s"
 
-#: ../output.py:657
+#: ../output.py:653
 msgid "--> Running transaction check"
 msgstr "--> Utfører sjekk av transaksjonen"
 
-#: ../output.py:662
+#: ../output.py:658
 msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Starter løsing av avhengigheter på nytt med endringer"
+msgstr "--> Starter løsning av avhengigheter på nytt"
 
-#: ../output.py:667
+#: ../output.py:663
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Alle avhengigheter er løst"
 
-#: ../output.py:672
+#: ../output.py:668
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Beregner avhengighet: %s for pakke: %s"
 
-#: ../output.py:677
+#: ../output.py:673
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Avhengigheter som ikke kunne bli tilfredstilt: %s"
 
-#: ../output.py:683
+#: ../output.py:679
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Beregner konflikter: %s er i konflikt med %s"
 
-#: ../output.py:686
+#: ../output.py:682
 msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> Fyller transaksjonen med valgte pakker. Vennligst vent."
+msgstr "--> Fyller transaksjonen med valgt pakker. Vennligst vent."
 
-#: ../output.py:690
+#: ../output.py:686
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Henter ned filhode for pakke %s for å fylle transaksjonen."
 
-#: ../yumcommands.py:37
+#: ../yumcommands.py:36
 msgid "You need to be root to perform this command."
 msgstr "Du må være rootbruker for å utføre denne kommandoen."
 
-#: ../yumcommands.py:44
+#: ../yumcommands.py:43
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -803,277 +780,261 @@ msgid ""
 "For more information contact your distribution or package provider.\n"
 msgstr ""
 "\n"
-"Du har valgt å sjekke pakkene ved hjelp av GPG-nøkler. Det er fornuftig.\n"
+"Du har valgt og sjekk pakkene ved hjelp av GPG-nøkler. Det er fornufting.\n"
 "Du har imidlertid ingen offentlige GPG-nøkler installert\n"
-"Du må hente ned og legge inn nøklene. Du kan legge dem inn med kommandoen:\n"
+"Du må hente ned og legge inn nøklene. Du kan legge de inn med kommandoen:\n"
 "\n"
 "  rpm --import public.gpg.key\n"
 "\n"
-"Et annet og bedre alternativ er å oppgi URL til de nøklene du vil bruke.\n"
-"Bruk opsjonen 'gpgkey' for hvert lager for å ta dette i bruk.\n"
+"Et annet og bedre alternativ er og oppgi URL til de nøklene du vil bruke.\n"
+"Bruk opsjonen 'gpgkey' for hver pakkeoversikt for å ta dette i bruk.\n"
+"\n"
 "\n"
-"Kontakt din distribusjon eller pakkeansvarlig for mer informasjon.\n"
 
-#: ../yumcommands.py:64
+#: ../yumcommands.py:63
 #, python-format
 msgid "Error: Need to pass a list of pkgs to %s"
-msgstr "Feil: du må oppgi en liste med pakker som skal %s"
+msgstr "Feil: du må oppgi ei liste over pakker som skal %s"
 
-#: ../yumcommands.py:70
+#: ../yumcommands.py:69
 msgid "Error: Need an item to match"
-msgstr "Feil: trenger noe å sammenligne med"
+msgstr "Feil: trenger noe og sammenligne med"
 
-#: ../yumcommands.py:76
+#: ../yumcommands.py:75
 msgid "Error: Need a group or list of groups"
-msgstr "Feil: trenger en gruppe eller en liste med grupper"
+msgstr "Feil: trenger ei gruppe eller ei liste med grupper"
 
-#: ../yumcommands.py:85
+#: ../yumcommands.py:84
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "Feil: clean trenger minst et argument: %s"
 
-#: ../yumcommands.py:90
+#: ../yumcommands.py:89
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "Feil: ugyldig argument gitt til kommandoen clean: %r"
 
-#: ../yumcommands.py:103
+#: ../yumcommands.py:102
 msgid "No argument to shell"
 msgstr "Ingen argumenter ble gitt til kommandoen shell"
 
-#: ../yumcommands.py:106
+#: ../yumcommands.py:105
 #, python-format
 msgid "Filename passed to shell: %s"
-msgstr "Følgende filnavn ble sendt til skallet: %s"
+msgstr "Følgende filnavn ble som argument til shell: %s"
 
-#: ../yumcommands.py:110
+#: ../yumcommands.py:109
 #, python-format
 msgid "File %s given as argument to shell does not exist."
 msgstr ""
 "Filen %s som ble gitt som argument til kommandoen shell eksisterer ikke."
 
-#: ../yumcommands.py:116
+#: ../yumcommands.py:115
 msgid "Error: more than one file given as argument to shell."
-msgstr "Feil: mer enn en fil ble gitt som argument til kommandoen shell."
+msgstr "Feil: mer enn ei fil ble gitt som argument til kommandoen shell."
 
-#: ../yumcommands.py:157
+#: ../yumcommands.py:156
 msgid "PACKAGE..."
-msgstr "PAKKE..."
+msgstr "Pakke..."
 
-#: ../yumcommands.py:160
+#: ../yumcommands.py:159
 msgid "Install a package or packages on your system"
-msgstr "Legg inn en eller flere pakker på systemet"
+msgstr "Legger inn pakke(r) på ditt system"
 
-#: ../yumcommands.py:169
+#: ../yumcommands.py:168
 msgid "Setting up Install Process"
 msgstr "Forberedelser for installasjon"
 
-#: ../yumcommands.py:180
+#: ../yumcommands.py:179
 msgid "[PACKAGE...]"
-msgstr "[PAKKE...]"
+msgstr "[Pakke...}"
 
-#: ../yumcommands.py:183
+#: ../yumcommands.py:182
 msgid "Update a package or packages on your system"
-msgstr "Oppdater en eller flere pakker på systemet"
+msgstr "Oppdaterer pakke(r) på ditt system"
 
-#: ../yumcommands.py:191
+#: ../yumcommands.py:190
 msgid "Setting up Update Process"
 msgstr "Forberedelser for oppdatering"
 
-#: ../yumcommands.py:205
+#: ../yumcommands.py:204
 msgid "Display details about a package or group of packages"
 msgstr "Viser detaljer om en pakke eller en gruppe av grupper"
 
-#: ../yumcommands.py:213
+#: ../yumcommands.py:212
 msgid "Installed Packages"
 msgstr "Pakker som er installert"
 
-#: ../yumcommands.py:214
+#: ../yumcommands.py:213
 msgid "Available Packages"
-msgstr "Tilgjengelige pakker"
+msgstr "Tilgjengelig pakker"
 
-#: ../yumcommands.py:215
+#: ../yumcommands.py:214
 msgid "Extra Packages"
 msgstr "Tilleggspakker"
 
-#: ../yumcommands.py:216
+#: ../yumcommands.py:215
 msgid "Updated Packages"
 msgstr "Oppdaterte pakker"
 
-#: ../yumcommands.py:222 ../yumcommands.py:228
+#: ../yumcommands.py:221 ../yumcommands.py:225
 msgid "Obsoleting Packages"
 msgstr "Utdaterte pakker"
 
-#: ../yumcommands.py:229
+#: ../yumcommands.py:226
 msgid "Recently Added Packages"
-msgstr "Pakker som nylig er lagt til"
+msgstr "Pakker som nylig er blitt lagt til"
 
-#: ../yumcommands.py:235
+#: ../yumcommands.py:232
 msgid "No matching Packages to list"
-msgstr "Ingen passende pakker å liste opp"
+msgstr "Ingen passende pakker og liste opp"
 
-#: ../yumcommands.py:249
+#: ../yumcommands.py:246
 msgid "List a package or groups of packages"
-msgstr "Lag en liste med pakker eller grupper av pakker"
+msgstr "Lag en liste over pakker eller gruppe av pakker"
 
-#: ../yumcommands.py:261
+#: ../yumcommands.py:258
 msgid "Remove a package or packages from your system"
-msgstr "Fjern en eller flere pakker fra systemet"
+msgstr "Fjerner pakke(r) fra ditt system"
 
-#: ../yumcommands.py:269
+#: ../yumcommands.py:266
 msgid "Setting up Remove Process"
 msgstr "Klargjør for fjerning av pakker"
 
-#: ../yumcommands.py:281
+#: ../yumcommands.py:278
 msgid "Setting up Group Process"
-msgstr "Klargjør grupper med pakker"
+msgstr "Klargjør grupper av pakker"
 
-#: ../yumcommands.py:287
+#: ../yumcommands.py:284
 msgid "No Groups on which to run command"
-msgstr "Ingen gruppe er valgt for aktuell kommando"
+msgstr "Ingen gruppe er valgt for aktuelle kommando"
 
-#: ../yumcommands.py:300
+#: ../yumcommands.py:297
 msgid "List available package groups"
-msgstr "Lag liste over tilgjengelige pakkegrupper"
+msgstr "Lag liste over tilgjengelig grupper"
 
-#: ../yumcommands.py:317
+#: ../yumcommands.py:314
 msgid "Install the packages in a group on your system"
-msgstr "Legger inn pakkene i en gruppe på systemet"
+msgstr "Legger inn pakkene i gruppe av pakker"
 
-#: ../yumcommands.py:339
+#: ../yumcommands.py:336
 msgid "Remove the packages in a group from your system"
-msgstr "Fjern pakkene i en gruppe fra systemet"
+msgstr "Fjerner alle pakkene i en gruppe av pakker"
 
-#: ../yumcommands.py:363
+#: ../yumcommands.py:360
 msgid "Display details about a package group"
 msgstr "Viser detaljer om en gruppe av pakker"
 
-#: ../yumcommands.py:387
+#: ../yumcommands.py:384
 msgid "Generate the metadata cache"
-msgstr "Lag mellomlager med metadata"
+msgstr "Generer mellomlager av metadata"
 
-#: ../yumcommands.py:393
+#: ../yumcommands.py:390
 msgid "Making cache files for all metadata files."
 msgstr "Lager mellomlager for samtlige filer med metadata."
 
-#: ../yumcommands.py:394
+#: ../yumcommands.py:391
 msgid "This may take a while depending on the speed of this computer"
-msgstr "Dette kan en stund avhengig av hvor rask datamaskinen er"
+msgstr "Dette kan ei stund alt ettersom hvor rask din maskin er"
 
-#: ../yumcommands.py:415
+#: ../yumcommands.py:412
 msgid "Metadata Cache Created"
 msgstr "Mellomlager er ferdig lagd"
 
-#: ../yumcommands.py:429
+#: ../yumcommands.py:426
 msgid "Remove cached data"
 msgstr "Fjern mellomlager med metadata"
 
-#: ../yumcommands.py:450
+#: ../yumcommands.py:447
 msgid "Find what package provides the given value"
-msgstr "Finn hvilken pakke som inneholder etterspurt verdi"
+msgstr "Finn hvilken pakke som tilbyr den søkte verdi"
 
-#: ../yumcommands.py:470
+#: ../yumcommands.py:467
 msgid "Check for available package updates"
-msgstr "Se etter tilgjengelige pakkeoppdateringer"
+msgstr "Sjekker om det oppdatering tilgjengelig for gruppene av pakker"
 
-#: ../yumcommands.py:493
+#: ../yumcommands.py:490
 msgid "Search package details for the given string"
-msgstr "Søker etter oppgitt streng i pakkedetaljene"
+msgstr "Søker etter detaljer om pakke utenifra den aktuelle strengen"
 
-#: ../yumcommands.py:499
+#: ../yumcommands.py:496
 msgid "Searching Packages: "
-msgstr "Søker i pakker: "
+msgstr "Søker etter pakker: "
 
-#: ../yumcommands.py:516
+#: ../yumcommands.py:513
 msgid "Update packages taking obsoletes into account"
-msgstr "Oppdater pakker og ta hensyn til pakker som blir utdatert"
+msgstr "Oppdatering pakker og tar samtidig hensyn til pakker som er utdatert"
 
-#: ../yumcommands.py:525
+#: ../yumcommands.py:522
 msgid "Setting up Upgrade Process"
 msgstr "Klargjør for oppdatering"
 
-#: ../yumcommands.py:539
+#: ../yumcommands.py:536
 msgid "Install a local RPM"
 msgstr "Legger inn en RPM fra filsystemet"
 
-#: ../yumcommands.py:548
+#: ../yumcommands.py:545
 msgid "Setting up Local Package Process"
 msgstr "Klargjøring for pakker på lokalt filsystem"
 
-#: ../yumcommands.py:567
+#: ../yumcommands.py:564
 msgid "Determine which package provides the given dependency"
 msgstr "Finner hvilken pakke som tilbyr den gitte avhengigheten"
 
-#: ../yumcommands.py:570
+#: ../yumcommands.py:567
 msgid "Searching Packages for Dependency:"
-msgstr "Søker i pakker etter avhengighet:"
+msgstr "Søker etter pakker med avhengighet:"
 
-#: ../yumcommands.py:584
+#: ../yumcommands.py:581
 msgid "Run an interactive yum shell"
 msgstr "Kjører det interaktive Yum-skallet"
 
-#: ../yumcommands.py:590
+#: ../yumcommands.py:587
 msgid "Setting up Yum Shell"
 msgstr "Klargjør Yum-skallet"
 
-#: ../yumcommands.py:608
+#: ../yumcommands.py:605
 msgid "List a package's dependencies"
-msgstr "Vis avhengigheter for en pakke"
+msgstr "Lister opp avhengighetene til pakka"
 
-#: ../yumcommands.py:614
+#: ../yumcommands.py:611
 msgid "Finding dependencies: "
 msgstr "Finner avhengigheter: "
 
-#: ../yumcommands.py:630
+#: ../yumcommands.py:627
 msgid "Display the configured software repositories"
 msgstr "Viser de pakkeoversiktene som er satt opp"
 
-#: ../yumcommands.py:666
-msgid "enabled"
-msgstr "aktiv"
-
-#: ../yumcommands.py:673
-msgid "disabled"
-msgstr "inaktiv"
-
-#: ../yumcommands.py:682
+#: ../yumcommands.py:645
 msgid "repo id"
 msgstr "id"
 
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
 msgid "repo name"
 msgstr "navn"
 
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
 msgid "status"
 msgstr "status"
 
-#: ../yumcommands.py:686
-msgid "Repo-id     : "
-msgstr "ID for lager: "
-
-#: ../yumcommands.py:687
-msgid "Repo-name   : "
-msgstr "Navn på lager : "
-
-#: ../yumcommands.py:688
-msgid "Repo-enabled: "
-msgstr "Lager aktivt: "
+#: ../yumcommands.py:651
+msgid "enabled"
+msgstr "aktiv"
 
-#: ../yumcommands.py:689
-msgid "Repo-size   : "
-msgstr "Størrelse på lager : "
+#: ../yumcommands.py:654
+msgid "disabled"
+msgstr "inaktiv"
 
-#: ../yumcommands.py:713
+#: ../yumcommands.py:671
 msgid "Display a helpful usage message"
 msgstr "Viser en hjelpetekst"
 
-#: ../yumcommands.py:747
+#: ../yumcommands.py:705
 #, python-format
 msgid "No help available for %s"
 msgstr "Ingen hjelp er tilgjengelig for %s"
 
-#: ../yumcommands.py:752
+#: ../yumcommands.py:710
 msgid ""
 "\n"
 "\n"
@@ -1081,9 +1042,9 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"alias:"
+"aliaser:"
 
-#: ../yumcommands.py:754
+#: ../yumcommands.py:712
 msgid ""
 "\n"
 "\n"
@@ -1093,15 +1054,15 @@ msgstr ""
 "\n"
 "alias:"
 
-#: ../yumcommands.py:783
+#: ../yumcommands.py:741
 msgid "Setting up Reinstall Process"
 msgstr "Klargjør for å legge inn pakke(r) på nytt"
 
-#: ../yumcommands.py:797
+#: ../yumcommands.py:755
 msgid "reinstall a package"
-msgstr "legg inn en pakke på nytt"
+msgstr "Legger inn en pakke på nytt"
 
-#: ../yummain.py:55
+#: ../yummain.py:41
 msgid ""
 "\n"
 "\n"
@@ -1111,7 +1072,7 @@ msgstr ""
 "\n"
 "Avslutter etter ønske"
 
-#: ../yummain.py:61
+#: ../yummain.py:47
 msgid ""
 "\n"
 "\n"
@@ -1119,42 +1080,42 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"Avslutter på grunn av brutt rør"
+"Avslutter på grunn ødelagt programrør"
 
-#: ../yummain.py:112
+#: ../yummain.py:105
 msgid ""
 "Another app is currently holding the yum lock; waiting for it to exit..."
 msgstr ""
 "Et annet program holder en fillås for Yum, venter til fillåsen frigjøres..."
 
-#: ../yummain.py:139 ../yummain.py:178
+#: ../yummain.py:132 ../yummain.py:171
 #, python-format
 msgid "Error: %s"
 msgstr "Feil: %s"
 
-#: ../yummain.py:149 ../yummain.py:185
+#: ../yummain.py:142 ../yummain.py:178
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "Ukjent feil: feilkode: %d:"
+msgstr "Ukjent feil: feilkode: %d"
 
 #. Depsolve stage
-#: ../yummain.py:156
+#: ../yummain.py:149
 msgid "Resolving Dependencies"
-msgstr "Løser avhengigheter"
+msgstr "Løser opp i avhengigheter"
 
-#: ../yummain.py:191
+#: ../yummain.py:184
 msgid ""
 "\n"
 "Dependencies Resolved"
 msgstr ""
 "\n"
-"Alle avhengigheter er løst"
+"Alle avhengigheter er oppløst"
 
-#: ../yummain.py:205
+#: ../yummain.py:198
 msgid "Complete!"
 msgstr "Ferdig!"
 
-#: ../yummain.py:252
+#: ../yummain.py:245
 msgid ""
 "\n"
 "\n"
@@ -1164,258 +1125,319 @@ msgstr ""
 "\n"
 "Avslutter etter ønske"
 
-#: ../yum/depsolve.py:78
+#: ../yum/depsolve.py:82
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/depsolve.py:91
+#: ../yum/depsolve.py:95
 msgid "Setting up TransactionSets before config class is up"
 msgstr "Setter opp transaksjons-sett før config klassen er klar"
 
-#: ../yum/depsolve.py:132
+#: ../yum/depsolve.py:136
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "Ugyldig tsflag in konfigurasjonsfil: %s"
 
-#: ../yum/depsolve.py:176
+#: ../yum/depsolve.py:147
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "Søker i pkgSack etter avhengighet: %s"
+
+#: ../yum/depsolve.py:170
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Potensielt treff for %s i %s"
+
+#: ../yum/depsolve.py:178
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "Passende %s for å tilfredstille %s"
+
+#: ../yum/depsolve.py:219
 #, python-format
 msgid "Member: %s"
 msgstr "Medlem: %s"
 
-#: ../yum/depsolve.py:190 ../yum/depsolve.py:592
+#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
 #, python-format
 msgid "%s converted to install"
 msgstr "%s ble omdannet til installering"
 
-#: ../yum/depsolve.py:197
+#: ../yum/depsolve.py:240
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "Legger til pakke %s in modus %s"
 
-#: ../yum/depsolve.py:207
+#: ../yum/depsolve.py:250
 #, python-format
 msgid "Removing Package %s"
 msgstr "Fjerner pakke %s"
 
-#: ../yum/depsolve.py:218
+#: ../yum/depsolve.py:261
 #, python-format
 msgid "%s requires: %s"
-msgstr "%s krever: %s"
+msgstr "%s avhenger av: %s"
+
+#: ../yum/depsolve.py:312
+msgid "Needed Require has already been looked up, cheating"
+msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
 
-#: ../yum/depsolve.py:273
+#: ../yum/depsolve.py:322
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
+
+#: ../yum/depsolve.py:329
+#, python-format
+msgid "Potential Provider: %s"
+msgstr "Potensiell tilbyder: %s"
+
+#: ../yum/depsolve.py:352
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr "Modus er %s for tilbyder av %s: %s"
+
+#: ../yum/depsolve.py:356
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Modus for pakke som tilbyr %s: %s"
+
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
+
+#: ../yum/depsolve.py:372
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr "TSINFO: Bytter ut %s med %s for å løse opp i avhengighet."
 
-#: ../yum/depsolve.py:276
+#: ../yum/depsolve.py:375
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: Oppdaterer %s for å løse opp i avhengighet."
 
-#: ../yum/depsolve.py:279
+#: ../yum/depsolve.py:378
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Kunne ikke finne måte å oppdatere sti for avhengighet: %s."
 
-#: ../yum/depsolve.py:283
+#: ../yum/depsolve.py:388
 #, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
+msgid "Unresolvable requirement %s for %s"
+msgstr "Avhengighet %s kan ikke løses opp: %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:434
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr "%s tilbyr pakker, men er allerede installert, fjerner denne."
 
-#: ../yum/depsolve.py:344
+#: ../yum/depsolve.py:449
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
-msgstr "Pakke %s som potensielt løser opp avhengighet har nyere instans in ts."
+msgstr ""
+"Pakke %s som potensielt tilbyder løsning har allerede nyere instans in ts."
 
-#: ../yum/depsolve.py:355
+#: ../yum/depsolve.py:460
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "Pakke %s som potensielt løser opp avhengighet er allerde installert."
 
-#: ../yum/depsolve.py:363 ../yum/depsolve.py:410
+#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Uløst avhengighet: %s trengs av pakke %s"
 
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:481
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s er allerde i ts, hopper over denne"
 
-#: ../yum/depsolve.py:420
+#: ../yum/depsolve.py:510
+#, python-format
+msgid ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr ""
+
+#: ../yum/depsolve.py:537
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Setter opp %s som oppdatering av %s"
 
-#: ../yum/depsolve.py:427
+#: ../yum/depsolve.py:544
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: Setter opp %s som pakke for installering av %s"
 
-#: ../yum/depsolve.py:518 ../yum/depsolve.py:610
+#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
 msgid "Success - empty transaction"
-msgstr "Suksess - transaksjonen er tom"
+msgstr "Suksess- transaksjonen er tom"
 
-#: ../yum/depsolve.py:562 ../yum/depsolve.py:582
+#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
 msgid "Restarting Loop"
 msgstr "Starter sløyfe på nytt"
 
-#: ../yum/depsolve.py:598
+#: ../yum/depsolve.py:702
 msgid "Dependency Process ending"
 msgstr "Beregning av avhengighet avsluttes"
 
-#: ../yum/depsolve.py:604
+#: ../yum/depsolve.py:708
 #, python-format
 msgid "%s from %s has depsolving problems"
-msgstr "%s fra %s har problemer med avhengigheter"
+msgstr "%s to %s har problemer med avhengigheter"
 
-#: ../yum/depsolve.py:611
+#: ../yum/depsolve.py:715
 msgid "Success - deps resolved"
 msgstr "Suksess - alle avhengigheter er tilfredstilt"
 
-#: ../yum/depsolve.py:625
+#: ../yum/depsolve.py:729
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Sjekker avhengigheter for %s"
 
-#: ../yum/depsolve.py:687
+#: ../yum/depsolve.py:782
 #, python-format
 msgid "looking for %s as a requirement of %s"
-msgstr "leter etter %s som kreves av %s"
+msgstr "leter etter %s som en nødvendighet fra %s"
+
+#: ../yum/depsolve.py:933
+#, python-format
+msgid "Comparing best: %s to po: %s"
+msgstr ""
 
-#: ../yum/depsolve.py:814
+#: ../yum/depsolve.py:937
 #, python-format
-msgid "Running compare_providers() for %s"
-msgstr "Kjører compare_providers() for %s"
+msgid "Same: best %s == po: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#, python-format
+msgid "best %s obsoletes po: %s"
+msgstr ""
 
-#: ../yum/depsolve.py:842 ../yum/depsolve.py:848
+#: ../yum/depsolve.py:955
 #, python-format
+msgid "po %s obsoletes best: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
+#, fuzzy, python-format
 msgid "better arch in po %s"
-msgstr "bedre arch i po %s"
+msgstr "søker etter pakke %s"
 
-#: ../yum/depsolve.py:887
+#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
 #, python-format
-msgid "%s obsoletes %s"
-msgstr "%s faser ut %s"
+msgid "po %s shares a sourcerpm with %s"
+msgstr ""
 
-#: ../yum/depsolve.py:898
+#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
 #, python-format
-msgid ""
-"archdist compared %s to %s on %s\n"
-"  Winner: %s"
+msgid "best %s shares a sourcerpm with %s"
 msgstr ""
-"archdist sammenlignet %s med %s på %s\n"
-" Vinner: %s"
 
-#: ../yum/depsolve.py:905
+#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
 #, python-format
-msgid "common sourcerpm %s and %s"
+msgid "po %s shares more of the name prefix with %s"
 msgstr ""
 
-#: ../yum/depsolve.py:911
+#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
 #, python-format
-msgid "common prefix of %s between %s and %s"
+msgid "po %s has a shorter name than best %s"
 msgstr ""
 
-#: ../yum/depsolve.py:919
+#: ../yum/depsolve.py:1025
 #, python-format
-msgid "Best Order: %s"
-msgstr "Beste rekkefølge: %s"
+msgid "bestpkg %s shares more of the name prefix with %s"
+msgstr ""
 
-#: ../yum/__init__.py:148
+#: ../yum/__init__.py:119
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#. FIXME: Use critical? or exception?
-#: ../yum/__init__.py:323
+#: ../yum/__init__.py:296
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
-msgstr "Pakkelager %r mangler navn i konfigurasjonsfilen(e), bruker id"
+msgstr "Pakkeoversikt %r har intet navn i konfigurasjonsfilen(e), bruker id"
 
-#: ../yum/__init__.py:359
+#: ../yum/__init__.py:332
 msgid "plugins already initialised"
-msgstr "tillegg til yum er allerede initiert"
+msgstr "tillegg til yum er allerede satt opp"
 
-#: ../yum/__init__.py:366
+#: ../yum/__init__.py:339
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:376
+#: ../yum/__init__.py:349
 msgid "Reading Local RPMDB"
-msgstr "Leser inn lokal RPM-database"
+msgstr "Leser inn lokale RPM-database"
 
-#: ../yum/__init__.py:394
+#: ../yum/__init__.py:367
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum\n"
 
-#: ../yum/__init__.py:414
+#: ../yum/__init__.py:387
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() vil forsvinne i en kommende utgave av Yum\n"
 
-#: ../yum/__init__.py:431
+#: ../yum/__init__.py:404
 msgid "Setting up Package Sacks"
 msgstr "Lager sekker med pakker"
 
-#: ../yum/__init__.py:474
+#: ../yum/__init__.py:447
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
-msgstr "objekt for pakkelager %s mangler metoden _resetSack\n"
+msgstr "objekt for pakkesoversikt %s mangler metoden _resetSack\n"
 
-#: ../yum/__init__.py:475
+#: ../yum/__init__.py:448
 msgid "therefore this repo cannot be reset.\n"
-msgstr "derfor kan ikke denne pakkeoversikten nullstilles\n"
+msgstr "derfor kan ikke denne pakkeoversikten bli nullstilt\n"
 
-#: ../yum/__init__.py:480
+#: ../yum/__init__.py:453
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:492
+#: ../yum/__init__.py:465
 msgid "Building updates object"
-msgstr "Bygger opp oppdateringsobjekt"
+msgstr "Bygger opp oppdateringobject"
 
-#: ../yum/__init__.py:523
+#: ../yum/__init__.py:496
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:547
+#: ../yum/__init__.py:520
 msgid "Getting group metadata"
-msgstr "Henter metadata for grupper"
+msgstr "Henter metadata om grupper"
 
-#: ../yum/__init__.py:572
+#: ../yum/__init__.py:546
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Legger til gruppefil fra pakkeoversikt: %s"
 
-#: ../yum/__init__.py:577
+#: ../yum/__init__.py:555
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
-msgstr "Kunne ikke legge til gruppefil for pakkeoversikt: %s - %s"
+msgstr "Kunne ike legge til gruppefil for pakkeoversikt: %s - %s"
 
-#: ../yum/__init__.py:583
+#: ../yum/__init__.py:561
 msgid "No Groups Available in any repository"
-msgstr "Ingen grupper tilgjengelig fra noen lagre"
+msgstr "Ingen grupper overhode tilgjengelig"
 
-#: ../yum/__init__.py:633
+#: ../yum/__init__.py:611
 msgid "Importing additional filelist information"
-msgstr "Henter mer informasjon om fil-lister"
+msgstr "Henter ytterligere informasjon om fil-lister"
 
-#: ../yum/__init__.py:684
+#: ../yum/__init__.py:657
 #, python-format
 msgid "Skip-broken round %i"
-msgstr "Runde %i for å hoppe over feil avhengighet"
+msgstr "Runde %i på grunn av ødelagte avhengigheter."
 
-#: ../yum/__init__.py:707
+#: ../yum/__init__.py:680
 #, python-format
 msgid "Skip-broken took %i rounds "
-msgstr "På grunn feil i avhengigheter ble det gjennomført %i runder "
+msgstr "På grunn ødelagte avhengigheter ble det gjennomført %i runder "
 
-#: ../yum/__init__.py:708
+#: ../yum/__init__.py:681
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1423,161 +1445,157 @@ msgstr ""
 "\n"
 "Pakker som ble oversett på grunn av problemer med avhengigheter:"
 
-#: ../yum/__init__.py:712
+#: ../yum/__init__.py:685
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s fra %s"
 
-#: ../yum/__init__.py:792
-msgid ""
-"Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr ""
-
-#: ../yum/__init__.py:807
+#: ../yum/__init__.py:774
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Kunne ikke fjerne transaksjonsfil %s"
 
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:814
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "ekskluderer på grunn av kostnad: %s fra %s"
 
-#: ../yum/__init__.py:878
+#: ../yum/__init__.py:845
 msgid "Excluding Packages in global exclude list"
-msgstr "Ekskluderer pakker som er i global liste med ekskluderte pakker"
+msgstr "Ekskluderer pakker som er i global liste av ekskluderte pakker"
 
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:847
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "Ekskluderer pakker fra %s"
 
-#: ../yum/__init__.py:906
+#: ../yum/__init__.py:875
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Reduserer %s til kun inkluderte pakker"
 
-#: ../yum/__init__.py:911
+#: ../yum/__init__.py:880
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Tar vare på inkludert pakke %s"
 
-#: ../yum/__init__.py:917
+#: ../yum/__init__.py:886
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Fjerner upassende pakke: %s"
 
-#: ../yum/__init__.py:920
+#: ../yum/__init__.py:889
 msgid "Finished"
 msgstr "Ferdig"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:950
+#: ../yum/__init__.py:919
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "Kunne ikke sjekke om PID %s er aktiv"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:954
+#: ../yum/__init__.py:923
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
-msgstr "Det fins allerede en låsfil %s: en annen Yum kjører med PID %s."
+msgstr ""
+"Det fins allerede en låsefil: %s, en annen Yum kjører med PID %s allerede."
 
-#: ../yum/__init__.py:1017
+#: ../yum/__init__.py:970 ../yum/__init__.py:977
 msgid "Package does not match intended download"
 msgstr "Det er forskjell mellom nedlastet og forventet størrelse"
 
-#: ../yum/__init__.py:1032
+#: ../yum/__init__.py:991
 msgid "Could not perform checksum"
-msgstr "Kunne ikke beregne sjekksum"
+msgstr "Kunne ikke beregne tverrsum"
 
-#: ../yum/__init__.py:1035
+#: ../yum/__init__.py:994
 msgid "Package does not match checksum"
-msgstr "Pakken har ikke korrekt sjekksum"
+msgstr "Pakka har ikke korrekt tverrsum"
 
-#: ../yum/__init__.py:1079
+#: ../yum/__init__.py:1036
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
-msgstr "sjekksummen til pakken er feil, men mellomlagring er satt på for %s"
+msgstr "tverrsummen til pakka er feil, men mellomlagring er satt på for %s"
 
-#: ../yum/__init__.py:1082
+#: ../yum/__init__.py:1042
 #, python-format
 msgid "using local copy of %s"
-msgstr "bruker lokal kopi av %s"
+msgstr "bruker lokal kop av %s"
 
-#: ../yum/__init__.py:1107
+#: ../yum/__init__.py:1061
 #, python-format
 msgid "Insufficient space in download directory %s to download"
 msgstr "Det er ikke nok ledig plass i katalogen %s hvor pakkene blir lagret"
 
-#: ../yum/__init__.py:1140
+#: ../yum/__init__.py:1094
 msgid "Header is not complete."
-msgstr "Filhode er ikke fullstendig."
+msgstr "Filhode er ikke komplett."
 
-#: ../yum/__init__.py:1180
+#: ../yum/__init__.py:1134
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
 msgstr ""
-"Filhode er ikke tilgjengelig lokalt og mellomlager-modus er aktivert Kan "
-"ikke hente ned %s"
+"Filhode er ikke tilgjengelig lokalt og i vi er mellomlager-modes. Kan ikke "
+"hente ned %s"
 
-#: ../yum/__init__.py:1235
+#: ../yum/__init__.py:1189
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Offentlig nøkkel for %s er ikke lagt inn"
 
-#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1193
 #, python-format
 msgid "Problem opening package %s"
-msgstr "Problem ved åpning av pakke %s"
+msgstr "Kunne ved åpning av pakke %s"
 
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1201
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Offentlig nøkkel %s er ikke til å stole på"
 
-#: ../yum/__init__.py:1251
+#: ../yum/__init__.py:1205
 #, python-format
 msgid "Package %s is not signed"
-msgstr "Pakken %s er ikke signert"
+msgstr "Pakka %s er ikke signert"
 
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1243
 #, python-format
 msgid "Cannot remove %s"
-msgstr "Kan ikke fjerne %s"
+msgstr "Kunne ikke fjern %s"
 
-#: ../yum/__init__.py:1292
+#: ../yum/__init__.py:1247
 #, python-format
 msgid "%s removed"
 msgstr "%s fjernet"
 
-#: ../yum/__init__.py:1328
+#: ../yum/__init__.py:1283
 #, python-format
 msgid "Cannot remove %s file %s"
-msgstr "Kan ikke fjerne %s fra fil %s"
+msgstr "Kan ikke fjerne %s fra fila %s"
 
-#: ../yum/__init__.py:1331
+#: ../yum/__init__.py:1287
 #, python-format
 msgid "%s file %s removed"
-msgstr "%s fil %s er fjernet"
+msgstr "%s fila %s er fjernet"
 
-#: ../yum/__init__.py:1333
+#: ../yum/__init__.py:1289
 #, python-format
 msgid "%d %s files removed"
-msgstr "%d %s filer fjernet"
+msgstr "%d %s filer er fjernet"
 
-#: ../yum/__init__.py:1386
+#: ../yum/__init__.py:1329
 #, python-format
 msgid "More than one identical match in sack for %s"
-msgstr "Mer enn ett identisk passende treff i sekken %s"
+msgstr "Mer enn en identisk passende treff i sekken %s"
 
-#: ../yum/__init__.py:1391
+#: ../yum/__init__.py:1335
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Ingenting passer %s.%s %s:%s-%s fra oppdatering"
 
-#: ../yum/__init__.py:1585
+#: ../yum/__init__.py:1543
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
@@ -1585,165 +1603,140 @@ msgstr ""
 "searchPackages() vil forsvinne i en kommende utgave av Yum.\n"
 "Bruk heller searchGenerator()\n"
 
-#: ../yum/__init__.py:1621
+#: ../yum/__init__.py:1580
 #, python-format
 msgid "Searching %d packages"
 msgstr "Søker etter %d pakker"
 
-#: ../yum/__init__.py:1624
+#: ../yum/__init__.py:1584
 #, python-format
 msgid "searching package %s"
 msgstr "søker etter pakke %s"
 
-#: ../yum/__init__.py:1635
+#: ../yum/__init__.py:1596
 msgid "searching in file entries"
 msgstr "søker i filoversikt"
 
-#: ../yum/__init__.py:1641
+#: ../yum/__init__.py:1603
 msgid "searching in provides entries"
-msgstr "søker i oppføringer av tilbud"
+msgstr "søker i oppføringer av tilbydere"
 
-#: ../yum/__init__.py:1671
+#: ../yum/__init__.py:1633
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Tilbyder-treff: %s"
 
-#: ../yum/__init__.py:1717
-msgid "No group data available for configured repositories"
-msgstr "Ingen gruppedata tilgjengelig for konfigurerte pakkelager"
-
-#: ../yum/__init__.py:1743 ../yum/__init__.py:1762 ../yum/__init__.py:1788
-#: ../yum/__init__.py:1794 ../yum/__init__.py:1850 ../yum/__init__.py:1854
+#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
+#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
 #, python-format
 msgid "No Group named %s exists"
-msgstr "Det eksisterer ingen gruppe med navn %s "
+msgstr "Ikke gruppe med navn %s er tilgjengelig"
 
-#: ../yum/__init__.py:1773 ../yum/__init__.py:1866
+#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
 #, python-format
 msgid "package %s was not marked in group %s"
-msgstr "pakke %s var ikke med i gruppe %s"
+msgstr "pakka %s var ikke med i gruppa %s"
 
-#: ../yum/__init__.py:1811
+#: ../yum/__init__.py:1770
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Legger til pakke %s fra gruppe %s"
 
-#: ../yum/__init__.py:1816
+#: ../yum/__init__.py:1774
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Ingen pakke med navn %s er tilgjendelig for installering"
 
-#: ../yum/__init__.py:1891
+#: ../yum/__init__.py:1849
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Pakke tuppel %s ble ikke funnet i sekken med pakker"
 
-#: ../yum/__init__.py:1959 ../yum/__init__.py:1999
+#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
 msgid "Invalid versioned dependency string, try quoting it."
 msgstr ""
-"Den versjonerte strengen med avhengigheter er ugyldig, prøv å sette den i "
+"Den versjonerte strengen med avhengigheter er ugyldig, prøv og sette den i "
 "anførelsestegn."
 
-#: ../yum/__init__.py:1961 ../yum/__init__.py:2001
+#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
 msgid "Invalid version flag"
 msgstr "Ugyldig versjonsflagg"
 
-#: ../yum/__init__.py:1973 ../yum/__init__.py:1977
+#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
 #, python-format
 msgid "No Package found for %s"
 msgstr "Ingen pakke for %s er funnet"
 
-#: ../yum/__init__.py:2105
+#: ../yum/__init__.py:2066
 msgid "Package Object was not a package object instance"
-msgstr "Pakkeobjekt var ikke en pakkeobjektinstans"
+msgstr "Pakkeobjekt var ikke en pakkeobjekt instans"
 
-#: ../yum/__init__.py:2109
+#: ../yum/__init__.py:2070
 msgid "Nothing specified to install"
-msgstr "Ingenting oppgitt for installasjon"
+msgstr "Det ble ikke bedt om og installere noe som helst"
 
 #. only one in there
-#: ../yum/__init__.py:2124
+#: ../yum/__init__.py:2085
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Sjekker for virtuelle tilbydere eller tilbydere av filer for %s"
 
-#: ../yum/__init__.py:2130 ../yum/__init__.py:2446
+#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
 #, python-format
 msgid "No Match for argument: %s"
-msgstr "Ingen treff for argument: %s"
+msgstr "Intet treff for argument: %s"
 
 #. FIXME - this is where we could check to see if it already installed
 #. for returning better errors
-#: ../yum/__init__.py:2185
+#: ../yum/__init__.py:2146
 msgid "No package(s) available to install"
 msgstr "Ingen pakke(r) er tilgjengelig for installering"
 
-#: ../yum/__init__.py:2198
+#: ../yum/__init__.py:2158
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Pakke: %s - allerede i transaksjonensettet"
 
-#: ../yum/__init__.py:2212
+#: ../yum/__init__.py:2171
 #, python-format
 msgid "Package %s already installed and latest version"
-msgstr "Pakke %s er allerede installert i siste versjon"
+msgstr "Pakke %s er allerede installert i siste og beste versjon"
 
-#: ../yum/__init__.py:2219
-#, python-format
-msgid "Package matching %s already installed. Checking for update."
-msgstr "Pakke med treff på %s er allerede lagt inn. Ser etter oppdatering"
-
-#: ../yum/__init__.py:2230
+#: ../yum/__init__.py:2178
 #, fuzzy, python-format
-msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr ""
-"Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
-"install for å legge den inn."
+msgid "Package matching %s already installed. Checking for update."
+msgstr "Pakke %s er allerede lagt inn, hopper over"
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2263
+#: ../yum/__init__.py:2220
 msgid "Updating Everything"
 msgstr "Oppdaterer alt"
 
-#: ../yum/__init__.py:2366
+#: ../yum/__init__.py:2304
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Pakka er allerede foreldet:  %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2390
-#, fuzzy, python-format
-msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
-
-#: ../yum/__init__.py:2443
+#: ../yum/__init__.py:2377
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#. FIXME we should give the caller some nice way to hush this warning
-#. probably just a kwarg of 'silence_warnings' or something
-#. b/c when this is called from groupRemove() it makes a lot of
-#. garbage noise
-#: ../yum/__init__.py:2462
+#: ../yum/__init__.py:2392
 msgid "No package matched to remove"
 msgstr "Kunne ikke finne noen passende pakke for fjerning"
 
-#: ../yum/__init__.py:2496
+#: ../yum/__init__.py:2426
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Kunne ikke åpne fil: %s. Hopper over."
 
-#: ../yum/__init__.py:2498
+#: ../yum/__init__.py:2429
 #, python-format
 msgid "Examining %s: %s"
-msgstr "Undersøker: %s: %s"
-
-#: ../yum/__init__.py:2504
-#, python-format
-msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
-msgstr ""
+msgstr "Gransker: %s: %s"
 
-#: ../yum/__init__.py:2512
+#: ../yum/__init__.py:2436
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -1752,77 +1745,77 @@ msgstr ""
 "Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
 "install for å legge den inn."
 
-#: ../yum/__init__.py:2545
+#: ../yum/__init__.py:2468
 #, python-format
 msgid "Excluding %s"
 msgstr "Ekskluderer %s"
 
-#: ../yum/__init__.py:2549
+#: ../yum/__init__.py:2473
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Setter av %s for kommende installering"
 
-#: ../yum/__init__.py:2554
+#: ../yum/__init__.py:2479
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Setter av %s som en oppdatering av %s"
 
-#: ../yum/__init__.py:2559
+#: ../yum/__init__.py:2486
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: vil ikke oppdatere installert pakke."
 
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2504
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Problem ved reinstall: kunne ikke finne passende pakke og fjerne"
 
-#: ../yum/__init__.py:2587
+#: ../yum/__init__.py:2515
 #, fuzzy, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Pakke %s er allerede lagt inn, hopper over"
 
-#: ../yum/__init__.py:2594
+#: ../yum/__init__.py:2522
 msgid "Problem in reinstall: no package matched to install"
 msgstr "Problem ved reinstall: kunne ikke finne passende pakke og installere "
 
-#: ../yum/__init__.py:2641
+#: ../yum/__init__.py:2570
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Henter GPG-nøkkel fra %s"
 
-#: ../yum/__init__.py:2647
+#: ../yum/__init__.py:2576
 msgid "GPG key retrieval failed: "
 msgstr "Henting av GPG-nøkkel feilet: "
 
-#: ../yum/__init__.py:2663
+#: ../yum/__init__.py:2589
 msgid "GPG key parsing failed: "
 msgstr "Analyse av GPG-nøkkel feilet: "
 
-#: ../yum/__init__.py:2667
+#: ../yum/__init__.py:2593
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "GPG-nøkkel ved %s (0x%s) er allerede lagt inn"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:2672
+#: ../yum/__init__.py:2598
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Legger inn GPG-nøkkel 0x%s \"%s\" fra %s"
 
-#: ../yum/__init__.py:2685
+#: ../yum/__init__.py:2610
 msgid "Not installing key"
 msgstr "Legger ikke inn nøkkel"
 
-#: ../yum/__init__.py:2691
+#: ../yum/__init__.py:2616
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Import av nøkkel feilet (kode %d)"
 
-#: ../yum/__init__.py:2694
+#: ../yum/__init__.py:2619
 msgid "Key imported successfully"
 msgstr "Nøkler ble lagt inn med suksess"
 
-#: ../yum/__init__.py:2699
+#: ../yum/__init__.py:2624
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1834,79 +1827,74 @@ msgstr ""
 "Sjekk at korrekt URL (gpgkey opsjonen) er oppgitt for denne\n"
 "pakkeoversikten."
 
-#: ../yum/__init__.py:2708
+#: ../yum/__init__.py:2633
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Import av nøkler hjalp ikke, feil nøkler?"
 
-#: ../yum/__init__.py:2789
+#: ../yum/__init__.py:2707
 msgid "Unable to find a suitable mirror."
 msgstr "Kunne ikke finne passende filspeil"
 
-#: ../yum/__init__.py:2791
+#: ../yum/__init__.py:2709
 msgid "Errors were encountered while downloading packages."
 msgstr "Det oppstod feil ved nedlastning av pakker."
 
-#: ../yum/__init__.py:2854
+#: ../yum/__init__.py:2774
 msgid "Test Transaction Errors: "
 msgstr "Feil ved testtransaksjon: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:197
+#: ../yum/plugins.py:195
 msgid "Loaded plugins: "
 msgstr "Tillegg som er i bruk:"
 
-#: ../yum/plugins.py:208
+#: ../yum/plugins.py:206
 #, fuzzy, python-format
 msgid "No plugin match for: %s"
 msgstr "Intet treff for argument: %s"
 
-#: ../yum/plugins.py:221
+#: ../yum/plugins.py:219
 #, python-format
 msgid "\"%s\" plugin is disabled"
 msgstr "Tillegg: %s er ikke aktiv."
 
-#: ../yum/plugins.py:233
+#: ../yum/plugins.py:231
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "Tillegg \"%s\" tilfredstiller ikke versjonskravene fra Yum."
 
-#: ../yum/plugins.py:237
+#: ../yum/plugins.py:235
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "Tillegg \"%s\" krever API versjon: %s. Men støttet API versjon er %s."
 
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:264
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Laster tillegg \"%s\""
 
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:271
 #, python-format
 msgid ""
 "Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr "Det finnes to eller flere tillegg med navn «%s» i søkestien for tillegg"
+msgstr "To eller flere tillegg har samme navn."
 
-#: ../yum/plugins.py:293
+#: ../yum/plugins.py:291
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Konfigurasjonsfila %s ble ikke funnet"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:296
+#: ../yum/plugins.py:294
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Kunne ikke finne konfigurasjon for tillegg %s"
 
-#: ../yum/plugins.py:450
+#: ../yum/plugins.py:448
 msgid "registration of commands not supported"
 msgstr "registering av kommandoer er ikke støttet"
 
-#: ../yum/rpmtrans.py:78
-#, fuzzy
-msgid "Repackaging"
-msgstr "Pakker på nytt"
-
 #: ../rpmUtils/oldUtils.py:26
 #, python-format
 msgid "Header cannot be opened or does not match %s, %s."
@@ -1936,33 +1924,6 @@ msgstr "Filhode til %s er ødelagt"
 msgid "Error opening rpm %s - error %s"
 msgstr "Kunne ikke åpen rpm pakke %s - feilen er %s"
 
-#~ msgid "Searching pkgSack for dep: %s"
-#~ msgstr "Søker i pkgSack etter avhengighet: %s"
-
-#~ msgid "Potential match for %s from %s"
-#~ msgstr "Potensielt treff for %s i %s"
-
-#~ msgid "Matched %s to require for %s"
-#~ msgstr "Passende %s for å tilfredstille %s"
-
-#~ msgid "Needed Require has already been looked up, cheating"
-#~ msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
-
-#~ msgid "Needed Require is not a package name. Looking up: %s"
-#~ msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
-
-#~ msgid "Potential Provider: %s"
-#~ msgstr "Potensiell tilbyder: %s"
-
-#~ msgid "Mode is %s for provider of %s: %s"
-#~ msgstr "Modus er %s for tilbyder av %s: %s"
-
-#~ msgid "Mode for pkg providing %s: %s"
-#~ msgstr "Modus for pakke som tilbyr %s: %s"
-
-#~ msgid "Unresolvable requirement %s for %s"
-#~ msgstr "Avhengighet %s kan ikke løses opp: %s"
-
 #~ msgid "Looking for Obsoletes for %s"
 #~ msgstr "Leter opp informasjon utgåtte pakker for %s"
 
commit eac42df07f91bdce3e65633d9b18d9aa61877bd8
Author: James Antill <james at and.org>
Date:   Fri Nov 21 09:41:38 2008 -0500

    Fix the color config. option to work the same as the --color cmd line opt.

diff --git a/cli.py b/cli.py
index e13d48d..c0fc920 100644
--- a/cli.py
+++ b/cli.py
@@ -1114,7 +1114,9 @@ class YumOptionParser(OptionParser):
                     self.base.term.reinit(color=self.base.conf.color)
             else:
                 _remap = {'tty' : 'auto', 'if-tty' : 'auto',
+                          '1' : 'always', 'true' : 'always',
                           'yes' : 'always', 'on' : 'always',
+                          '0' : 'always', 'false' : 'always',
                           'no' : 'never', 'off' : 'never'}
                 opts.color = _remap.get(opts.color, opts.color)
                 if opts.color != 'auto':
diff --git a/yum/config.py b/yum/config.py
index 700b49a..ffd70b3 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -670,8 +670,11 @@ class YumConf(StartupConf):
     bugtracker_url = Option('http://yum.baseurl.org/report')
 
     color = SelectionOption('auto', ('auto', 'never', 'always'),
-                            mapper={'on' : 'always',
-                                    'off' : 'nevern'})
+                            mapper={'on' : 'always', 'yes' : 'always',
+                                    '1' : 'always', 'true' : 'always',
+                                    'off' : 'never', 'no' : 'never',
+                                    '0' : 'never', 'false' : 'never',
+                                    'tty' : 'auto', 'if-tty' : 'auto'})
     color_list_installed_older = Option('bold')
     color_list_installed_newer = Option('bold,yellow')
     color_list_installed_extra = Option('bold,red')
commit 71d1ee2ce8071d3605d2b8ab903a509e3125988c
Author: James Antill <james at and.org>
Date:   Fri Nov 21 09:40:12 2008 -0500

    Add documentation for all the color* config. options

diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 8171455..901f6b4 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -309,6 +309,55 @@ if it is available. Best means install the best arch for this platform, only.
 Url where bugs should be filed for yum. Configurable for local versions or distro-specific
 bugtrackers.
 
+.IP \fBcolor \fR
+Display colorized output automatically, depending on the output terminal,
+always (using ANSI codes) or never.
+Command-line option: \fB\-\-color\fP
+
+.IP \fBcolor_list_installed_older \fR
+The colorization/highlighting for pacakges in list/info installed which are
+older than the latest available package with the same name and arch.
+Default is `bold'.
+Possible values are a comma seperated list containing: bold, blink, dim,
+reverse, underline, fg:black, fg:red, fg:green, fg:yellow, fg:blue, fg:magenta,
+fg:cyan, fg:white, bg:black, bg:red, bg:green, bg:yellow, bg:blue, bg:magenta,
+bg:cyan, bg:white.
+
+.IP \fBcolor_list_installed_newer \fR
+The colorization/highlighting for pacakges in list/info installed which are
+newer than the latest available package with the same name and arch.
+Default is `bold,yellow'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_list_installed_extra \fR
+The colorization/highlighting for pacakges in list/info installed which has
+no available package with the same name and arch.
+Default is `bold,red'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_list_available_upgrade \fR
+The colorization/highlighting for pacakges in list/info available which is
+an upgrade for the latest installed package with the same name and arch.
+Default is `bold,blue'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_list_available_downgrade \fR
+The colorization/highlighting for pacakges in list/info available which is
+a downgrade for the latest installed package with the same name and arch.
+Default is `dim,cyan'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_list_available_install \fR
+The colorization/highlighting for pacakges in list/info available which has
+no installed package with the same name and arch.
+Default is `normal'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_search_match \fR
+The colorization/highlighting for text matches in search.
+Default is `bold'.
+See color_list_installed_older for possible values.
+
 .SH "[repository] OPTIONS"
 .LP 
 The repository section(s) take the following form:
commit 73d7c2561b7b3758d1afde8f21b55a7e6ae3f361
Author: James Antill <james at and.org>
Date:   Fri Nov 21 09:39:49 2008 -0500

    Add documentation for the --color option

diff --git a/docs/yum.8 b/docs/yum.8
index 4ebd19d..641899d 100644
--- a/docs/yum.8
+++ b/docs/yum.8
@@ -262,6 +262,11 @@ Configuration Option: \fBobsoletes\fP
 Exclude a specific package by name or glob from updates on all repositories.
 Configuration Option: \fBexclude\fP
 .br
+.IP "\fB\-\-color=[always|auto|never]\fP"
+Display colorized output automatically, depending on the output terminal,
+always (using ANSI codes) or never.
+Configuration Option: \fBcolor\fP
+.br
 .IP "\fB\-\-disableexcludes=[all|main|repoid]\fP"
 Disable the excludes defined in your config files. Takes one of three options:
 .br
commit e69f206df701a37716a48ea04cbc1c08f1f0c95c
Author: James Antill <james at and.org>
Date:   Fri Nov 21 09:39:32 2008 -0500

    Minor opt. for no highlighting

diff --git a/output.py b/output.py
index 81b22ca..4f7a6cf 100755
--- a/output.py
+++ b/output.py
@@ -323,6 +323,8 @@ class YumOutput:
             pass
         elif not isinstance(highlight, basestring) or highlight == 'bold':
             hibeg = self.term.MODE['bold']
+        elif highlight == 'normal':
+            pass # Minor opt.
         else:
             # Turn a string into a specific output: colour, bold, etc.
             for high in highlight.replace(',', ' ').split():
commit e62fbe4cd187fc47d93872e5902f7bae26638de7
Author: James Antill <james at and.org>
Date:   Fri Nov 21 00:14:37 2008 -0500

    Use highlighting config. in groupinfo -v

diff --git a/output.py b/output.py
index d07d0cb..81b22ca 100755
--- a/output.py
+++ b/output.py
@@ -686,8 +686,14 @@ class YumOutput:
                     continue
                 for (apkg, ipkg) in sorted(pkg_names2pkgs[item],
                                            key=lambda x: x[1] or x[0]):
+                    if ipkg and apkg:
+                        highlight = self.conf.color_list_installed_older
+                    elif apkg:
+                        highlight = self.conf.color_list_available_install
+                    else:
+                        highlight = False
                     self.simpleEnvraList(ipkg or apkg, ui_overflow=True,
-                                         indent=indent, highlight=ipkg and apkg,
+                                         indent=indent, highlight=highlight,
                                          columns=columns)
     
     def displayPkgsInGroups(self, group):
commit 6707f479bb37b8f45a246a04d209ca37b967d492
Author: James Antill <james at and.org>
Date:   Thu Nov 20 19:51:43 2008 -0500

    Fix search highlighting to ignore case, allow configurable highlight

diff --git a/output.py b/output.py
index 87bb3c7..d07d0cb 100755
--- a/output.py
+++ b/output.py
@@ -250,7 +250,7 @@ class YumTerm:
         cap = self._ctigetstr(cap_name) or ''
         return re.sub(r'\$<\d+>[/*]?', '', cap)
 
-    def sub(self, haystack, beg, end, needles, escape=None):
+    def sub(self, haystack, beg, end, needles, escape=None, ignore_case=False):
         if not self.__enabled:
             return haystack
 
@@ -259,7 +259,10 @@ class YumTerm:
 
         render = lambda match: beg + match.group() + end
         for needle in needles:
-            haystack = re.sub(escape(needle), render, haystack)
+            pat = escape(needle)
+            if ignore_case:
+                pat = re.template(pat, re.I)
+            haystack = re.sub(pat, render, haystack)
         return haystack
     def sub_norm(self, haystack, beg, needles, **kwds):
         return self.sub(haystack, beg, self.MODE['normal'], needles, **kwds)
@@ -268,7 +271,7 @@ class YumTerm:
         return self.sub_norm(haystack, self.MODE[mode], needles, **kwds)
 
     def sub_bold(self, haystack, needles, **kwds):
-        return self.sub_mode(haystack, 'bold', needles)
+        return self.sub_mode(haystack, 'bold', needles, **kwds)
     
     def sub_fg(self, haystack, color, needles, **kwds):
         return self.sub_norm(haystack, self.FG_COLOR[color], needles, **kwds)
@@ -341,6 +344,10 @@ class YumOutput:
             hiend = self.term.MODE['normal']
         return (hibeg, hiend)
 
+    def _sub_highlight(self, haystack, highlight, needles, **kwds):
+        hibeg, hiend = self._highlight(highlight)
+        return self.term.sub(haystack, hibeg, hiend, needles, **kwds)
+
     @staticmethod
     def _calc_columns_spaces_helps(current, data_tups, left):
         """ Spaces left on the current field will help how many pkgs? """
@@ -775,7 +782,8 @@ class YumOutput:
     def format_time(seconds, use_hours=0):
         return urlgrabber.progress.format_time(seconds, use_hours)
 
-    def matchcallback(self, po, values, matchfor=None, verbose=None):
+    def matchcallback(self, po, values, matchfor=None, verbose=None,
+                      highlight=None):
         """ Output search/provides type callback matches. po is the pkg object,
             values are the things in the po that we've matched.
             If matchfor is passed, all the strings in that list will be
@@ -788,7 +796,9 @@ class YumOutput:
             msg = '%s.%s : ' % (po.name, po.arch)
         msg = self.fmtKeyValFill(msg, self._enc(po.summary))
         if matchfor:
-            msg = self.term.sub_bold(msg, matchfor)
+            if highlight is None:
+                highlight = self.conf.color_search_match
+            msg = self._sub_highlight(msg, highlight, matchfor,ignore_case=True)
         
         print msg
 
@@ -822,7 +832,8 @@ class YumOutput:
                 key = _("Other       : ")
 
             if matchfor:
-                item = self.term.sub_bold(item, matchfor)
+                item = self._sub_highlight(item, highlight, matchfor,
+                                           ignore_case=True)
             if can_overflow:
                 print self.fmtKeyValFill(key, item)
             else:
diff --git a/yum/config.py b/yum/config.py
index b1ad657..700b49a 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -679,6 +679,8 @@ class YumConf(StartupConf):
     color_list_available_upgrade = Option('bold,blue')
     color_list_available_downgrade = Option('dim,cyan')
     color_list_available_install = Option('normal')
+
+    color_search_match = Option('bold')
     
     _reposlist = []
 
commit c495c1c37d2f70932b71ea897f7b05974e3d8a76
Author: James Antill <james at and.org>
Date:   Thu Nov 20 16:58:31 2008 -0500

     Make list color programable, so Seth can have blink :).
     Allow color to be turned off/on al. la. GNU cmd line (plus .conf).
     Add hilight data for fmtColumns().
     Add prefix/suffix arguments for utf8_width_fill().

diff --git a/cli.py b/cli.py
index 13a2bfa..e13d48d 100644
--- a/cli.py
+++ b/cli.py
@@ -1106,6 +1106,20 @@ class YumOptionParser(OptionParser):
             if opts.showdupesfromrepos:
                 self.base.conf.showdupesfromrepos = True
 
+            if opts.color not in (None, 'auto', 'always', 'never',
+                                  'tty', 'if-tty', 'yes', 'no', 'on', 'off'):
+                raise ValueError, _("--color takes one of: auto, always, never")
+            elif opts.color is None:
+                if self.base.conf.color != 'auto':
+                    self.base.term.reinit(color=self.base.conf.color)
+            else:
+                _remap = {'tty' : 'auto', 'if-tty' : 'auto',
+                          'yes' : 'always', 'on' : 'always',
+                          'no' : 'never', 'off' : 'never'}
+                opts.color = _remap.get(opts.color, opts.color)
+                if opts.color != 'auto':
+                    self.base.term.reinit(color=opts.color)
+
             if opts.disableexcludes:
                 disable_excludes = self._splitArg(opts.disableexcludes)
             else:
@@ -1251,6 +1265,8 @@ class YumOptionParser(OptionParser):
                 metavar='[plugin]')
         self.add_option("--skip-broken", action="store_true", dest="skipbroken",
                 help=_("skip packages with depsolving problems"))
+        self.add_option("", "--color", dest="color", default=None, 
+                help=_("control whether color is used"))
 
 
         
diff --git a/output.py b/output.py
index a5504c9..87bb3c7 100755
--- a/output.py
+++ b/output.py
@@ -76,42 +76,7 @@ class YumTerm:
     __enabled = True
 
     if hasattr(urlgrabber.progress, 'terminal_width_cached'):
-        columns = property(lambda self: _term_width())
-    else:
-        columns = 80
-    lines   = 24
-    # Output modes:
-    MODE = {
-        'bold' : '',
-        'blink' : '',
-        'dim' : '',
-        'reverse' : '',
-        'underline' : '',
-        'normal' : ''
-        }
-
-    # Colours
-    FG_COLOR = {
-        'black' : '',
-        'blue' : '',
-        'green' : '',
-        'cyan' : '',
-        'red' : '',
-        'magenta' : '',
-        'yellow' : '',
-        'white' : ''
-        }
-
-    BG_COLOR = {
-        'black' : '',
-        'blue' : '',
-        'green' : '',
-        'cyan' : '',
-        'red' : '',
-        'magenta' : '',
-        'yellow' : '',
-        'white' : ''
-        }
+        __auto_columns = property(lambda self: _term_width())
 
     __cap_names = {
         'underline' : 'smul',
@@ -139,8 +104,90 @@ class YumTerm:
         'cyan' : 6,
         'white' : 7
         }
+    __ansi_forced_MODE = {
+        'bold' : '\x1b[1m',
+        'blink' : '\x1b[5m',
+        'dim' : '',
+        'reverse' : '\x1b[7m',
+        'underline' : '\x1b[4m',
+        'normal' : '\x1b(B\x1b[m'
+        }
+    __ansi_forced_FG_COLOR = {
+        'black' : '\x1b[30m',
+        'red' : '\x1b[31m',
+        'green' : '\x1b[32m',
+        'yellow' : '\x1b[33m',
+        'blue' : '\x1b[34m',
+        'magenta' : '\x1b[35m',
+        'cyan' : '\x1b[36m',
+        'white' : '\x1b[37m'
+        }
+    __ansi_forced_BG_COLOR = {
+        'black' : '\x1b[40m',
+        'red' : '\x1b[41m',
+        'green' : '\x1b[42m',
+        'yellow' : '\x1b[43m',
+        'blue' : '\x1b[44m',
+        'magenta' : '\x1b[45m',
+        'cyan' : '\x1b[46m',
+        'white' : '\x1b[47m'
+        }
+
+    def __forced_init(self):
+        self.MODE = self.__ansi_forced_MODE
+        self.FG_COLOR = self.__ansi_forced_FG_COLOR
+        self.BG_COLOR = self.__ansi_forced_BG_COLOR
+
+    def reinit(self, term_stream=None, color='auto'):
+        if color == 'never':
+            self.__enabled = False
+            return
+
+        self.__enabled = True
+        if hasattr(urlgrabber.progress, 'terminal_width_cached'):
+            self.columns = self.__auto_columns
+        else:
+            self.columns = 80
+        self.lines = 24
+
+        if color == 'always':
+            self.__forced_init()
+            return
+        assert color == 'auto'
+
+        # Output modes:
+        self.MODE = {
+            'bold' : '',
+            'blink' : '',
+            'dim' : '',
+            'reverse' : '',
+            'underline' : '',
+            'normal' : ''
+            }
+
+        # Colours
+        self.FG_COLOR = {
+            'black' : '',
+            'blue' : '',
+            'green' : '',
+            'cyan' : '',
+            'red' : '',
+            'magenta' : '',
+            'yellow' : '',
+            'white' : ''
+            }
+
+        self.BG_COLOR = {
+            'black' : '',
+            'blue' : '',
+            'green' : '',
+            'cyan' : '',
+            'red' : '',
+            'magenta' : '',
+            'yellow' : '',
+            'white' : ''
+            }
 
-    def __init__(self, term_stream=None):
         # Curses isn't available on all platforms
         try:
             import curses
@@ -166,7 +213,7 @@ class YumTerm:
 
         if not hasattr(urlgrabber.progress, 'terminal_width_cached'):
             self.columns = curses.tigetnum('cols')
-        self.lines   = curses.tigetnum('lines')
+        self.lines = curses.tigetnum('lines')
         
         # Look up string capabilities.
         for cap_name in self.MODE:
@@ -193,6 +240,9 @@ class YumTerm:
             for (color, val) in self.__ansi_colors.items():
                 self.BG_COLOR[color] = curses.tparm(set_bg_ansi, val) or ''
 
+    def __init__(self, term_stream=None, color='auto'):
+        self.reinit(term_stream, color)
+
     def _tigetstr(self, cap_name):
         # String capabilities can include "delays" of the form "$<2>".
         # For any modern terminal, we should be able to just ignore
@@ -359,12 +409,24 @@ class YumOutput:
             return (u"-", -width)
         return (u"", width)
 
+    def _col_data(self, col_data):
+        assert len(col_data) == 2 or len(col_data) == 3
+        if len(col_data) == 2:
+            (val, width) = col_data
+            hibeg = hiend = ''
+        if len(col_data) == 3:
+            (val, width, highlight) = col_data
+            (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."""
 
         total_width = len(msg)
         data = []
-        for (val, width) in columns[:-1]:
+        for col_data in columns[:-1]:
+            (val, width, hibeg, hiend) = self._col_data(col_data)
+
             if not width: # Don't count this column, invisible text
                 msg += u"%s"
                 data.append(val)
@@ -373,15 +435,18 @@ class YumOutput:
             (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'-'))
+                val = utf8_width_fill(val, width, left=(align == u'-'),
+                                      prefix=hibeg, suffix=hiend)
+                data.append(val)
             else:
-                msg += u"%s\n" + " " * (total_width + width + 1)
+                msg += u"%s%s%s\n" + " " * (total_width + width + 1)
+                data.extend([hibeg, val, hiend])
             total_width += width
             total_width += 1
-            data.append(val)
-        (val, width) = columns[-1]
+        (val, width, hibeg, hiend) = self._col_data(columns[-1])
         (align, width) = self._fmt_column_align_width(width)
-        val = utf8_width_fill(val, width, left=(align == u'-'))
+        val = utf8_width_fill(val, width, left=(align == u'-'),
+                              prefix=hibeg, suffix=hiend)
         msg += u"%%s%s" % end
         data.append(val)
         return msg % tuple(data)
@@ -392,12 +457,10 @@ class YumOutput:
 
         if columns is None:
             columns = (-40, -22, -16) # Old default
-        (hibeg, hiend) = self._highlight(highlight)
         ver = pkg.printVer()
         na = '%s%s.%s' % (indent, pkg.name, pkg.arch)
-        columns = zip((na, ver, pkg.repoid), columns)
-        columns.insert(1, (hiend, 0))
-        columns.insert(0, (hibeg, 0))
+        hi_cols = [highlight, 'normal', 'normal']
+        columns = zip((na, ver, pkg.repoid), columns, hi_cols)
         print self.fmtColumns(columns)
 
     def simpleEnvraList(self, pkg, ui_overflow=False,
@@ -407,11 +470,9 @@ class YumOutput:
 
         if columns is None:
             columns = (-63, -16) # Old default
-        (hibeg, hiend) = self._highlight(highlight)
         envra = '%s%s' % (indent, str(pkg))
-        columns = zip((envra, pkg.repoid), columns)
-        columns.insert(1, (hiend, 0))
-        columns.insert(0, (hibeg, 0))
+        hi_cols = [highlight, 'normal', 'normal']
+        columns = zip((envra, pkg.repoid), columns, hi_cols)
         print self.fmtColumns(columns)
 
     def fmtKeyValFill(self, key, val):
diff --git a/yum/config.py b/yum/config.py
index cb7e726..b1ad657 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -668,6 +668,17 @@ class YumConf(StartupConf):
                  # best == use the 'best  arch' for the system
                  
     bugtracker_url = Option('http://yum.baseurl.org/report')
+
+    color = SelectionOption('auto', ('auto', 'never', 'always'),
+                            mapper={'on' : 'always',
+                                    'off' : 'nevern'})
+    color_list_installed_older = Option('bold')
+    color_list_installed_newer = Option('bold,yellow')
+    color_list_installed_extra = Option('bold,red')
+
+    color_list_available_upgrade = Option('bold,blue')
+    color_list_available_downgrade = Option('dim,cyan')
+    color_list_available_install = Option('normal')
     
     _reposlist = []
 
diff --git a/yum/i18n.py b/yum/i18n.py
index 2d50e74..bcc895e 100755
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -241,7 +241,7 @@ def utf8_width_chop(msg, chop=None):
 
     return ret, msg
 
-def utf8_width_fill(msg, fill, chop=None, left=True):
+def utf8_width_fill(msg, fill, chop=None, left=True, prefix='', suffix=''):
     """ Expand a utf8 msg to a specified "width" or chop to same.
         Expansion can be left or right. This is what you want to use instead of
         %*.*s, as it does the "right" thing with regard to utf-8 sequences.
@@ -260,9 +260,9 @@ def utf8_width_fill(msg, fill, chop=None, left=True):
     if width < fill:
         extra = " " * (fill - width)
         if left:
-            msg = ''.join([msg, extra])
+            msg = ''.join([prefix, msg, suffix, extra])
         else:
-            msg = ''.join([extra, msg])
+            msg = ''.join([extra, prefix, msg, suffix])
 
     if isinstance(passed_msg, unicode):
         return to_unicode(msg)
diff --git a/yumcommands.py b/yumcommands.py
index cc6b387..3783292 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -272,15 +272,20 @@ class InfoCommand(YumCommand):
                         inst_pkgs[key] = pkg
 
             # Output the packages:
+            clio = base.conf.color_list_installed_older
+            clin = base.conf.color_list_installed_newer
+            clie = base.conf.color_list_installed_extra
             rip = base.listPkgs(ypl.installed, _('Installed Packages'), basecmd,
                                 highlight_na=update_pkgs, columns=columns,
-                                highlight_modes={'>' : 'bold',
-                                                 '<' : 'bold,yellow',
-                                                 'not in' : 'red,bold'})
+                                highlight_modes={'>' : clio, '<' : clin,
+                                                 'not in' : clie})
+            clau = base.conf.color_list_available_upgrade
+            clad = base.conf.color_list_available_downgrade
+            clai = base.conf.color_list_available_install
             rap = base.listPkgs(ypl.available, _('Available Packages'), basecmd,
                                 highlight_na=inst_pkgs, columns=columns,
-                                highlight_modes={'<' : 'bold,blue',
-                                                 '>' : 'cyan,dim'})
+                                highlight_modes={'<' : clau, '>' : clad,
+                                                 'not in' : clai})
             rep = base.listPkgs(ypl.extras, _('Extra Packages'), basecmd,
                                 columns=columns)
             rup = base.listPkgs(ypl.updates, _('Updated Packages'), basecmd,
commit 7c37027cfb0d1ea2a49ec0b92d743d0d2f3df70c
Author: James Antill <james at and.org>
Date:   Thu Nov 20 11:26:04 2008 -0500

    Use to_utf8 for changelog data

diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 7ff7d9a..76c9a41 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -34,7 +34,7 @@ import sqlutils
 import constants
 import operator
 import time
-from yum.misc import seq_max_split
+from yum.misc import seq_max_split, to_utf8
 
 def catchSqliteException(func):
     """This decorator converts sqlite exceptions into RepoError"""
@@ -205,8 +205,8 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
             # Failure mode is much less of a problem.
             for ob in cur:
                 c_date = ob['date']
-                c_author = ob['author'].encode('utf-8', 'replace')
-                c_log = ob['changelog'].encode('utf-8', 'replace')
+                c_author = to_utf8(ob['author'])
+                c_log = to_utf8(ob['changelog'])
                 result.append((c_date, _share_data(c_author), c_log))
             self._changelog = result
             return
commit 6f58a52cb569810ae2057dc3588f0be3a4108e8e
Author: James Antill <james at and.org>
Date:   Thu Nov 20 11:06:03 2008 -0500

    Deal with utf8 in licenses! Given it's there just shoot everything with it

diff --git a/output.py b/output.py
index d2c2ec5..a5504c9 100755
--- a/output.py
+++ b/output.py
@@ -443,8 +443,7 @@ class YumOutput:
     def _enc(self, s):
         """Get the translated version from specspo and ensure that
         it's actually encoded in UTF-8."""
-        if type(s) == unicode:
-            s = s.encode("UTF-8")
+        s = to_utf8(s)
         if len(s) > 0:
             for d in self.i18ndomains:
                 t = gettext.dgettext(d, s)
@@ -455,24 +454,24 @@ class YumOutput:
 
     def infoOutput(self, pkg, highlight=False):
         (hibeg, hiend) = self._highlight(highlight)
-        print _("Name       : %s%s%s") % (hibeg, pkg.name, hiend)
-        print _("Arch       : %s") % 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") % pkg.epoch
-        print _("Version    : %s") % pkg.version
-        print _("Release    : %s") % pkg.release
+            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") % pkg.repoid
+        print _("Repo       : %s") % to_unicode(pkg.repoid)
         if self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
-            print _("Committer  : %s") % pkg.committer
+            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))
         if pkg.url:
-            print _("URL        : %s") % pkg.url
-        print _("License    : %s") % pkg.license
+            print _("URL        : %s") % to_unicode(pkg.url)
+        print _("License    : %s") % to_unicode(pkg.license)
         print self.fmtKeyValFill(_("Description: "), self._enc(pkg.description))
         print ""
     
commit bc04865e5f6534a2bbbdcf5887dcfd5520e5d6db
Author: James Antill <james at and.org>
Date:   Thu Nov 20 01:03:54 2008 -0500

    Add sections for entering/leaving rpm code

diff --git a/cli.py b/cli.py
index fbbbb59..13a2bfa 100644
--- a/cli.py
+++ b/cli.py
@@ -398,6 +398,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         if self.gpgsigcheck(downloadpkgs) != 0:
             return 1
         
+        self.verbose_logger.log(yum.logginglevels.INFO_2, 
+                                self.fmtSection(_("Entering rpm code")))
         if self.conf.rpm_check_debug:
             rcd_st = time.time()
             self.verbose_logger.log(yum.logginglevels.INFO_2, 
@@ -464,6 +466,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         resultobject = self.runTransaction(cb=cb)
 
         self.verbose_logger.debug('Transaction time: %0.3f' % (time.time() - ts_st))
+        self.verbose_logger.log(yum.logginglevels.INFO_2, 
+                                self.fmtSection(_("Leaving rpm code")))
         # close things
         self.verbose_logger.log(yum.logginglevels.INFO_1,
             self.postTransactionOutput())
commit 985c528fb388f2aead376e63ed07d840b76f90b7
Author: James Antill <james at and.org>
Date:   Thu Nov 20 01:03:40 2008 -0500

    Use utf8_width for fmtSection

diff --git a/output.py b/output.py
index 6bc9df1..d2c2ec5 100755
--- a/output.py
+++ b/output.py
@@ -431,7 +431,7 @@ class YumOutput:
     def fmtSection(self, name, fill='='):
         name = to_str(name)
         cols = self.term.columns - 2
-        name_len = len(name)
+        name_len = utf8_width(name)
         if name_len >= (cols - 4):
             beg = end = fill * 2
         else:
commit c9778fd48e18e316c74832941233dc4781ebeb8f
Author: James Antill <james at and.org>
Date:   Thu Nov 20 00:57:44 2008 -0500

     Allow _highlight() to do colour and other modes.
     Extra whizbang highlighting:
       . Show installed "extra" packages in bold red.
       . Show installed "newer than available" packages in bold yellow.
       . Show installed "update available" packages in bold.
       . Show available "old" packages in dim cyan.
       . Show available "newest" packages in bold blue.
      ...it's still mostly blank, and all seem to be visible when they are used,
         on white and black backgrounds.
     Do highlighting for "list available".

diff --git a/cli.py b/cli.py
index e3e77d7..fbbbb59 100644
--- a/cli.py
+++ b/cli.py
@@ -677,10 +677,14 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         
         pkgnarrow = 'all'
         done_hidden_available = False
+        done_hidden_installed = False
         if len(extcmds) > 0:
             if installed_available and extcmds[0] == 'installed':
                 done_hidden_available = True
                 extcmds.pop(0)
+            elif installed_available and extcmds[0] == 'available':
+                done_hidden_installed = True
+                extcmds.pop(0)
             elif extcmds[0] in special:
                 pkgnarrow = extcmds.pop(0)
             
@@ -709,8 +713,11 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         
         if installed_available:
             ypl.hidden_available = ypl.available
+            ypl.hidden_installed = ypl.installed
         if done_hidden_available:
             ypl.available = []
+        if done_hidden_installed:
+            ypl.installed = []
         return ypl
 
     def search(self, args):
diff --git a/output.py b/output.py
index cc7a585..6bc9df1 100755
--- a/output.py
+++ b/output.py
@@ -264,12 +264,31 @@ class YumOutput:
         progressbar(current, total, name)
 
     def _highlight(self, highlight):
-        if highlight:
+        hibeg = ''
+        hiend = ''
+        if not highlight:
+            pass
+        elif not isinstance(highlight, basestring) or highlight == 'bold':
             hibeg = self.term.MODE['bold']
-            hiend = self.term.MODE['normal']
         else:
-            hibeg = ''
-            hiend = ''
+            # Turn a string into a specific output: colour, bold, etc.
+            for high in highlight.replace(',', ' ').split():
+                if False: pass
+                elif high == 'normal':
+                    hibeg = ''
+                elif high in self.term.MODE:
+                    hibeg += self.term.MODE[high]
+                elif high in self.term.FG_COLOR:
+                    hibeg += self.term.FG_COLOR[high]
+                elif (high.startswith('fg:') and
+                      high[3:] in self.term.FG_COLOR):
+                    hibeg += self.term.FG_COLOR[high[3:]]
+                elif (high.startswith('bg:') and
+                      high[3:] in self.term.BG_COLOR):
+                    hibeg += self.term.BG_COLOR[high[3:]]
+
+        if hibeg:
+            hiend = self.term.MODE['normal']
         return (hibeg, hiend)
 
     @staticmethod
@@ -476,7 +495,7 @@ class YumOutput:
         print '%-35.35s [%.12s] %.10s %-20.20s' % (c_compact, c_repo, changetype, i_compact)
 
     def listPkgs(self, lst, description, outputType, highlight_na={},
-                 columns=None):
+                 columns=None, highlight_modes={}):
         """outputs based on whatever outputType is. Current options:
            'list' - simple pkg list
            'info' - similar to rpm -qi output
@@ -491,8 +510,15 @@ class YumOutput:
                 for pkg in sorted(lst):
                     key = (pkg.name, pkg.arch)
                     highlight = False
-                    if key in highlight_na and pkg.verLT(highlight_na[key]):
-                        highlight = True
+                    if False: pass
+                    elif key not in highlight_na:
+                        highlight = highlight_modes.get('not in', 'normal')
+                    elif pkg.verEQ(highlight_na[key]):
+                        highlight = highlight_modes.get('=', 'normal')
+                    elif pkg.verLT(highlight_na[key]):
+                        highlight = highlight_modes.get('>', 'bold')
+                    else:
+                        highlight = highlight_modes.get('<', 'normal')
 
                     if outputType == 'list':
                         self.simpleList(pkg, ui_overflow=True,
diff --git a/yumcommands.py b/yumcommands.py
index bc86088..cc6b387 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -244,6 +244,7 @@ class InfoCommand(YumCommand):
             return 1, [str(e)]
         else:
             update_pkgs = {}
+            inst_pkgs   = {}
 
             columns = None
             if basecmd == 'list':
@@ -253,17 +254,33 @@ class InfoCommand(YumCommand):
             if highlight and ypl.installed:
                 #  If we have installed and available lists, then do the
                 # highlighting for the installed packages so you can see what's
-                # available to install vs. available to update.
-                for pkg in ypl.hidden_available:
+                # available to update, an extra, or newer than what we have.
+                for pkg in (ypl.hidden_available +
+                            ypl.reinstall_available +
+                            ypl.old_available):
                     key = (pkg.name, pkg.arch)
                     if key not in update_pkgs or pkg.verGT(update_pkgs[key]):
                         update_pkgs[key] = pkg
 
+            if highlight and ypl.available:
+                #  If we have installed and available lists, then do the
+                # highlighting for the available packages so you can see what's
+                # available to install vs. update vs. old.
+                for pkg in ypl.hidden_installed:
+                    key = (pkg.name, pkg.arch)
+                    if key not in inst_pkgs or pkg.verGT(inst_pkgs[key]):
+                        inst_pkgs[key] = pkg
+
             # Output the packages:
             rip = base.listPkgs(ypl.installed, _('Installed Packages'), basecmd,
-                                highlight_na=update_pkgs, columns=columns)
+                                highlight_na=update_pkgs, columns=columns,
+                                highlight_modes={'>' : 'bold',
+                                                 '<' : 'bold,yellow',
+                                                 'not in' : 'red,bold'})
             rap = base.listPkgs(ypl.available, _('Available Packages'), basecmd,
-                                columns=columns)
+                                highlight_na=inst_pkgs, columns=columns,
+                                highlight_modes={'<' : 'bold,blue',
+                                                 '>' : 'cyan,dim'})
             rep = base.listPkgs(ypl.extras, _('Extra Packages'), basecmd,
                                 columns=columns)
             rup = base.listPkgs(ypl.updates, _('Updated Packages'), basecmd,
commit 7faf7dcbd090e13b96841a0346ff9eabc24743a2
Author: James Antill <james at and.org>
Date:   Thu Nov 20 00:55:26 2008 -0500

    Add reinstall_available and old_available do doPkgLists

diff --git a/yum/__init__.py b/yum/__init__.py
index 6bbae16..1f03840 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1501,6 +1501,8 @@ class YumBase(depsolve.Depsolve):
         
         installed = []
         available = []
+        reinstall_available = []
+        old_available = []
         updates = []
         obsoletes = []
         obsoletesTuples = []
@@ -1526,7 +1528,6 @@ class YumBase(depsolve.Depsolve):
                 avail = self.pkgSack.returnPackages(patterns=patterns,
                                                     ignore_case=ic)
             else:
-                del dinst # Using ndinst instead
                 try:
                   avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
                                                               ignore_case=ic)
@@ -1535,12 +1536,18 @@ class YumBase(depsolve.Depsolve):
             
             for pkg in avail:
                 if showdups:
-                    if pkg.pkgtup not in dinst:
+                    if pkg.pkgtup in dinst:
+                        reinstall_available.append(pkg)
+                    else:
                         available.append(pkg)
                 else:
                     key = (pkg.name, pkg.arch)
-                    if key not in ndinst or pkg.verGT(ndinst[key]):
+                    if pkg.pkgtup in dinst:
+                        reinstall_available.append(pkg)
+                    elif key not in ndinst or pkg.verGT(ndinst[key]):
                         available.append(pkg)
+                    else:
+                        old_available.append(pkg)
 
         # produce the updates list of tuples
         elif pkgnarrow == 'updates':
@@ -1578,12 +1585,20 @@ class YumBase(depsolve.Depsolve):
             
             for pkg in avail:
                 if showdups:
-                    if not self.rpmdb.contains(po=pkg):
+                    if self.rpmdb.contains(po=pkg):
+                        reinstall_available.append(pkg)
+                    else:
                         available.append(pkg)
                 else:
                     ipkgs = self.rpmdb.searchNevra(pkg.name, arch=pkg.arch)
-                    if not ipkgs or pkg.verGT(sorted(ipkgs, reverse=True)[0]):
+                    if ipkgs:
+                        latest = sorted(ipkgs, reverse=True)[0]
+                    if not ipkgs or pkg.verGT(latest):
                         available.append(pkg)
+                    elif pkg.verEQ(latest):
+                        reinstall_available.append(pkg)
+                    else:
+                        old_available.append(pkg)
 
         # not in a repo but installed
         elif pkgnarrow == 'extras':
@@ -1639,6 +1654,8 @@ class YumBase(depsolve.Depsolve):
         
         ygh.installed = installed
         ygh.available = available
+        ygh.reinstall_available = reinstall_available
+        ygh.old_available = old_available
         ygh.updates = updates
         ygh.obsoletes = obsoletes
         ygh.obsoletesTuples = obsoletesTuples
commit 12c70cbc6080f1a8a05b0b7c380424991359ffe0
Author: James Antill <james at and.org>
Date:   Tue Nov 18 16:18:48 2008 -0500

    Do dynamic repolist columns, always output the id and num, chop name

diff --git a/yumcommands.py b/yumcommands.py
index 77f550b..bc86088 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -738,7 +738,6 @@ class RepoListCommand(YumCommand):
         repos = base.repos.repos.values()
         repos.sort()
         enabled_repos = base.repos.listEnabled()
-        done = False
         verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
         if arg == 'all':
             ehibeg = base.term.FG_COLOR['green'] + base.term.MODE['bold']
@@ -749,43 +748,31 @@ class RepoListCommand(YumCommand):
             dhibeg = ''
             hiend  = ''
         tot_num = 0
+        cols = []
         for repo in repos:
             if len(extcmds) and not _repo_match(repo, extcmds):
                 continue
             if repo in enabled_repos:
                 enabled = True
-                ui_enabled = ehibeg + _('enabled') + hiend
+                ui_enabled = ehibeg + _('enabled') + hiend + ": "
+                ui_endis_wid = utf8_width(_('enabled')) + 2
                 num        = len(repo.sack)
                 tot_num   += num
                 ui_num     = to_unicode(locale.format("%d", num, True))
-                ui_fmt_num = ": %7s"
                 if verbose:
                     ui_size = _repo_size(repo)
             else:
                 enabled = False
                 ui_enabled = dhibeg + _('disabled') + hiend
+                ui_endis_wid = utf8_width(_('disabled'))
                 ui_num     = ""
-                ui_fmt_num = "%s"
-            ui_endis_wid = utf8_width(_('disabled'))
-            if ui_endis_wid < utf8_width(_('enabled')):
-                ui_endis_wid = utf8_width(_('enabled'))
                 
             if (arg == 'all' or
                 (arg == 'enabled' and enabled) or
                 (arg == 'disabled' and not enabled)):
                 if not verbose:
-                    if not done:
-                        txt_rid  = utf8_width_fill(_('repo id'), 20, 20)
-                        txt_rnam = utf8_width_fill(_('repo name'), 40, 40)
-                        base.verbose_logger.log(logginglevels.INFO_2,"%s %s %s",
-                                                txt_rid, txt_rnam, _('status'))
-                        done = True
-                    base.verbose_logger.log(logginglevels.INFO_2, "%s %s %s%s",
-                                            utf8_width_fill(str(repo), 20, 20),
-                                            utf8_width_fill(repo.name, 40, 40),
-                                            utf8_width_fill(ui_enabled,
-                                                            ui_endis_wid),
-                                            ui_fmt_num % ui_num)
+                    cols.append((str(repo), repo.name,
+                                 (ui_enabled, ui_endis_wid), ui_num))
                 else:
                     md = repo.repoXML
                     out = [base.fmtKeyValFill(_("Repo-id     : "), repo),
@@ -839,6 +826,47 @@ class RepoListCommand(YumCommand):
                                             "%s\n",
                                             "\n".join(out))
 
+        if not verbose and cols:
+            #  Work out the first (id) and last (enabled/disalbed/count),
+            # then chop the middle (name)...
+            id_len = utf8_width(_('repo id'))
+            nm_len = 0
+            ct_len = 0
+            ui_len = 0
+
+            for (rid, rname, (ui_enabled, ui_endis_wid), ui_num) in cols:
+                if id_len < utf8_width(rid):
+                    id_len = utf8_width(rid)
+                if nm_len < utf8_width(rname):
+                    nm_len = utf8_width(rname)
+                if ct_len < ui_endis_wid:
+                    ct_len = ui_endis_wid
+                if ui_len < len(ui_num):
+                    ui_len = len(ui_num)
+            if utf8_width(_('status')) > ct_len + ui_len:
+                left = base.term.columns - (id_len + utf8_width(_('status')) +2)
+            else:
+                left = base.term.columns - (id_len + ct_len + ui_len + 2)
+
+            if left < nm_len: # Name gets chopped
+                nm_len = left
+            else: # Share the extra...
+                left -= nm_len
+                id_len += left / 2
+                nm_len += left - (left / 2)
+
+            txt_rid  = utf8_width_fill(_('repo id'), id_len)
+            txt_rnam = utf8_width_fill(_('repo name'), nm_len, nm_len)
+            base.verbose_logger.log(logginglevels.INFO_2,"%s %s %s",
+                                    txt_rid, txt_rnam, _('status'))
+            for (rid, rname, (ui_enabled, ui_endis_wid), ui_num) in cols:
+                if ui_num:
+                    ui_num = utf8_width_fill(ui_num, ui_len, left=False)
+                base.verbose_logger.log(logginglevels.INFO_2, "%s %s %s%s",
+                                        utf8_width_fill(rid, id_len),
+                                        utf8_width_fill(rname, nm_len, nm_len),
+                                        ui_enabled, ui_num)
+
         return 0, ['repolist: ' +to_unicode(locale.format("%d", tot_num, True))]
 
     def needTs(self, base, basecmd, extcmds):
commit c49b794a6fe6384b05b14d7bf31a214bf5142334
Author: James Antill <james at and.org>
Date:   Tue Nov 18 15:55:01 2008 -0500

    Add repo back into search -v

diff --git a/output.py b/output.py
index 5191b9b..cc7a585 100755
--- a/output.py
+++ b/output.py
@@ -711,6 +711,7 @@ class YumOutput:
         if not verbose:
             return
 
+        print _("Repo        : %s") % po.repoid
         print _('Matched from:')
         for item in yum.misc.unique(values):
             if po.name == item or po.summary == item:
commit 58832271b5fbb15a42770bac6875ce8f46595de0
Author: James Antill <james at and.org>
Date:   Tue Nov 18 11:05:26 2008 -0500

    Do the update pkg highlighting for "yum list install", turn off when no bold

diff --git a/cli.py b/cli.py
index 9a93d15..e3e77d7 100644
--- a/cli.py
+++ b/cli.py
@@ -657,7 +657,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
             return 2, [_('Package(s) to install')]
         return 0, [_('Nothing to do')]
 
-    def returnPkgLists(self, extcmds):
+    def returnPkgLists(self, extcmds, installed_available=False):
         """Returns packages lists based on arguments on the cli.returns a 
            GenericHolder instance with the following lists defined:
            available = list of packageObjects
@@ -666,14 +666,22 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
            extras = list of packageObjects
            obsoletes = tuples of packageObjects (obsoleting, installed)
            recent = list of packageObjects
+
+           installed_available = that the available package list is present
+                                 as .hidden_available when doing any of:
+                                 all/available/installed
            """
         
         special = ['available', 'installed', 'all', 'extras', 'updates', 'recent',
                    'obsoletes']
         
         pkgnarrow = 'all'
+        done_hidden_available = False
         if len(extcmds) > 0:
-            if extcmds[0] in special:
+            if installed_available and extcmds[0] == 'installed':
+                done_hidden_available = True
+                extcmds.pop(0)
+            elif extcmds[0] in special:
                 pkgnarrow = extcmds.pop(0)
             
         ypl = self.doPackageLists(pkgnarrow=pkgnarrow, patterns=extcmds,
@@ -699,6 +707,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         ypl.extras = _shrinklist(ypl.extras, extcmds)
         ypl.obsoletes = _shrinklist(ypl.obsoletes, extcmds)
         
+        if installed_available:
+            ypl.hidden_available = ypl.available
+        if done_hidden_available:
+            ypl.available = []
         return ypl
 
     def search(self, args):
diff --git a/yumcommands.py b/yumcommands.py
index 6766593..77f550b 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -238,7 +238,8 @@ class InfoCommand(YumCommand):
 
     def doCommand(self, base, basecmd, extcmds):
         try:
-            ypl = base.returnPkgLists(extcmds)
+            highlight = base.term.MODE['bold']
+            ypl = base.returnPkgLists(extcmds, installed_available=highlight)
         except yum.Errors.YumBaseError, e:
             return 1, [str(e)]
         else:
@@ -249,11 +250,11 @@ class InfoCommand(YumCommand):
                 # Dynamically size the columns
                 columns = _list_cmd_calc_columns(base, ypl)
 
-            if ypl.installed:
+            if highlight and ypl.installed:
                 #  If we have installed and available lists, then do the
                 # highlighting for the installed packages so you can see what's
                 # available to install vs. available to update.
-                for pkg in ypl.available:
+                for pkg in ypl.hidden_available:
                     key = (pkg.name, pkg.arch)
                     if key not in update_pkgs or pkg.verGT(update_pkgs[key]):
                         update_pkgs[key] = pkg
commit 5a5c9352694ba416d03cc81979a9eeed36456123
Merge: a7356cf... 6121276...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Tue Nov 18 11:18:37 2008 -0500

    Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X
    
    * 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum:
      Test cases for kernel/kernel-xen obsoletes
      Remove debug lines, fix "yum update foo" where foo is obsolseted by an update
      Add test case and fix for 471736, same as 470440 but for update not install
      Cleanup the repomd.xml.asc files with the metadata
      Only try importing the repo key, if the sig verify failed (like pkgs).

commit a7356cf0f23483fc75e895179e5328e2aa6c5db6
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Tue Nov 18 11:17:51 2008 -0500

    yes, umm, if you do need to get headers for some crack reason (like checking for
    potential file conflicts) then you need to make the header dir.

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 01ff5ea..00dc2b6 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -780,6 +780,9 @@ class YumRepository(Repository, config.RepoConf):
         start = package.hdrstart
         end = package.hdrend
         basepath = package.basepath
+        # yes, I know, don't ask
+        if not os.path.exists(self.hdrdir):
+            os.makedirs(self.hdrdir)
 
         return self._getFile(url=basepath, relative=remote, local=local, start=start,
                         reget=None, end=end, checkfunc=checkfunc, copy_local=1,
commit 61212763b1ef6663d058f2684f7503d74682a742
Author: James Antill <james at and.org>
Date:   Mon Nov 17 12:19:13 2008 -0500

    Test cases for kernel/kernel-xen obsoletes

diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 2e5b5a7..035970c 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -283,6 +283,53 @@ class SimpleObsoletesTests(OperationsTests):
         self.assert_(res=='ok', msg)
         self.assertResult((pkgs['shark'],))
 
+    # NOTE: Do we really want to remove the old kernel-xen? ... not 100% sure
+    def testMultiObsKern1(self):
+        # kernel + kernel-xen installed, and update kernel obsoletes kernel-xen
+        okern1    = FakePackage('kernel',     '0.1', '1', '0', 'noarch')
+        okern2    = FakePackage('kernel',     '0.2', '1', '0', 'noarch')
+        okernxen1 = FakePackage('kernel-xen', '0.1', '1', '0', 'noarch')
+        okernxen2 = FakePackage('kernel-xen', '0.2', '1', '0', 'noarch')
+        nkern     = FakePackage('kernel',     '0.8', '1', '0', 'noarch')
+        nkern.addObsoletes('kernel-xen', None, (None, None, None))
+
+        res, msg = self.runOperation(['update', 'kernel'],
+                                     [okern1, okernxen1,
+                                      okern2, okernxen2], [nkern])
+        self.assert_(res=='ok', msg)
+        self.assertResult((okern1,okern2,nkern,))
+
+    def testMultiObsKern2(self):
+        # kernel + kernel-xen installed, and update kernel obsoletes kernel-xen
+        okern1    = FakePackage('kernel',     '0.1', '1', '0', 'noarch')
+        okern2    = FakePackage('kernel',     '0.2', '1', '0', 'noarch')
+        okernxen1 = FakePackage('kernel-xen', '0.1', '1', '0', 'noarch')
+        okernxen2 = FakePackage('kernel-xen', '0.2', '1', '0', 'noarch')
+        nkern     = FakePackage('kernel',     '0.8', '1', '0', 'noarch')
+        nkern.addObsoletes('kernel-xen', None, (None, None, None))
+
+        res, msg = self.runOperation(['update', 'kernel-xen'],
+                                     [okern1, okernxen1,
+                                      okern2, okernxen2], [nkern])
+        self.assert_(res=='ok', msg)
+        self.assertResult((okern1,okern2,nkern,))
+
+    def testMultiObsKern3(self):
+        # kernel + kernel-xen installed, and update kernel obsoletes kernel-xen
+        okern1    = FakePackage('kernel',     '0.1', '1', '0', 'noarch')
+        okern2    = FakePackage('kernel',     '0.2', '1', '0', 'noarch')
+        okernxen1 = FakePackage('kernel-xen', '0.1', '1', '0', 'noarch')
+        okernxen2 = FakePackage('kernel-xen', '0.2', '1', '0', 'noarch')
+        nkern     = FakePackage('kernel',     '0.8', '1', '0', 'noarch')
+        nkern.addObsoletes('kernel-xen', None, (None, None, None))
+
+        res, msg = self.runOperation(['update'],
+                                     [okern1, okernxen1,
+                                      okern2, okernxen2], [nkern])
+        self.assert_(res=='ok', msg)
+        self.assertResult((okern1,okern2,nkern,))
+
+
 class GitMetapackageObsoletesTests(OperationsTests):
 
     @staticmethod
commit 179893590e0a18b37e66401b213ae4dab26870f5
Author: James Antill <james at and.org>
Date:   Sat Nov 15 13:31:56 2008 -0500

    Remove debug lines, fix "yum update foo" where foo is obsolseted by an update

diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 8c37a83..2e5b5a7 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -273,6 +273,16 @@ class SimpleObsoletesTests(OperationsTests):
         self.assert_(res=='ok', msg)
         self.assertResult((pkgs['shark'],))
 
+    def testMultiObs5(self):
+        # This tests update of the to be obsoleted pkg...
+        pkgs = self._MultiObsHelper()
+        oldshark = FakePackage('shark', '0.1', '1', '0', 'noarch')
+
+        res, msg = self.runOperation(['update', 'nash'],
+                                     pkgs['pi'] + [oldshark], pkgs['po'])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pkgs['shark'],))
+
 class GitMetapackageObsoletesTests(OperationsTests):
 
     @staticmethod
diff --git a/yum/__init__.py b/yum/__init__.py
index 1d770f9..6bbae16 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2713,18 +2713,10 @@ class YumBase(depsolve.Depsolve):
 
         # check for obsoletes first
         if self.conf.obsoletes:
-            print "JDBG:", instpkgs, availpkgs
             for installed_pkg in instpkgs:
-                print "JDBG: inst:", installed_pkg, self.up.getObsoletesList(name=installed_pkg.name, arch=installed_pkg.arch)
                 for obsoleting in self.up.obsoleted_dict.get(installed_pkg.pkgtup, []):
-                    print "JDBG: obs:", obsoleting
                     obsoleting_pkg = self.getPackageObject(obsoleting)
-                    # FIXME check for what might be in there here
-                    txmbr = self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg)
-                    self.tsInfo.addObsoleted(installed_pkg, obsoleting_pkg)
-                    if requiringPo:
-                        txmbr.setAsDep(requiringPo)
-                    tx_return.append(txmbr)
+                    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)
commit a89961b334e4eed0d960b50cfed635619d870d7c
Author: James Antill <james at and.org>
Date:   Sat Nov 15 12:46:26 2008 -0500

    Add test case and fix for 471736, same as 470440 but for update not install

diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 9a9b5fc..8c37a83 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -263,6 +263,16 @@ class SimpleObsoletesTests(OperationsTests):
         self.assert_(res=='ok', msg)
         self.assertResult((pkgs['shark'],))
 
+    def testMultiObs4(self):
+        # This tests update...
+        pkgs = self._MultiObsHelper()
+        oldshark = FakePackage('shark', '0.1', '1', '0', 'noarch')
+
+        res, msg = self.runOperation(['update', 'shark'],
+                                     pkgs['pi'] + [oldshark], pkgs['po'])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pkgs['shark'],))
+
 class GitMetapackageObsoletesTests(OperationsTests):
 
     @staticmethod
diff --git a/yum/__init__.py b/yum/__init__.py
index 86375b7..1d770f9 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2382,6 +2382,15 @@ class YumBase(depsolve.Depsolve):
             tx_return.extend(txmbrs)
         return tx_return
 
+    def _find_obsoletees(self, po):
+        """ Return the pkgs. that are obsoleted by the po we pass in. """
+        for (obstup, inst_tup) in self.up.getObsoletesTuples(name=po.name, 
+                                                             arch=po.arch):
+            if po.pkgtup == obstup:
+                installed_pkg =  self.rpmdb.searchPkgTuple(inst_tup)[0]
+                yield installed_pkg
+
+
     def install(self, po=None, **kwargs):
         """try to mark for install the item specified. Uses provided package 
            object, if available. If not it uses the kwargs and gets the best
@@ -2543,13 +2552,10 @@ class YumBase(depsolve.Depsolve):
             # 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
             if po.pkgtup in self.up.getObsoletesList(name=po.name, arch=po.arch):
-                for (obstup, inst_tup) in self.up.getObsoletesTuples(name=po.name, 
-                                                                     arch=po.arch):
-                    if po.pkgtup == obstup:
-                        installed_pkg =  self.rpmdb.searchPkgTuple(inst_tup)[0]
-                        txmbr = self.tsInfo.addObsoleting(po, installed_pkg)
-                        self.tsInfo.addObsoleted(installed_pkg, po)
-                        tx_return.append(txmbr)
+                for obsoletee in self._find_obsoletees(po):
+                    txmbr = self.tsInfo.addObsoleting(po, obsoletee)
+                    self.tsInfo.addObsoleted(obsoletee, po)
+                    tx_return.append(txmbr)
             else:
                 txmbr = self.tsInfo.addInstall(po)
                 tx_return.append(txmbr)
@@ -2707,8 +2713,11 @@ class YumBase(depsolve.Depsolve):
 
         # check for obsoletes first
         if self.conf.obsoletes:
+            print "JDBG:", instpkgs, availpkgs
             for installed_pkg in instpkgs:
+                print "JDBG: inst:", installed_pkg, self.up.getObsoletesList(name=installed_pkg.name, arch=installed_pkg.arch)
                 for obsoleting in self.up.obsoleted_dict.get(installed_pkg.pkgtup, []):
+                    print "JDBG: obs:", obsoleting
                     obsoleting_pkg = self.getPackageObject(obsoleting)
                     # FIXME check for what might be in there here
                     txmbr = self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg)
@@ -2731,12 +2740,23 @@ class YumBase(depsolve.Depsolve):
 
         for installed_pkg in instpkgs:
             for updating in self.up.updatesdict.get(installed_pkg.pkgtup, []):
-                updating_pkg = self.getPackageObject(updating)
+                po = self.getPackageObject(updating)
                 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'), 
                                             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
+                elif po.pkgtup in self.up.getObsoletesList(name=po.name,
+                                                           arch=po.arch):
+                    for obsoletee in self._find_obsoletees(po):
+                        txmbr = self.tsInfo.addUpdate(po, installed_pkg)
+                        if requiringPo:
+                            txmbr.setAsDep(requiringPo)
+                        self.tsInfo.addObsoleting(po, obsoletee)
+                        self.tsInfo.addObsoleted(obsoletee, po)
+                        tx_return.append(txmbr)
                 else:
-                    txmbr = self.tsInfo.addUpdate(updating_pkg, installed_pkg)
+                    txmbr = self.tsInfo.addUpdate(po, installed_pkg)
                     if requiringPo:
                         txmbr.setAsDep(requiringPo)
                     tx_return.append(txmbr)
commit 047495f20a8642cb71ef6a8bce6dfda4275ba21b
Author: James Antill <james at and.org>
Date:   Fri Nov 14 10:55:58 2008 -0500

    Cleanup the repomd.xml.asc files with the metadata

diff --git a/yum/__init__.py b/yum/__init__.py
index a207959..86375b7 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1460,7 +1460,7 @@ class YumBase(depsolve.Depsolve):
         return self._cleanFiles(exts, 'cachedir', 'sqlite')
 
     def cleanMetadata(self):
-        exts = ['xml.gz', 'xml', 'cachecookie', 'mirrorlist.txt']
+        exts = ['xml.gz', 'xml', 'cachecookie', 'mirrorlist.txt', 'asc']
         # Metalink is also here, but is a *.xml file
         return self._cleanFiles(exts, 'cachedir', 'metadata') 
 
commit d3f7acae8d202b3fd3d094161297f5a2a54f50c7
Author: James Antill <james at and.org>
Date:   Fri Nov 14 10:47:25 2008 -0500

    Only try importing the repo key, if the sig verify failed (like pkgs).

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 01ff5ea..6046beb 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1319,20 +1319,22 @@ class YumRepository(Repository, config.RepoConf):
                 result = self._getFile(relative='repodata/repomd.xml.asc',
                                        copy_local=1,
                                        local = sigfile,
-                                       text='%s repo signature' % self.id,
+                                       text='%s/signature' % self.id,
                                        reget=None,
                                        checkfunc=None,
                                        cache=self.http_caching == 'all')
             except URLGrabError, e:
                 raise URLGrabError(-1, 'Error finding signature for repomd.xml for %s: %s' % (self, e))
 
-            if self.gpg_import_func:
+            valid = misc.valid_detached_sig(result, filepath, self.gpgdir)
+            if not valid and self.gpg_import_func:
                 try:
                     self.gpg_import_func(self, self.confirm_func)
                 except Errors.YumBaseError, e:
                     raise URLGrabError(-1, 'Gpg Keys not imported, cannot verify repomd.xml for repo %s' % (self))
+                valid = misc.valid_detached_sig(result, filepath, self.gpgdir)
 
-            if not misc.valid_detached_sig(result, filepath, self.gpgdir):
+            if not valid:
                 raise URLGrabError(-1, 'repomd.xml signature could not be verified for %s' % (self))
 
         try:
commit 2c3734e99ada52826eb4dacb385f810ff41c501c
Author: James Antill <james at and.org>
Date:   Thu Nov 13 14:16:54 2008 -0500

    Catch XML parse exceptions and convert to MetaLinkRepoErrorParseFail

diff --git a/yum/metalink.py b/yum/metalink.py
index 5a57511..c478e0e 100755
--- a/yum/metalink.py
+++ b/yum/metalink.py
@@ -179,7 +179,10 @@ class MetaLinkRepoMD:
         self.mirrors = []
         if not os.path.exists(filename):
             raise MetaLinkRepoErrorParseFail, "File %s does not exist" %filename
-        root = xmlparse(filename)
+        try:
+            root = xmlparse(filename)
+        except SyntaxError:
+            raise MetaLinkRepoErrorParseFail, "File %s is not XML" % filename
 
         for elem in root.findall(__ML_FILE_ELEMENT__):
             name = elem.get('name')
commit b17d14c90c51223ec83026173cb8784e8950b596
Author: James Antill <james at and.org>
Date:   Wed Nov 12 11:34:38 2008 -0500

    Explain "repo list" better in shell command help

diff --git a/shell.py b/shell.py
index 145e344..97bd963 100644
--- a/shell.py
+++ b/shell.py
@@ -114,7 +114,7 @@ class YumShell(cmd.Cmd):
         msg = """
     Shell specific arguments:
       config - set config options
-      repository (or repo) - enable/disable repositories
+      repository (or repo) - enable/disable/list repositories
       transaction (or ts) - list, reset or run the transaction set
       run - run the transaction set
       exit or quit - exit the shell
@@ -131,7 +131,7 @@ class YumShell(cmd.Cmd):
         elif arg in ['repo', 'repository']:
             msg = """
     %s arg [option]
-      list: lists repositories and their status
+      list: lists repositories and their status. option = [all] name/id glob
       enable: enable repositories. option = repository id
       disable: disable repositories. option = repository id
     """ % arg
commit faa79adb21ffa695a35e2a170fc93f03615af06f
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Thu Nov 13 14:09:14 2008 -0500

    add bugtracker_url as a config option - for when we tell someone to file a bug
    rh bug #471164

diff --git a/cli.py b/cli.py
index 91088d4..9a93d15 100644
--- a/cli.py
+++ b/cli.py
@@ -408,7 +408,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
                 for msg in msgs:
                     print to_utf8(msg)
     
-                return 1, [_('Please report this error in bugzilla')]
+                return 1, [_('Please report this error in %s') % self.conf.bugtracker_url]
 
             self.verbose_logger.debug('rpm_check_debug time: %0.3f' % (time.time() - rcd_st))
 
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 40148a6..8171455 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -305,6 +305,10 @@ Can be set to 'all' or 'best'. All means install all possible arches for any pac
 want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, 
 if it is available. Best means install the best arch for this platform, only.
 
+.IP \fBbugtracker_url \fR
+Url where bugs should be filed for yum. Configurable for local versions or distro-specific
+bugtrackers.
+
 .SH "[repository] OPTIONS"
 .LP 
 The repository section(s) take the following form:
diff --git a/yum/__init__.py b/yum/__init__.py
index 5121da5..a207959 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -3289,7 +3289,8 @@ class YumBase(depsolve.Depsolve):
             if msgs:
                 retmsgs = [_('ERROR with rpm_check_debug vs depsolve:')]
                 retmsgs.extend(msgs) 
-                retmsgs.append(_('Please report this error in bugzilla'))
+                retmsgs.append(_('Please report this error at %s') 
+                                             % self.conf.bugtracker_url)
                 raise Errors.YumRPMCheckError,retmsgs
         
         tsConf = {}
diff --git a/yum/config.py b/yum/config.py
index 03123a9..cb7e726 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -667,7 +667,7 @@ class YumConf(StartupConf):
                  # all == install any/all arches you can
                  # best == use the 'best  arch' for the system
                  
-
+    bugtracker_url = Option('http://yum.baseurl.org/report')
     
     _reposlist = []
 
commit b3fc8bad22366d3a7a47297e38466ad4a85f1081
Author: James Antill <james at and.org>
Date:   Wed Nov 12 10:38:20 2008 -0500

    Allow re-adding deleted keys

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 4729ae3..01ff5ea 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1326,18 +1326,11 @@ class YumRepository(Repository, config.RepoConf):
             except URLGrabError, e:
                 raise URLGrabError(-1, 'Error finding signature for repomd.xml for %s: %s' % (self, e))
 
-            if not os.path.exists(self.gpgdir):
-                if self.gpg_import_func:
-                    #FIXME probably should have an else off of this to
-                    # complain if there is no import function
-                    try:
-                        self.gpg_import_func(self, self.confirm_func)
-                    except Errors.YumBaseError, e:
-                        raise URLGrabError(-1, 'Gpg Keys not imported, cannot verify repomd.xml for repo %s' % (self))
-
-                    # FIXME if we get the okay here to import the key then
-                    # we should set an option so that future key imports for this
-                    # repo will be allowed w/o question
+            if self.gpg_import_func:
+                try:
+                    self.gpg_import_func(self, self.confirm_func)
+                except Errors.YumBaseError, e:
+                    raise URLGrabError(-1, 'Gpg Keys not imported, cannot verify repomd.xml for repo %s' % (self))
 
             if not misc.valid_detached_sig(result, filepath, self.gpgdir):
                 raise URLGrabError(-1, 'repomd.xml signature could not be verified for %s' % (self))
commit 0017a9a7a770c53308f035e916dcea79ece32de9
Author: James Antill <james at and.org>
Date:   Tue Nov 11 15:04:45 2008 -0500

     Revert the previous attempt to fix repomd.xml verification failing
      Use download to tempfile + rename.
      This means even if someone pulls the plug after the download, but before the
      failure, we'll still not have a bad repomd.xml file there.

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index f5356c6..4729ae3 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -45,6 +45,7 @@ import glob
 import shutil
 import stat
 import errno
+import tempfile
 
 #  If you want yum to _always_ check the MD .sqlite files then set this to
 # False (this doesn't affect .xml files or .sqilte files derived from them).
@@ -879,12 +880,20 @@ class YumRepository(Repository, config.RepoConf):
 
     def _getFileRepoXML(self, local, text=None, grab_can_fail=None):
         """ Call _getFile() for the repomd.xml file. """
+        def _cleanup_tmp():
+            try:
+                os.unlink(tfname)
+            except:
+                pass
         checkfunc = (self._checkRepoXML, (), {})
         if grab_can_fail is None:
             grab_can_fail = 'old_repo_XML' in self._oldRepoMDData
         try:
+            # This is named so that "yum clean metadata" picks it up
+            tfname = tempfile.mktemp(prefix='repomd', suffix="tmp.xml",
+                                     dir=os.path.dirname(local))
             result = self._getFile(relative=self.repoMDFile,
-                                   local=local,
+                                   local=tfname,
                                    copy_local=1,
                                    text=text,
                                    reget=None,
@@ -892,16 +901,27 @@ class YumRepository(Repository, config.RepoConf):
                                    cache=self.http_caching == 'all')
 
         except URLGrabError, e:
+            _cleanup_tmp()
             if grab_can_fail:
                 return None
             raise Errors.RepoError, 'Error downloading file %s: %s' % (local, e)
         except (Errors.NoMoreMirrorsRepoError, Errors.RepoError):
+            _cleanup_tmp()
             if grab_can_fail:
                 return None
             raise
 
-
-        return result
+        # This should always work...
+        try:
+            os.rename(result, local)
+        except:
+            # But in case it doesn't...
+            _cleanup_tmp()
+            if grab_can_fail:
+                return None
+            raise Errors.RepoError, 'Error renaming file %s to %s' % (result,
+                                                                      local)
+        return local
 
     def _parseRepoXML(self, local, parse_can_fail=None):
         """ Parse the repomd.xml file. """
@@ -1284,20 +1304,6 @@ class YumRepository(Repository, config.RepoConf):
                        fdel=lambda self: setattr(self, "_repoXML", None))
 
     def _checkRepoXML(self, fo):
-        try:
-            self._checkRepoXML_inner(fo)
-        except:
-            #  Unlink the repomd.xml if it didn't pass our checks, really
-            # urlgrabber/whatever should be doing this ... but we do it.
-            #  Also we are screwed if this can ever fail for some reason like
-            # the ZFS quota snafu.
-            try:
-                os.unlink(self.cachedir + '/repomd.xml')
-            except:
-                pass
-            raise
-
-    def _checkRepoXML_inner(self, fo):
         if type(fo) is types.InstanceType:
             filepath = fo.filename
         else:
commit 18f774ed5c9ec45cc71496380ce47c9fa2335ab0
Author: James Antill <james at and.org>
Date:   Tue Nov 11 14:18:13 2008 -0500

    If anything bad happens with the repomd.xml checking, delete it for safety

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 9a24d20..f5356c6 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1284,6 +1284,20 @@ class YumRepository(Repository, config.RepoConf):
                        fdel=lambda self: setattr(self, "_repoXML", None))
 
     def _checkRepoXML(self, fo):
+        try:
+            self._checkRepoXML_inner(fo)
+        except:
+            #  Unlink the repomd.xml if it didn't pass our checks, really
+            # urlgrabber/whatever should be doing this ... but we do it.
+            #  Also we are screwed if this can ever fail for some reason like
+            # the ZFS quota snafu.
+            try:
+                os.unlink(self.cachedir + '/repomd.xml')
+            except:
+                pass
+            raise
+
+    def _checkRepoXML_inner(self, fo):
         if type(fo) is types.InstanceType:
             filepath = fo.filename
         else:
commit e59d9491bb4ccdd5e5f4cdd8de24e858a342a2d6
Merge: 674dfc2... af4feb6...
Author: James Antill <james at and.org>
Date:   Tue Nov 11 09:57:59 2008 -0500

    Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X
    
    * 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum:
      make skip-broken handle a case where foo.x86_64 is skipped, and the foo.i386 is pulled in instead (rhbz #470291)
      handle obsoleted txmbr without obsoleting txmbr in skip-broken
      add tsInfo debug messages to output in broken tests

commit 674dfc28da754fe3cbc470067fe496e3240cbca8
Author: James Antill <james at and.org>
Date:   Tue Nov 11 09:57:49 2008 -0500

    Obey enable/disable plugins for yumdownloader etc. ... fixes bug 470936

diff --git a/utils.py b/utils.py
index d92f533..cea9110 100644
--- a/utils.py
+++ b/utils.py
@@ -61,12 +61,20 @@ class YumUtilBase(YumBaseCli):
         root = self._parser.getRoot(opts)
         # Read up configuration options and initialise plugins
         try:
+            disabled_plugins = None
+            if hasattr(opts, "disableplugins"):
+                disabled_plugins = self._parser._splitArg(opts.disableplugins)
+            enabled_plugins  = None
+            if hasattr(opts, "enableplugins"):
+                enabled_plugins = self._parser._splitArg(opts.enableplugins)
             self._getConfig(opts.conffile, root, 
                     init_plugins=not opts.noplugins,
                     plugin_types= pluginsTypes,
                     optparser=self._parser,
                     debuglevel=opts.debuglevel,
-                    errorlevel=opts.errorlevel)
+                    errorlevel=opts.errorlevel,
+                    disabled_plugins=disabled_plugins,
+                    enabled_plugins=enabled_plugins)
         except yum.Errors.ConfigError, e:
             self.logger.critical(_('Config Error: %s'), e)
             sys.exit(1)
commit af4feb628ace315ae37a30fdf55821812453ceea
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Tue Nov 11 08:18:37 2008 +0100

    make skip-broken handle a case where foo.x86_64 is skipped, and the foo.i386 is pulled in instead (rhbz #470291)

diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 968989c..d6f763c 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -526,6 +526,62 @@ class SkipBrokenTests(DepsolveTests):
         self.tsInfo.addUpdate(ur4, oldpo=r4)
         
         self.assertEquals('err', *self.resolveCode(skip=False))
+        
+    def testBumpedSoNameMultiArch(self):
+        """ 
+        if compat-db45.x86_64 get skipped, then compat-db45.i386 should not 
+        get pulled in instead
+        """
+        c1 = self.instPackage('cyrus-sasl-lib', '2.1.22',"18", arch='x86_64')
+        c1.addRequires("libdb-4.3.so")
+        
+        d1 = self.instPackage('compat-db', '4.6.21',"4", arch='x86_64')
+        d1.addProvides("libdb-4.3.so")
+        od1 = self.repoPackage('compat-db46', '4.6.21',"5", arch='x86_64')
+        od1.addProvides("libdb-4.6.so")
+        od1.addObsoletes("compat-db")
+        od2 = self.repoPackage('compat-db45', '4.6.21',"5", arch='x86_64')
+        od2.addProvides("libdb-4.5.so")
+        od2.addObsoletes("compat-db")
+        od3 = self.repoPackage('compat-db45', '4.6.21',"5", arch='i386')
+        od3.addProvides("libdb-4.5.so")
+        od3.addObsoletes("compat-db")
+        
+        r1 = self.instPackage('rpm', '4.6.0-0','0.rc1.3', arch='x86_64')
+        r1.addRequires("libdb-4.5.so")
+        r2 = self.instPackage('rpm-libs', '4.6.0-0','0.rc1.3', arch='x86_64')
+        r2.addRequires("libdb-4.5.so")
+        r3 = self.instPackage('rpm-build', '4.6.0-0','0.rc1.3', arch='x86_64')
+        r3.addRequires("libdb-4.5.so")
+        r4 = self.instPackage('rpm-python', '4.6.0-0','0.rc1.3', arch='x86_64')
+        r4.addRequires("libdb-4.5.so")
+
+        ur1 = self.repoPackage('rpm', '4.6.0-0','0.rc1.5', arch='x86_64')
+        ur1.addRequires("libdb-4.5.so")
+        ur1.addRequires("compat-db45")
+        ur2 = self.repoPackage('rpm-libs', '4.6.0-0','0.rc1.5', arch='x86_64')
+        ur2.addRequires("libdb-4.5.so")
+        ur2.addRequires("compat-db45")
+        ur3 = self.repoPackage('rpm-build', '4.6.0-0','0.rc1.5', arch='x86_64')
+        ur3.addRequires("libdb-4.5.so")
+        ur3.addRequires("compat-db45")
+        ur4 = self.repoPackage('rpm-python', '4.6.0-0','0.rc1.5', arch='x86_64')
+        ur4.addRequires("libdb-4.5.so")
+        ur4.addRequires("compat-db45")
+
+
+        self.tsInfo.addObsoleting(od2, oldpo=d1)
+        self.tsInfo.addObsoleted(d1, od2)
+        self.tsInfo.addObsoleting(od1, oldpo=d1)
+        self.tsInfo.addObsoleted(d1, od1)
+        self.tsInfo.addUpdate(ur1, oldpo=r1)
+        self.tsInfo.addUpdate(ur2, oldpo=r2)
+        self.tsInfo.addUpdate(ur3, oldpo=r3)
+        self.tsInfo.addUpdate(ur4, oldpo=r4)
+
+        self.assertEquals('empty', *self.resolveCode(skip=True))
+        self.assertResult([c1,d1,r1,r2,r3,r4])
+        
     
     def resolveCode(self,skip = False):
         solver = YumBase()
diff --git a/yum/__init__.py b/yum/__init__.py
index 94e732d..dc19660 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -684,11 +684,16 @@ class YumBase(depsolve.Depsolve):
             _remove_from_sack(po)
 
         def _remove_from_sack(po):
-            if not po.repoid == 'installed' and po not in removed_from_sack:
-                self.verbose_logger.debug('SKIPBROKEN: removing %s from pkgSack & updates' % str(po))
-                self.pkgSack.delPackage(po)
-                self.up.delPackage(po.pkgtup)
-                removed_from_sack.add(po)
+            # get all compatible arch packages from pkgSack
+            # we need to remove them to so a i386 paqckages is not 
+            # dragged in when a x86_64 is skipped.
+            pkgs = self._getPackagesToRemoveAllArch(po)
+            for pkg in pkgs:
+                if not po.repoid == 'installed' and pkg not in removed_from_sack:             
+                    self.verbose_logger.debug('SKIPBROKEN: removing %s from pkgSack & updates' % str(po))
+                    self.pkgSack.delPackage(pkg)
+                    self.up.delPackage(pkg.pkgtup)
+                    removed_from_sack.add(pkg)
 
         # Keep removing packages & Depsolve until all errors is gone
         # or the transaction is empty
@@ -780,7 +785,25 @@ class YumBase(depsolve.Depsolve):
                 if not self.tsInfo.exists(pkg.pkgtup):
                     self.verbose_logger.debug('SKIPBROKEN: Remove extra obsoleted %s (%s)' % (txmbr.po,pkg) )
                     self.tsInfo.remove(txmbr.po.pkgtup)
-                    
+
+    def _getPackagesToRemoveAllArch(self,po):
+        ''' get all compatible arch packages in pkgSack'''
+        pkgs = []
+        if rpmUtils.arch.isMultiLibArch():
+            archs = rpmUtils.arch.getArchList() 
+            n,a,e,v,r = po.pkgtup
+            # skip for all compat archs
+            for a in archs:
+                pkgtup = (n,a,e,v,r)
+                matched = self.pkgSack.searchNevra(n,e,v,r,a) 
+                pkgs.extend(matched)
+        else:
+            pkgs.append(po)
+        return pkgs   
+        
+                
+                
+        
 
     def _skipFromTransaction(self,po):
         skipped =  []
commit 268784438956545d34332b71a47d63b21da008c0
Author: James Antill <james at and.org>
Date:   Mon Nov 10 11:44:13 2008 -0500

    Allow arguments to grouplist to only show a subset of groups

diff --git a/cli.py b/cli.py
index ff4c7d6..91088d4 100644
--- a/cli.py
+++ b/cli.py
@@ -843,8 +843,12 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         if len(userlist) > 0:
             if userlist[0] == 'hidden':
                 uservisible=0
+                userlist.pop(0)
+        if not userlist:
+            userlist = None # Match everything...
 
-        installed, available = self.doGroupLists(uservisible=uservisible)
+        installed, available = self.doGroupLists(uservisible=uservisible,
+                                                 patterns=userlist)
         
         if len(installed) > 0:
             self.verbose_logger.log(yum.logginglevels.INFO_2,
diff --git a/yum/__init__.py b/yum/__init__.py
index 316d11e..ddfbf82 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1870,7 +1870,7 @@ class YumBase(depsolve.Depsolve):
             
         return matches
 
-    def doGroupLists(self, uservisible=0):
+    def doGroupLists(self, uservisible=0, patterns=None, ignore_case=True):
         """returns two lists of groups, installed groups and available groups
            optional 'uservisible' bool to tell it whether or not to return
            only groups marked as uservisible"""
@@ -1882,7 +1882,12 @@ class YumBase(depsolve.Depsolve):
         if self.comps.compscount == 0:
             raise Errors.GroupsError, _('No group data available for configured repositories')
         
-        for grp in self.comps.groups:
+        if patterns is None:
+            grps = self.comps.groups
+        else:
+            grps = self.comps.return_groups(",".join(patterns),
+                                            case_sensitive=not ignore_case)
+        for grp in grps:
             if grp.installed:
                 if uservisible:
                     if grp.user_visible:
commit 8b4f9781f0b18978d04fcc467b276478e6e7e5e3
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Sun Nov 9 13:50:04 2008 +0100

    handle obsoleted txmbr without obsoleting txmbr in skip-broken

diff --git a/yum/__init__.py b/yum/__init__.py
index 316d11e..94e732d 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -768,14 +768,18 @@ class YumBase(depsolve.Depsolve):
         then the TS_OBSOLETED can get removed from the transaction
         so we must make sure that they, exist and else create them
         """
-        added = set()
         for txmbr in self.tsInfo:
             for pkg in txmbr.obsoletes:
                 if not self.tsInfo.exists(pkg.pkgtup):
                     obs = self.tsInfo.addObsoleted(pkg,txmbr.po)
                     self.verbose_logger.debug('SKIPBROKEN: Added missing obsoleted %s (%s)' % (pkg,txmbr.po) )
-                    added.add(obs)
-        return added
+            for pkg in txmbr.obsoleted_by:
+                # check if the obsoleting txmbr is in the transaction
+                # else remove the obsoleted txmbr
+                # it clean out some really wierd cases
+                if not self.tsInfo.exists(pkg.pkgtup):
+                    self.verbose_logger.debug('SKIPBROKEN: Remove extra obsoleted %s (%s)' % (txmbr.po,pkg) )
+                    self.tsInfo.remove(txmbr.po.pkgtup)
                     
 
     def _skipFromTransaction(self,po):
commit c6643eb7aed4f5dc60c6350a7005f9e7fcd374ab
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Sun Nov 9 13:35:36 2008 +0100

    add tsInfo debug messages to output in broken tests

diff --git a/test/testbase.py b/test/testbase.py
index 0beffc6..bed2267 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -267,6 +267,7 @@ class DepsolveTests(_DepsolveTestsBase):
         """ Called at the start of each test. """
         _DepsolveTestsBase.setUp(self)
         self.tsInfo = transactioninfo.TransactionData()
+        self.tsInfo.debug = 1
         self.rpmdb  = FakeRpmDb()
         self.xsack  = packageSack.PackageSack()
         self.repo   = FakeRepo("installed")
commit 0f969e0d174ff968fb05059dff51a9a13aab6187
Author: James Antill <james at and.org>
Date:   Fri Nov 7 15:22:59 2008 -0500

    Fix typo which stopped a testcase from running

diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index ca9750e..9a9b5fc 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -256,7 +256,7 @@ class SimpleObsoletesTests(OperationsTests):
         self.assert_(res=='ok', msg)
         self.assertResult((pkgs['nash'],pkgs['bigfish'],))
 
-    def testMultiObs2(self):
+    def testMultiObs3(self):
         pkgs = self._MultiObsHelper()
         res, msg = self.runOperation(['install', 'shark'],
                                      pkgs['pi'], pkgs['po'])
commit 1b89ab3d02b6aa1f23c7fb48b3ae32b8d82d6855
Author: James Antill <james at and.org>
Date:   Fri Nov 7 15:21:05 2008 -0500

    Test multi. obsoletes for install

diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 4ea7c82..ca9750e 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -223,6 +223,46 @@ class SimpleObsoletesTests(OperationsTests):
         self.assert_(res=='ok', msg)
         self.assertResult((p.obsoletes_noarch,))
 
+    def _MultiObsHelper(self):
+        ret = {'zsh'  : FakePackage('zsh', '1', '1', '0', 'noarch'),
+               'ksh'  : FakePackage('ksh', '1', '1', '0', 'noarch'),
+               'nash' : FakePackage('nash', '1', '1', '0', 'noarch')}
+        ret['pi'] = [ret['zsh'], ret['ksh'], ret['nash']]
+              
+        ret['fish'] = FakePackage('fish', '0.1', '1', '0', 'noarch')
+        ret['fish'].addObsoletes('zsh', None, (None, None, None))
+        ret['bigfish'] = FakePackage('bigfish', '0.2', '1', '0', 'noarch')
+        ret['bigfish'].addObsoletes('zsh', None, (None, None, None))
+        ret['bigfish'].addObsoletes('ksh', None, (None, None, None))
+        ret['shark'] = FakePackage('shark', '0.3', '1', '0', 'noarch')
+        ret['shark'].addObsoletes('zsh', None, (None, None, None))
+        ret['shark'].addObsoletes('ksh', None, (None, None, None))
+        ret['shark'].addObsoletes('nash', None, (None, None, None))
+
+        ret['po'] = [ret['fish'], ret['bigfish'], ret['shark']]
+        return ret
+
+    def testMultiObs1(self):
+        pkgs = self._MultiObsHelper()
+        res, msg = self.runOperation(['install', 'fish'],
+                                     pkgs['pi'], pkgs['po'])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pkgs['ksh'],pkgs['nash'],pkgs['fish'],))
+
+    def testMultiObs2(self):
+        pkgs = self._MultiObsHelper()
+        res, msg = self.runOperation(['install', 'bigfish'],
+                                     pkgs['pi'], pkgs['po'])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pkgs['nash'],pkgs['bigfish'],))
+
+    def testMultiObs2(self):
+        pkgs = self._MultiObsHelper()
+        res, msg = self.runOperation(['install', 'shark'],
+                                     pkgs['pi'], pkgs['po'])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pkgs['shark'],))
+
 class GitMetapackageObsoletesTests(OperationsTests):
 
     @staticmethod
commit 164337d34544f90823c885075605524b06a2ff5b
Author: James Antill <james at and.org>
Date:   Fri Nov 7 15:08:38 2008 -0500

    Add testcase for install obsoleters

diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 05ebf05..4ea7c82 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -217,6 +217,12 @@ class SimpleObsoletesTests(OperationsTests):
         self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
 
 
+    def testInstallObsoletenoarchTonoarch(self):
+        p = self.pkgs
+        res, msg = self.runOperation(['install', 'zsh-ng'], [p.installed_noarch], [p.obsoletes_noarch])
+        self.assert_(res=='ok', msg)
+        self.assertResult((p.obsoletes_noarch,))
+
 class GitMetapackageObsoletesTests(OperationsTests):
 
     @staticmethod
commit 563f25f55324691a76d120d666c7055f74504284
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Fri Nov 7 15:04:20 2008 -0500

    make sure we mark as obsoleted pkgs when we do an install.
    closes rh bug 470440

diff --git a/yum/__init__.py b/yum/__init__.py
index dcf1654..316d11e 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2508,8 +2508,19 @@ class YumBase(depsolve.Depsolve):
                 self.install(po=obsoleting_pkg)
                 continue
                 
-            txmbr = self.tsInfo.addInstall(po)
-            tx_return.append(txmbr)
+            # 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
+            if po.pkgtup in self.up.getObsoletesList(name=po.name, arch=po.arch):
+                for (obstup, inst_tup) in self.up.getObsoletesTuples(name=po.name, 
+                                                                     arch=po.arch):
+                    if po.pkgtup == obstup:
+                        installed_pkg =  self.rpmdb.searchPkgTuple(inst_tup)[0]
+                        txmbr = self.tsInfo.addObsoleting(po, installed_pkg)
+                        self.tsInfo.addObsoleted(installed_pkg, po)
+                        tx_return.append(txmbr)
+            else:
+                txmbr = self.tsInfo.addInstall(po)
+                tx_return.append(txmbr)
         
         return tx_return
 
commit b8662f1bdc87863095d25505461e57961f23bd21
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Fri Nov 7 11:24:24 2008 -0500

    minor modification to make the error message be more accurate

diff --git a/shell.py b/shell.py
index 4c490e8..145e344 100644
--- a/shell.py
+++ b/shell.py
@@ -337,11 +337,13 @@ class YumShell(cmd.Cmd):
                 if e.errno == 32:
                     self.logger.critical('\n\nExiting on Broken Pipe')
             else:
-                if returnval != 0:
-                    self.verbose_logger.info('Transaction did not run.')
+                if returnval not in [0,1]:
+                    self.verbose_logger.info('Transaction encountered a serious error.')
                 else:
+                    if returnval == 1:
+                        self.verbose_logger.info('There were non-fatal errors in the transaction')
                     self.verbose_logger.log(logginglevels.INFO_2,
                         'Finished Transaction')
-                    self.base.closeRpmDB()
+                self.base.closeRpmDB()
 
 
commit 0a79698b6ce13e918b90e569de618a0b8aa43ef6
Author: James Antill <james at and.org>
Date:   Thu Nov 6 10:54:13 2008 -0500

    Only eat the exception if it's ENOENT

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index decc662..9a24d20 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -44,6 +44,7 @@ import warnings
 import glob
 import shutil
 import stat
+import errno
 
 #  If you want yum to _always_ check the MD .sqlite files then set this to
 # False (this doesn't affect .xml files or .sqilte files derived from them).
@@ -209,8 +210,9 @@ class YumPackageSack(packageSack.PackageSack):
                 if not repo.cache:
                     try:
                         os.unlink(db_un_fn)
-                    except: # Could have an error before anything happens
-                        pass
+                    except OSError, e:
+                        if e.errno != errno.ENOENT:
+                            raise # Could have an error before anything happens
             else:
                 result = db_un_fn
 
commit 9ff0d3ee7cb08e85a3fe6f39c3417ee3be6dc080
Author: James Antill <james at and.org>
Date:   Thu Nov 6 10:34:55 2008 -0500

    Don't die if we haven't downloaded anything before we get the URLGrabError

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index b762deb..decc662 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -207,7 +207,10 @@ class YumPackageSack(packageSack.PackageSack):
                 repo.checkMD(db_un_fn, mdtype, openchecksum=True)
             except URLGrabError:
                 if not repo.cache:
-                    os.unlink(db_un_fn)
+                    try:
+                        os.unlink(db_un_fn)
+                    except: # Could have an error before anything happens
+                        pass
             else:
                 result = db_un_fn
 
commit 65bf1d5f6ba89ad1f70306525c390f7e11615dc5
Author: James Antill <james at and.org>
Date:   Tue Nov 4 18:14:09 2008 -0500

    Minor comment copy/paste fix, group => category

diff --git a/yum/comps.py b/yum/comps.py
index f5af0bd..6820c64 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -354,7 +354,7 @@ class Category(CompsObj):
                 self.translated_description[lang] = obj.translated_description[lang]
 
     def xml(self):
-        """write out an xml stanza for the group object"""
+        """write out an xml stanza for the category object"""
         msg ="""        
   <category>
    <id>%s</id>
commit ac4b9a7e0ed7afa2bd42d2e7334b64c12afbc50e
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Thu Nov 6 15:10:54 2008 +0100

    updated catalan translation Xavier Conde

diff --git a/po/ca.po b/po/ca.po
index 4af6f82..f4a0eb3 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -4,6 +4,7 @@
 #  yum package.
 #
 # Josep Maria Brunetti Fernández <josepb at gmail.com>, 2008
+# Xavier Conde Rueda <xavi.conde at gmail.com>, 2008
 #
 # This file is translated according to the glossary and style guide of
 #   Softcatalà. If you plan to modify this file, please read first the page
@@ -20,16 +21,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-17 02:09+0000\n"
-"PO-Revision-Date: 2008-10-18 19:39+0200\n"
-"Last-Translator: Josep Maria Brunetti Fernández <josepb at gmail.com>\n"
+"POT-Creation-Date: 2008-11-06 01:31+0000\n"
+"PO-Revision-Date: 2008-11-06 19:39+0200\n"
+"Last-Translator: Xavier Conde Rueda <xavi.conde at gmail.com>\n"
 "Language-Team: Language-Team: Catalan <fedora at softcatala.net>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: ../callback.py:48 ../output.py:777 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:808 ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "S'està actualitzant"
 
@@ -37,8 +38,7 @@ msgstr "S'està actualitzant"
 msgid "Erasing"
 msgstr "S'està esborrant"
 
-#. Arch can't get "that big" ... so always use the max.
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:776
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:807
 #: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
 msgid "Installing"
 msgstr "S'està instal·lant"
@@ -47,7 +47,7 @@ msgstr "S'està instal·lant"
 msgid "Obsoleted"
 msgstr "Obsolet"
 
-#: ../callback.py:54 ../output.py:890
+#: ../callback.py:54 ../output.py:913
 msgid "Updated"
 msgstr "Actualitzat"
 
@@ -55,7 +55,7 @@ msgstr "Actualitzat"
 msgid "Erased"
 msgstr "Esborrat"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:888
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:911
 msgid "Installed"
 msgstr "Instal·lat"
 
@@ -77,7 +77,7 @@ msgstr "Error: estat de sortida invàlid: %s per a %s"
 msgid "Erased: %s"
 msgstr "Esborrat: %s"
 
-#: ../callback.py:217 ../output.py:778
+#: ../callback.py:217 ../output.py:809
 msgid "Removing"
 msgstr "S'està esborrant"
 
@@ -103,7 +103,7 @@ msgstr "S'estan llegint les metadades de repositoris des de fitxers locals"
 msgid "Config Error: %s"
 msgstr "Error de configuració: %s"
 
-#: ../cli.py:190 ../cli.py:1125 ../utils.py:74
+#: ../cli.py:190 ../cli.py:1128 ../utils.py:74
 #, python-format
 msgid "Options Error: %s"
 msgstr "Error d'opcions: %s"
@@ -149,7 +149,7 @@ msgstr ""
 #: ../cli.py:351
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr ""
-"S'ha intentat executar la transacció però no hi ha res a fer. S'està sortint."
+"S'ha intentat executar la transacció però no hi ha cap tasca a fer. S'està sortint."
 
 #: ../cli.py:381
 msgid "Exiting on user Command"
@@ -163,15 +163,15 @@ msgstr "S'estan descarregant els següents paquets:"
 msgid "Error Downloading Packages:\n"
 msgstr "S'ha produït un error descarregant els següents paquets:\n"
 
-#: ../cli.py:404 ../yum/__init__.py:3133
+#: ../cli.py:404 ../yum/__init__.py:3244
 msgid "Running rpm_check_debug"
 msgstr "S'està executant rpm_check_debug"
 
-#: ../cli.py:407 ../yum/__init__.py:3136
+#: ../cli.py:407 ../yum/__init__.py:3247
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "ERROR amb rpm_check_debug vs depsolve:"
 
-#: ../cli.py:411 ../yum/__init__.py:3138
+#: ../cli.py:411 ../yum/__init__.py:3249
 msgid "Please report this error in bugzilla"
 msgstr "Siusplau, informeu d'aquest error al bugzilla"
 
@@ -215,17 +215,17 @@ msgstr "Paquets %s%s%s disponibles, però no instal·lats."
 #: ../cli.py:542 ../cli.py:577
 #, python-format
 msgid "No package %s%s%s available."
-msgstr "El paquet %s%s%s està disponible."
+msgstr "El paquet %s%s%s no està disponible."
 
 #: ../cli.py:567
 msgid "Parsing package install arguments"
 msgstr "S'estan analitzant els arguments del paquet a instal·lar"
 
-#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:889
+#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:933
 msgid "Package(s) to install"
 msgstr "Paquets a instal·lar"
 
-#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:890
+#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:151 ../yumcommands.py:934
 msgid "Nothing to do"
 msgstr "Res a fer"
 
@@ -272,7 +272,8 @@ msgid ""
 "Warning: 3.0.x versions of yum would erronously match against filenames.\n"
 " You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
 msgstr ""
-"Avís: les versions 3.0.x del yum comproven incorrectament els noms de fitxer.\n"
+"Avís: les versions 3.0.x del yum comproven incorrectament els noms de "
+"fitxer.\n"
 " Podeu usar \"%s*/%s%s\" i/o \"%s*bin/%s%s\" per obtenir aquest comportament"
 
 #: ../cli.py:789
@@ -320,7 +321,7 @@ msgstr "Grups disponibles:"
 msgid "Done"
 msgstr "Fet"
 
-#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2245
+#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2336
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Avís: El grup %s no existeix"
@@ -336,7 +337,7 @@ msgstr ""
 msgid "%d Package(s) to Install"
 msgstr "%d paquets a instal·lar"
 
-#: ../cli.py:915 ../yum/__init__.py:2257
+#: ../cli.py:915 ../yum/__init__.py:2348
 #, python-format
 msgid "No group named %s exists"
 msgstr "No existeix cap grup anomenat %s"
@@ -384,246 +385,246 @@ msgstr ""
 "\n"
 "%s: l'opció %s necessita un argument"
 
-#: ../cli.py:1167
+#: ../cli.py:1170
 msgid "show this help message and exit"
 msgstr "mostra el missatge d'ajuda i surt"
 
-#: ../cli.py:1171
+#: ../cli.py:1174
 msgid "be tolerant of errors"
-msgstr "sigues tolerant a errors"
+msgstr "sigues tolerant amb els errors"
 
-#: ../cli.py:1173
+#: ../cli.py:1176
 msgid "run entirely from cache, don't update cache"
-msgstr "executa totalment des de la memòria cau, no actualitzis la memòria cau"
+msgstr "executa totalment des de la memòria cau, no l'actualitzis"
 
-#: ../cli.py:1175
+#: ../cli.py:1178
 msgid "config file location"
 msgstr "ubicació del fitxer de configuració"
 
-#: ../cli.py:1177
+#: ../cli.py:1180
 msgid "maximum command wait time"
 msgstr "temps màxim d'espera d'ordres"
 
-#: ../cli.py:1179
+#: ../cli.py:1182
 msgid "debugging output level"
 msgstr "nivell de sortida de depuració"
 
-#: ../cli.py:1183
+#: ../cli.py:1186
 msgid "show duplicates, in repos, in list/search commands"
-msgstr "mostra duplicats, en repositoris, en les ordres llista i cerca"
+msgstr "mostra duplicats, en repositoris, en les ordres per llistar i cercar"
 
-#: ../cli.py:1185
+#: ../cli.py:1188
 msgid "error output level"
-msgstr "error en el nivell de sortida"
+msgstr "nivell de sortida d'error"
 
-#: ../cli.py:1188
+#: ../cli.py:1191
 msgid "quiet operation"
 msgstr "operació silenciosa"
 
-#: ../cli.py:1190
+#: ../cli.py:1193
 msgid "verbose operation"
 msgstr "operació descriptiva"
 
-#: ../cli.py:1192
+#: ../cli.py:1195
 msgid "answer yes for all questions"
 msgstr "respon sí a totes les preguntes"
 
-#: ../cli.py:1194
+#: ../cli.py:1197
 msgid "show Yum version and exit"
-msgstr "mostra la versió de Yum i surt"
+msgstr "mostra la versió del Yum i surt"
 
-#: ../cli.py:1195
+#: ../cli.py:1198
 msgid "set install root"
 msgstr "estableix l'arrel de la instal·lació"
 
-#: ../cli.py:1199
+#: ../cli.py:1202
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "habilita un o més repositoris (es permeten caràcters de reemplaçament)"
 
-#: ../cli.py:1203
+#: ../cli.py:1206
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr ""
 "deshabilita un o més repositoris (es permeten caràcters de reemplaçament)"
 
-#: ../cli.py:1206
+#: ../cli.py:1209
 msgid "exclude package(s) by name or glob"
 msgstr "exclou els paquets per nom o expressió regular del glob"
 
-#: ../cli.py:1208
+#: ../cli.py:1211
 msgid "disable exclude from main, for a repo or for everything"
-msgstr "deshabilita l'exclusió des de l'inici, per a un repositori o per a tot"
+msgstr "inhabilita l'exclusió des de l'inici, per a un repositori o per a tot"
 
-#: ../cli.py:1211
+#: ../cli.py:1214
 msgid "enable obsoletes processing during updates"
 msgstr "habilita el processament d'obsolets durant les actualitzacions"
 
-#: ../cli.py:1213
+#: ../cli.py:1216
 msgid "disable Yum plugins"
-msgstr "deshabilita les extensions de Yum"
+msgstr "inhabilita les extensions de Yum"
 
-#: ../cli.py:1215
+#: ../cli.py:1218
 msgid "disable gpg signature checking"
-msgstr "deshabilita la comprobació de signatures gpg"
+msgstr "inhabilita la comprobació de signatures gpg"
 
-#: ../cli.py:1217
+#: ../cli.py:1220
 msgid "disable plugins by name"
-msgstr "deshabilita extensions per nom"
+msgstr "inhabilita extensions per nom"
 
-#: ../cli.py:1220
+#: ../cli.py:1223
 msgid "enable plugins by name"
 msgstr "habilita extensions per nom"
 
-#: ../cli.py:1223
+#: ../cli.py:1226
 msgid "skip packages with depsolving problems"
 msgstr "omet paquets amb problemes de resolució de dependències"
 
-#: ../output.py:236
+#: ../output.py:248
 msgid "Jan"
 msgstr "Gen"
 
-#: ../output.py:236
+#: ../output.py:248
 msgid "Feb"
 msgstr "Feb"
 
-#: ../output.py:236
+#: ../output.py:248
 msgid "Mar"
 msgstr "Mar"
 
-#: ../output.py:236
+#: ../output.py:248
 msgid "Apr"
 msgstr "Abr"
 
-#: ../output.py:236
+#: ../output.py:248
 msgid "May"
 msgstr "Mai"
 
-#: ../output.py:236
+#: ../output.py:248
 msgid "Jun"
 msgstr "Jun"
 
-#: ../output.py:237
+#: ../output.py:249
 msgid "Jul"
 msgstr "Jul"
 
-#: ../output.py:237
+#: ../output.py:249
 msgid "Aug"
 msgstr "Ago"
 
-#: ../output.py:237
+#: ../output.py:249
 msgid "Sep"
 msgstr "Set"
 
-#: ../output.py:237
+#: ../output.py:249
 msgid "Oct"
 msgstr "Oct"
 
-#: ../output.py:237
+#: ../output.py:249
 msgid "Nov"
 msgstr "Nov"
 
-#: ../output.py:237
+#: ../output.py:249
 msgid "Dec"
 msgstr "Des"
 
-#: ../output.py:247
+#: ../output.py:259
 msgid "Trying other mirror."
 msgstr "S'està intentant un altre servidor rèplica."
 
-#: ../output.py:425
+#: ../output.py:439
 #, python-format
 msgid "Name       : %s%s%s"
 msgstr "Nom       : %s%s%s"
 
-#: ../output.py:426
+#: ../output.py:440
 #, python-format
 msgid "Arch       : %s"
 msgstr "Arq       : %s"
 
-#: ../output.py:428
+#: ../output.py:442
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Època      : %s"
 
-#: ../output.py:429
+#: ../output.py:443
 #, python-format
 msgid "Version    : %s"
 msgstr "Versió    : %s"
 
-#: ../output.py:430
+#: ../output.py:444
 #, python-format
 msgid "Release    : %s"
 msgstr "Release    : %s"
 
-#: ../output.py:431
+#: ../output.py:445
 #, python-format
 msgid "Size       : %s"
 msgstr "Mida       : %s"
 
-#: ../output.py:432
+#: ../output.py:446
 #, python-format
 msgid "Repo       : %s"
 msgstr "Repo       : %s"
 
-#: ../output.py:434
+#: ../output.py:448
 #, python-format
 msgid "Committer  : %s"
 msgstr "Desenvolupador  : %s"
 
-#: ../output.py:435
+#: ../output.py:449
 #, python-format
 msgid "Committime : %s"
 msgstr "Pujat : %s"
 
-#: ../output.py:436
+#: ../output.py:450
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "Temps de creació  : %s"
 
-#: ../output.py:438
+#: ../output.py:452
 #, python-format
 msgid "Installtime: %s"
 msgstr "Temps d'instal·lació: %s"
 
-#: ../output.py:439
+#: ../output.py:453
 msgid "Summary    : "
 msgstr "Resum    : "
 
-#: ../output.py:441
+#: ../output.py:455
 #, python-format
 msgid "URL        : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:442
+#: ../output.py:456
 #, python-format
 msgid "License    : %s"
 msgstr "Llicència    : %s"
 
-#: ../output.py:443
+#: ../output.py:457
 msgid "Description: "
 msgstr "Descripció: "
 
-#: ../output.py:500
+#: ../output.py:514
 msgid "y"
 msgstr "s"
 
-#: ../output.py:500
+#: ../output.py:514
 msgid "yes"
 msgstr "sí"
 
-#: ../output.py:501
+#: ../output.py:515
 msgid "n"
 msgstr "n"
 
-#: ../output.py:501
+#: ../output.py:515
 msgid "no"
 msgstr "no"
 
 # REMEMBER to Translate [Y/N] to the current locale
-#: ../output.py:505
+#: ../output.py:519
 msgid "Is this ok [y/N]: "
 msgstr "És correcte [s/N]: "
 
-#: ../output.py:587
+#: ../output.py:601
 #, python-format
 msgid ""
 "\n"
@@ -632,119 +633,123 @@ msgstr ""
 "\n"
 "Grup: %s"
 
-#: ../output.py:594
+#: ../output.py:608
 #, python-format
 msgid " Description: %s"
 msgstr " Descripció: %s"
 
-#: ../output.py:596
+#: ../output.py:610
 msgid " Mandatory Packages:"
 msgstr " Paquets obligatoris:"
 
-#: ../output.py:597
+#: ../output.py:611
 msgid " Default Packages:"
 msgstr " Paquets per defecte:"
 
-#: ../output.py:598
+#: ../output.py:612
 msgid " Optional Packages:"
 msgstr " Paquets opcionals:"
 
-#: ../output.py:599
+#: ../output.py:613
 msgid " Conditional Packages:"
 msgstr " Paquets condicionals:"
 
-#: ../output.py:619
+#: ../output.py:633
 #, python-format
 msgid "package: %s"
 msgstr "paquet: %s"
 
-#: ../output.py:621
+#: ../output.py:635
 msgid "  No dependencies for this package"
 msgstr "  No hi ha dependències per a aquest paquet"
 
-#: ../output.py:626
+#: ../output.py:640
 #, python-format
 msgid "  dependency: %s"
 msgstr "  dependència: %s"
 
-#: ../output.py:628
+#: ../output.py:642
 msgid "   Unsatisfied dependency"
 msgstr "   Dependència insatisfeta"
 
-#: ../output.py:700
+#: ../output.py:714
 msgid "Matched from:"
 msgstr "Coincidències amb:"
 
-#: ../output.py:708
+#: ../output.py:722
 msgid "Description : "
 msgstr "Descripció: "
 
-#: ../output.py:711
+#: ../output.py:725
 #, python-format
 msgid "URL         : %s"
 msgstr "URL         : %s"
 
-#: ../output.py:714
+#: ../output.py:728
 #, python-format
 msgid "License     : %s"
 msgstr "Llicència   : %s"
 
-#: ../output.py:717
+#: ../output.py:731
 #, python-format
 msgid "Filename    : %s"
 msgstr "Fitxer      : %s"
 
-#: ../output.py:721
+#: ../output.py:735
 msgid "Other       : "
 msgstr "Altre       : "
 
-#: ../output.py:753
+#: ../output.py:767
 msgid "There was an error calculating total download size"
 msgstr "S'ha produït un error en calcular la mida total de la descàrrega"
 
-#: ../output.py:758
+#: ../output.py:772
 #, python-format
 msgid "Total size: %s"
 msgstr "Mida total: %s"
 
-#: ../output.py:761
+#: ../output.py:775
 #, python-format
 msgid "Total download size: %s"
 msgstr "Mida total de la descàrrega: %s"
 
-#: ../output.py:779
+#: ../output.py:810
 msgid "Installing for dependencies"
 msgstr "S'està instal·lant per dependències"
 
-#: ../output.py:780
+#: ../output.py:811
 msgid "Updating for dependencies"
-msgstr "S'està actualitzant per dependències"
+msgstr "S'està actualitzant degut a les dependències"
 
-#: ../output.py:781
+#: ../output.py:812
 msgid "Removing for dependencies"
-msgstr "S'està esborrant per dependències"
+msgstr "S'està esborrant degut a les dependències"
+
+#: ../output.py:819 ../output.py:915
+msgid "Skipped (dependency problems)"
+msgstr "Ignorat degut a problemes de dependències:"
 
-#: ../output.py:817
+#: ../output.py:840
 msgid "Package"
 msgstr "Paquet"
 
-#: ../output.py:817
+#: ../output.py:840
 msgid "Arch"
 msgstr "Arq"
 
-#: ../output.py:818
+#: ../output.py:841
 msgid "Version"
 msgstr "Versió"
 
-#: ../output.py:818
+#: ../output.py:841
 msgid "Repository"
 msgstr "Repositori"
 
-#: ../output.py:819
+#: ../output.py:842
 msgid "Size"
 msgstr "Mida"
 
-#: ../output.py:830
+#: ../output.py:853
 #, python-format
 msgid ""
 "     replacing  %s.%s %s\n"
@@ -753,7 +758,7 @@ msgstr ""
 "     s'està reemplaçant  %s.%s %s\n"
 "\n"
 
-#: ../output.py:838
+#: ../output.py:861
 #, python-format
 msgid ""
 "\n"
@@ -770,27 +775,27 @@ msgstr ""
 "Actualitza %5.5s paquets         \n"
 "Esborra    %5.5s paquets         \n"
 
-#: ../output.py:886
+#: ../output.py:909
 msgid "Removed"
 msgstr "Esborrat"
 
-#: ../output.py:887
+#: ../output.py:910
 msgid "Dependency Removed"
 msgstr "Dependència esborrada"
 
-#: ../output.py:889
+#: ../output.py:912
 msgid "Dependency Installed"
 msgstr "Dependència instal·lada"
 
-#: ../output.py:891
+#: ../output.py:914
 msgid "Dependency Updated"
 msgstr "Dependència actualitzada"
 
-#: ../output.py:892
+#: ../output.py:916
 msgid "Replaced"
 msgstr "Reemplaçat"
 
-#: ../output.py:965
+#: ../output.py:989
 #, python-format
 msgid ""
 "\n"
@@ -801,81 +806,81 @@ msgstr ""
 "S'ha cancel·lat la descàrrega actual, %sinterromp (crtl-c) de nou%s en %s%s%"
 "s segons per a sortir.\n"
 
-#: ../output.py:975
+#: ../output.py:999
 msgid "user interrupt"
 msgstr "interrupció de l'usuari"
 
-#: ../output.py:991
+#: ../output.py:1015
 msgid "Total"
 msgstr "Total"
 
-#: ../output.py:1005
+#: ../output.py:1029
 msgid "installed"
 msgstr "instal·lat"
 
-#: ../output.py:1006
+#: ../output.py:1030
 msgid "updated"
 msgstr "actualitzat"
 
-#: ../output.py:1007
+#: ../output.py:1031
 msgid "obsoleted"
 msgstr "obsolet"
 
-#: ../output.py:1008
+#: ../output.py:1032
 msgid "erased"
 msgstr "esborrat"
 
-#: ../output.py:1012
+#: ../output.py:1036
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Paquet %s.%s %s:%s-%s passarà a ser %s"
 
-#: ../output.py:1019
+#: ../output.py:1043
 msgid "--> Running transaction check"
 msgstr "--> S'està executant la transacció de prova"
 
-#: ../output.py:1024
+#: ../output.py:1048
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr ""
 "--> Tornant a calcular la resolució de dependències amb els nous canvis."
 
-#: ../output.py:1029
+#: ../output.py:1053
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Ha finalitzat la resolució de dependències"
 
-#: ../output.py:1034
+#: ../output.py:1058
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> S'està processant la dependència %s per al paquet: %s"
 
-#: ../output.py:1039
+#: ../output.py:1063
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Dependència no resolta: %s"
 
-#: ../output.py:1045
+#: ../output.py:1069
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s"
 
-#: ../output.py:1048
+#: ../output.py:1072
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr ""
 "--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, "
 "espereu."
 
-#: ../output.py:1052
+#: ../output.py:1076
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr ""
 "---> S'està descarregant la capçalera per a %s per a empaquetar dins de la "
 "transacció de prova."
 
-#: ../yumcommands.py:40
+#: ../yumcommands.py:41
 msgid "You need to be root to perform this command."
 msgstr "Heu de ser root per a executar aquesta ordre."
 
-#: ../yumcommands.py:47
+#: ../yumcommands.py:48
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -897,7 +902,7 @@ msgstr ""
 "opció. \n"
 "No obstant, no teniu cap clau pública GPG instal·lada. Necessiteu "
 "descarregar\n"
-"les claus per als paquets paquets que desitdeu instal·lar i instal·lar-les.\n"
+"les claus per als paquets que desitgeu instal·lar i instal·lar-les.\n"
 "Podeu fer-ho executant l'ordre:\n"
 "    rpm --import clau.pública.gpg\n"
 "\n"
@@ -906,295 +911,312 @@ msgstr ""
 "per a un repositori en l'opció 'gpgkey' en la secció d'un repositori i yum \n"
 "la instal·larà per vosaltres.\n"
 "\n"
-"Per a més informació contacteu el vostre distribuidor o proveïdor de "
+"Per a més informació contacteu el vostre distribuÏdor o proveïdor de "
 "paquets.\n"
 
-#: ../yumcommands.py:67
+#: ../yumcommands.py:68
 #, python-format
 msgid "Error: Need to pass a list of pkgs to %s"
 msgstr "Error: es necessita passar una llista de paquets a %s"
 
-#: ../yumcommands.py:73
+#: ../yumcommands.py:74
 msgid "Error: Need an item to match"
 msgstr "Error: es necessita algun element per comparar"
 
-#: ../yumcommands.py:79
+#: ../yumcommands.py:80
 msgid "Error: Need a group or list of groups"
 msgstr "Error: es necessita un grup o una llista de grups"
 
-#: ../yumcommands.py:88
+#: ../yumcommands.py:89
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "Error: la neteja requereix una opció: %s"
 
-#: ../yumcommands.py:93
+#: ../yumcommands.py:94
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "Error: argument invàlid per a la neteja: %r"
 
-#: ../yumcommands.py:106
+#: ../yumcommands.py:107
 msgid "No argument to shell"
 msgstr "No hi ha arguments per a l'intèrpret d'ordres"
 
-#: ../yumcommands.py:109
+#: ../yumcommands.py:110
 #, python-format
 msgid "Filename passed to shell: %s"
 msgstr "Nom del fitxer passat a l'intèrpret d'ordres: %s"
 
-#: ../yumcommands.py:113
+#: ../yumcommands.py:114
 #, python-format
 msgid "File %s given as argument to shell does not exist."
 msgstr "El fitxer %s donat com a argument a l'intèrpret d'ordres no existeix."
 
-#: ../yumcommands.py:119
+#: ../yumcommands.py:120
 msgid "Error: more than one file given as argument to shell."
 msgstr ""
-"Error: s'ha donat més d'un fitxer com a arguments per a l'intèrpret d'ordres."
+"Error: s'ha donat més d'un fitxer com a argument per a l'intèrpret d'ordres."
 
-#: ../yumcommands.py:160
+#: ../yumcommands.py:161
 msgid "PACKAGE..."
 msgstr "PAQUET..."
 
-#: ../yumcommands.py:163
+#: ../yumcommands.py:164
 msgid "Install a package or packages on your system"
 msgstr "Instal·la un o més paquets al vostre sistema"
 
-#: ../yumcommands.py:172
+#: ../yumcommands.py:173
 msgid "Setting up Install Process"
 msgstr "S'està preparant el procés d'instal·lació"
 
-#: ../yumcommands.py:183
+#: ../yumcommands.py:184
 msgid "[PACKAGE...]"
 msgstr "[PAQUET...]"
 
-#: ../yumcommands.py:186
+#: ../yumcommands.py:187
 msgid "Update a package or packages on your system"
 msgstr "S'ha actualitzat un o més paquets al vostre sistema"
 
-#: ../yumcommands.py:194
+#: ../yumcommands.py:195
 msgid "Setting up Update Process"
 msgstr "S'està preparant el procés d'actualització"
 
-#: ../yumcommands.py:236
+#: ../yumcommands.py:237
 msgid "Display details about a package or group of packages"
 msgstr "Mostra detalls sobre un paquet o un grup de paquets"
 
 #. Output the packages:
-#: ../yumcommands.py:261
+#: ../yumcommands.py:262
 msgid "Installed Packages"
 msgstr "Paquets instal·lats"
 
-#: ../yumcommands.py:263
+#: ../yumcommands.py:264
 msgid "Available Packages"
 msgstr "Paquets disponibles"
 
-#: ../yumcommands.py:265
+#: ../yumcommands.py:266
 msgid "Extra Packages"
 msgstr "Paquets extra"
 
-#: ../yumcommands.py:267
+#: ../yumcommands.py:268
 msgid "Updated Packages"
 msgstr "Paquets actualitzats"
 
-#: ../yumcommands.py:274 ../yumcommands.py:281
+#: ../yumcommands.py:275 ../yumcommands.py:282 ../yumcommands.py:551
 msgid "Obsoleting Packages"
-msgstr "Paquets fets obsolets"
+msgstr "Paquets obsolets"
 
-#: ../yumcommands.py:283
+#: ../yumcommands.py:284
 msgid "Recently Added Packages"
 msgstr "Paquets recentment afegits"
 
-#: ../yumcommands.py:290
+#: ../yumcommands.py:291
 msgid "No matching Packages to list"
 msgstr "No hi ha paquets coincidents per llistar"
 
-#: ../yumcommands.py:304
+#: ../yumcommands.py:305
 msgid "List a package or groups of packages"
 msgstr "Llista un paquet o un grup de paquets"
 
-#: ../yumcommands.py:316
+#: ../yumcommands.py:317
 msgid "Remove a package or packages from your system"
 msgstr "Esborra un o més paquets del vostre sistema"
 
-#: ../yumcommands.py:324
+#: ../yumcommands.py:325
 msgid "Setting up Remove Process"
 msgstr "S'està preparant el procés d'esborrat"
 
-#: ../yumcommands.py:339
+#: ../yumcommands.py:340
 msgid "Setting up Group Process"
 msgstr "S'està preparant el procés de grup"
 
-#: ../yumcommands.py:345
+#: ../yumcommands.py:346
 msgid "No Groups on which to run command"
 msgstr "No hi ha cap grup on executar l'ordre"
 
-#: ../yumcommands.py:358
+#: ../yumcommands.py:359
 msgid "List available package groups"
 msgstr "Llista els grups de paquets disponibles"
 
-#: ../yumcommands.py:375
+#: ../yumcommands.py:376
 msgid "Install the packages in a group on your system"
 msgstr "Instal·la els paquets en un grup en el vostre sistema"
 
-#: ../yumcommands.py:397
+#: ../yumcommands.py:398
 msgid "Remove the packages in a group from your system"
 msgstr "Esborra els paquets en un grup en el vostre sistema"
 
-#: ../yumcommands.py:424
+#: ../yumcommands.py:425
 msgid "Display details about a package group"
 msgstr "Mostra detalls sobre un grup de paquets"
 
-#: ../yumcommands.py:448
+#: ../yumcommands.py:449
 msgid "Generate the metadata cache"
 msgstr "Genera les metadades de la memòria cau"
 
-#: ../yumcommands.py:454
+#: ../yumcommands.py:455
 msgid "Making cache files for all metadata files."
 msgstr ""
 "S'estan fent els fitxers de memòria cau per a tots els fitxers de metadades."
 
-#: ../yumcommands.py:455
+#: ../yumcommands.py:456
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Això pot trigar una estona depenent de la velocitat d'aquest ordinador"
 
-#: ../yumcommands.py:476
+#: ../yumcommands.py:477
 msgid "Metadata Cache Created"
 msgstr "S'han creat les metadades per a la memòria cau"
 
-#: ../yumcommands.py:490
+#: ../yumcommands.py:491
 msgid "Remove cached data"
 msgstr "S'han esborrat les dades de la memòria cau"
 
-#: ../yumcommands.py:511
+#: ../yumcommands.py:512
 msgid "Find what package provides the given value"
 msgstr "Troba quin paquet proporciona el valor donat"
 
-#: ../yumcommands.py:531
+#: ../yumcommands.py:532
 msgid "Check for available package updates"
 msgstr "Comprova si hi ha actualitzacions de paquets disponibles"
 
-#: ../yumcommands.py:556
+#: ../yumcommands.py:571
 msgid "Search package details for the given string"
 msgstr "Busca detalls del paquet per la cadena donada"
 
-#: ../yumcommands.py:562
+#: ../yumcommands.py:577
 msgid "Searching Packages: "
 msgstr "S'estan buscant paquets: "
 
-#: ../yumcommands.py:579
+#: ../yumcommands.py:594
 msgid "Update packages taking obsoletes into account"
 msgstr "Actualitza paquets tenint en compte els obsolets"
 
-#: ../yumcommands.py:588
+#: ../yumcommands.py:603
 msgid "Setting up Upgrade Process"
 msgstr "S'està preparant el procés d'actualització"
 
-#: ../yumcommands.py:602
+#: ../yumcommands.py:617
 msgid "Install a local RPM"
 msgstr "Instal·la un RPM local"
 
-#: ../yumcommands.py:611
+#: ../yumcommands.py:626
 msgid "Setting up Local Package Process"
 msgstr "S'està configurant el procés local de paquets"
 
-#: ../yumcommands.py:630
+#: ../yumcommands.py:645
 msgid "Determine which package provides the given dependency"
 msgstr "Determina quin paquet satisfà la dependència donada"
 
-#: ../yumcommands.py:633
+#: ../yumcommands.py:648
 msgid "Searching Packages for Dependency:"
 msgstr "S'estan buscant paquets per a la dependència:"
 
-#: ../yumcommands.py:647
+#: ../yumcommands.py:662
 msgid "Run an interactive yum shell"
 msgstr "Executa un intèrpret d'ordres interactiu de yum"
 
-#: ../yumcommands.py:653
+#: ../yumcommands.py:668
 msgid "Setting up Yum Shell"
 msgstr "S'està preparant l'intèrpret d'ordres de yum"
 
-#: ../yumcommands.py:671
+#: ../yumcommands.py:686
 msgid "List a package's dependencies"
 msgstr "Llista les dependències d'un paquet"
 
-#: ../yumcommands.py:677
+#: ../yumcommands.py:692
 msgid "Finding dependencies: "
 msgstr "S'estan trobant dependències: "
 
-#: ../yumcommands.py:693
+#: ../yumcommands.py:708
 msgid "Display the configured software repositories"
 msgstr "Mostra els repositoris de programari configurats"
 
-#: ../yumcommands.py:742
+#: ../yumcommands.py:756 ../yumcommands.py:769 ../yumcommands.py:770
 msgid "enabled"
 msgstr "habilitat"
 
-#: ../yumcommands.py:751
+#: ../yumcommands.py:765 ../yumcommands.py:768
 msgid "disabled"
 msgstr "deshabilitat"
 
-#: ../yumcommands.py:760
+#: ../yumcommands.py:777
 msgid "repo id"
 msgstr "id repo"
 
-#: ../yumcommands.py:761
+#: ../yumcommands.py:778
 msgid "repo name"
 msgstr "nom repo"
 
-#: ../yumcommands.py:761
+#: ../yumcommands.py:780
 msgid "status"
 msgstr "estat"
 
-#: ../yumcommands.py:764
+#: ../yumcommands.py:790
 msgid "Repo-id     : "
 msgstr "Id-repo         : "
 
-#: ../yumcommands.py:765
+#: ../yumcommands.py:791
 msgid "Repo-name   : "
 msgstr "Nom-repo        : "
 
-#: ../yumcommands.py:766
+#: ../yumcommands.py:792
 msgid "Repo-status : "
 msgstr "Estat-repo      : "
 
-#: ../yumcommands.py:768
+#: ../yumcommands.py:794
+
+msgid "Repo-revision: "
+msgstr "Repo-revisió    : "
+
+#: ../yumcommands.py:798
+msgid "Repo-tags   : "
+msgstr "Repo-etiquetes  : "
+
+#: ../yumcommands.py:804
+msgid "Repo-distro-tags: "
+msgstr "Repo-etiq-dist  : "
+
+#: ../yumcommands.py:809
 msgid "Repo-updated: "
 msgstr "Repo-actualitzat: "
 
-#: ../yumcommands.py:770
+#: ../yumcommands.py:811
 msgid "Repo-pkgs   : "
 msgstr "Paquets-repo    : "
 
-#: ../yumcommands.py:771
+#: ../yumcommands.py:812
 msgid "Repo-size   : "
 msgstr "Mida-repo       : "
 
-#: ../yumcommands.py:774
+#: ../yumcommands.py:819
 msgid "Repo-baseurl: "
 msgstr "URL-base-repo   : "
 
-#: ../yumcommands.py:778
+#: ../yumcommands.py:823
+msgid "Repo-metalink: "
+msgstr "Repo-metaenllaç : "
+
+#: ../yumcommands.py:826
 msgid "Repo-mirrors: "
 msgstr "Miralls-repo    : "
 
-#: ../yumcommands.py:782
+#: ../yumcommands.py:830
 msgid "Repo-exclude: "
 msgstr "Repo-exclou     : "
 
-#: ../yumcommands.py:786
+#: ../yumcommands.py:834
 msgid "Repo-include: "
 msgstr "Repo-inclou     : "
 
-#: ../yumcommands.py:812
+#: ../yumcommands.py:856
 msgid "Display a helpful usage message"
 msgstr "Mostra un missatge d'ajuda d'ús"
 
-#: ../yumcommands.py:846
+#: ../yumcommands.py:890
 #, python-format
 msgid "No help available for %s"
 msgstr "No hi ha ajuda disponible per a %s"
 
-#: ../yumcommands.py:851
+#: ../yumcommands.py:895
 msgid ""
 "\n"
 "\n"
@@ -1204,7 +1226,7 @@ msgstr ""
 "\n"
 "àlies: "
 
-#: ../yumcommands.py:853
+#: ../yumcommands.py:897
 msgid ""
 "\n"
 "\n"
@@ -1214,11 +1236,11 @@ msgstr ""
 "\n"
 "àlies: "
 
-#: ../yumcommands.py:882
+#: ../yumcommands.py:926
 msgid "Setting up Reinstall Process"
 msgstr "S'està preparant el procés de reinstal·lació"
 
-#: ../yumcommands.py:896
+#: ../yumcommands.py:940
 msgid "reinstall a package"
 msgstr "reinstal·la un paquet"
 
@@ -1289,201 +1311,201 @@ msgstr ""
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/depsolve.py:97
+#: ../yum/depsolve.py:99
 msgid "Setting up TransactionSets before config class is up"
 msgstr ""
 "S'està configurant TransactionSets abans que la classe de configuració "
 "estigui iniciada"
 
-#: ../yum/depsolve.py:148
+#: ../yum/depsolve.py:150
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "Tsflag invàlid en el fitxer de configuració: %s"
 
-#: ../yum/depsolve.py:159
+#: ../yum/depsolve.py:161
 #, python-format
 msgid "Searching pkgSack for dep: %s"
 msgstr "S'està buscant pkgSack per a la dependència: %s"
 
-#: ../yum/depsolve.py:182
+#: ../yum/depsolve.py:184
 #, python-format
 msgid "Potential match for %s from %s"
 msgstr "Coincidència potencial per a %s de %s"
 
-#: ../yum/depsolve.py:190
+#: ../yum/depsolve.py:192
 #, python-format
 msgid "Matched %s to require for %s"
 msgstr "La coincidència %s es requereix per a %s"
 
-#: ../yum/depsolve.py:231
+#: ../yum/depsolve.py:233
 #, python-format
 msgid "Member: %s"
 msgstr "Membre: %s"
 
-#: ../yum/depsolve.py:245 ../yum/depsolve.py:732
+#: ../yum/depsolve.py:247 ../yum/depsolve.py:734
 #, python-format
 msgid "%s converted to install"
 msgstr "%s convertits per a instal·lar"
 
-#: ../yum/depsolve.py:252
+#: ../yum/depsolve.py:254
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "S'està afegint el paquet %s en mode %s"
 
-#: ../yum/depsolve.py:262
+#: ../yum/depsolve.py:264
 #, python-format
 msgid "Removing Package %s"
 msgstr "S'està esborrant el paquet %s"
 
-#: ../yum/depsolve.py:273
+#: ../yum/depsolve.py:275
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s requereix: %s"
 
-#: ../yum/depsolve.py:331
+#: ../yum/depsolve.py:333
 msgid "Needed Require has already been looked up, cheating"
 msgstr ""
 "El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
 
-#: ../yum/depsolve.py:341
+#: ../yum/depsolve.py:343
 #, python-format
 msgid "Needed Require is not a package name. Looking up: %s"
 msgstr "El requeriment necessari no és un nom de paquet. S'està buscant: %s"
 
-#: ../yum/depsolve.py:348
+#: ../yum/depsolve.py:350
 #, python-format
 msgid "Potential Provider: %s"
 msgstr "Proveïdor potencial: %s"
 
-#: ../yum/depsolve.py:371
+#: ../yum/depsolve.py:373
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
 msgstr "El mode és %s per al proveïdor de %s: %s"
 
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:377
 #, python-format
 msgid "Mode for pkg providing %s: %s"
 msgstr "Mode per al paquet que proporciona %s: %s"
 
-#: ../yum/depsolve.py:379
+#: ../yum/depsolve.py:381
 #, python-format
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar"
 
-#: ../yum/depsolve.py:391
+#: ../yum/depsolve.py:393
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr ""
 "TSINFO: S'està marcant com a obsolet %s amb %s per resoldre dependències."
 
-#: ../yum/depsolve.py:394
+#: ../yum/depsolve.py:396
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: S'està actualitzant %s per a resoldre dependències."
 
-#: ../yum/depsolve.py:402
+#: ../yum/depsolve.py:404
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "No es pot trobar un camí d'actualització de dependències per a: %s"
 
-#: ../yum/depsolve.py:412
+#: ../yum/depsolve.py:414
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "No es pot resoldre el requeriment %s per a %s"
 
-#: ../yum/depsolve.py:435
+#: ../yum/depsolve.py:437
 #, python-format
 msgid "Quick matched %s to require for %s"
 msgstr "La coincidència %s es requereix per a %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:477
+#: ../yum/depsolve.py:479
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr ""
 "%s es troba en els paquets proporcionats però ja es troba instal·lat, s'està "
 "esborrant."
 
-#: ../yum/depsolve.py:492
+#: ../yum/depsolve.py:494
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr ""
 "El paquet potencial que resol dependències %s té una instància nova a ts"
 
-#: ../yum/depsolve.py:503
+#: ../yum/depsolve.py:505
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr ""
 "El paquet potencial que resol dependències %s té una nova instància "
 "insta·lada."
 
-#: ../yum/depsolve.py:511 ../yum/depsolve.py:560
+#: ../yum/depsolve.py:513 ../yum/depsolve.py:562
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "La dependència que falta: %s es necessita per al paquet %s"
 
-#: ../yum/depsolve.py:524
+#: ../yum/depsolve.py:526
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s ja es troba en ts, s'està ometent"
 
-#: ../yum/depsolve.py:570
+#: ../yum/depsolve.py:572
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: S'està marcant %s com a actualització per a %s"
 
-#: ../yum/depsolve.py:578
+#: ../yum/depsolve.py:580
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: S'està marcant %s com a instal·lació per a %s"
 
-#: ../yum/depsolve.py:670 ../yum/depsolve.py:750
+#: ../yum/depsolve.py:672 ../yum/depsolve.py:752
 msgid "Success - empty transaction"
 msgstr "Èxit - transacció buida"
 
-#: ../yum/depsolve.py:709 ../yum/depsolve.py:722
+#: ../yum/depsolve.py:711 ../yum/depsolve.py:724
 msgid "Restarting Loop"
 msgstr "S'està recomençant el bucle"
 
-#: ../yum/depsolve.py:738
+#: ../yum/depsolve.py:740
 msgid "Dependency Process ending"
 msgstr "Està acabant el procés de dependències"
 
-#: ../yum/depsolve.py:744
+#: ../yum/depsolve.py:746
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s de %s té problemes resolent dependències"
 
-#: ../yum/depsolve.py:751
+#: ../yum/depsolve.py:753
 msgid "Success - deps resolved"
 msgstr "Èxit - dependències resoltes"
 
-#: ../yum/depsolve.py:765
+#: ../yum/depsolve.py:767
 #, python-format
 msgid "Checking deps for %s"
 msgstr "S'estan comprobant les dependències per a %s"
 
-#: ../yum/depsolve.py:848
+#: ../yum/depsolve.py:850
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "s'està buscant %s com a requeriment de %s"
 
-#: ../yum/depsolve.py:988
+#: ../yum/depsolve.py:990
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "S'està executant compare_providers() per a %s"
 
-#: ../yum/depsolve.py:1016 ../yum/depsolve.py:1022
+#: ../yum/depsolve.py:1018 ../yum/depsolve.py:1024
 #, python-format
 msgid "better arch in po %s"
 msgstr "millor arq en el po %s"
 
-#: ../yum/depsolve.py:1061
+#: ../yum/depsolve.py:1063
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s fa obsolet %s"
 
-#: ../yum/depsolve.py:1077
+#: ../yum/depsolve.py:1079
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1492,116 +1514,116 @@ msgstr ""
 "archdist ha comparat %s amb %s a %s\n"
 "  Ha guanyat: %s"
 
-#: ../yum/depsolve.py:1084
+#: ../yum/depsolve.py:1086
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "rpm font comú %s i %s"
 
-#: ../yum/depsolve.py:1090
+#: ../yum/depsolve.py:1092
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "prefix comú de %s entre %s i %s"
 
-#: ../yum/depsolve.py:1098
+#: ../yum/depsolve.py:1100
 #, python-format
 msgid "Best Order: %s"
 msgstr "Millor ordre: %s"
 
-#: ../yum/__init__.py:134
+#: ../yum/__init__.py:135
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigsetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:314
+#: ../yum/__init__.py:315
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "Falta el nom del repositori %r en la configuració, s'utilitzarà l'id"
 
-#: ../yum/__init__.py:352
+#: ../yum/__init__.py:353
 msgid "plugins already initialised"
 msgstr "els connectors ja estan inicialitzats"
 
-#: ../yum/__init__.py:359
+#: ../yum/__init__.py:360
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRpmDBSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:369
+#: ../yum/__init__.py:370
 msgid "Reading Local RPMDB"
 msgstr "S'està llegint un RPMDB local"
 
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:388
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:407
+#: ../yum/__init__.py:408
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() desapareixerà en una versió futura de Yum.\n"
 
-#: ../yum/__init__.py:424
+#: ../yum/__init__.py:425
 msgid "Setting up Package Sacks"
 msgstr "S'estan configurant els sacs de paquets"
 
-#: ../yum/__init__.py:467
+#: ../yum/__init__.py:468
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "l'objecte repositori per al repositori %s no té un mètode _resetSack\n"
 
-#: ../yum/__init__.py:468
+#: ../yum/__init__.py:469
 msgid "therefore this repo cannot be reset.\n"
 msgstr "Aquest repositori no es pot reiniciar.\n"
 
-#: ../yum/__init__.py:473
+#: ../yum/__init__.py:474
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:485
+#: ../yum/__init__.py:486
 msgid "Building updates object"
 msgstr "S'està construint l'objecte d'actualitzacions"
 
-#: ../yum/__init__.py:516
+#: ../yum/__init__.py:517
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:540
+#: ../yum/__init__.py:541
 msgid "Getting group metadata"
 msgstr "S'estan obtenint les metadades del grup"
 
-#: ../yum/__init__.py:566
+#: ../yum/__init__.py:567
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "S'està afegint el fitxer del grup des del repositori: %s"
 
-#: ../yum/__init__.py:575
+#: ../yum/__init__.py:576
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "No s'ha pogut afegir el fitxer dels grups des del repositori: %s - %s"
 
-#: ../yum/__init__.py:581
+#: ../yum/__init__.py:582
 msgid "No Groups Available in any repository"
 msgstr "No hi ha cap grup disponible en cap repositori"
 
-#: ../yum/__init__.py:631
+#: ../yum/__init__.py:632
 msgid "Importing additional filelist information"
 msgstr "S'està important informació adicional de la llista de fitxers"
 
-#: ../yum/__init__.py:639
+#: ../yum/__init__.py:641
 msgid ""
-"There are unfinished transactions remaining. You mightconsider running yum-"
+"There are unfinished transactions remaining. You might consider running yum-"
 "complete-transaction first to finish them."
 msgstr ""
-"Encara hi ha transaccions sense acabar. Hauríeu de considerar executar "
-"yum-complete-transaction abans per acabar-ho."
+"Encara hi ha transaccions sense acabar. Hauríeu de considerar executar yum-"
+"complete-transaction abans per acabar-les."
 
-#: ../yum/__init__.py:689
+#: ../yum/__init__.py:702
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Intent %i d'omissió dels trencats"
 
-#: ../yum/__init__.py:712
+#: ../yum/__init__.py:751
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "L'omisió dels trencats ha necessitat %i intents"
 
-#: ../yum/__init__.py:713
+#: ../yum/__init__.py:752
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1609,93 +1631,93 @@ msgstr ""
 "\n"
 "Paquets omesos degut a problemes de dependències:"
 
-#: ../yum/__init__.py:717
+#: ../yum/__init__.py:756
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s des de %s"
 
-#: ../yum/__init__.py:802
+#: ../yum/__init__.py:878
 msgid ""
 "Warning: scriptlet or other non-fatal errors occurred during transaction."
 msgstr ""
 "Avís: ha fallat l'scriptlet o s'han produït altre tipus d'errors no fatals "
 "durant la transacció."
 
-#: ../yum/__init__.py:818
+#: ../yum/__init__.py:894
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "No s'ha pogut esborrar el fitxer de transaccions %s"
 
-#: ../yum/__init__.py:859
+#: ../yum/__init__.py:935
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "s'està excloent per cost: %s de %s"
 
-#: ../yum/__init__.py:890
+#: ../yum/__init__.py:966
 msgid "Excluding Packages in global exclude list"
 msgstr "S'estan excloent paquets en la llista global d'exclusió"
 
-#: ../yum/__init__.py:892
+#: ../yum/__init__.py:968
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "S'estan excloent paquets de %s"
 
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:995
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "S'està reduint %s únicament a paquets inclosos."
 
-#: ../yum/__init__.py:925
+#: ../yum/__init__.py:1001
 #, python-format
 msgid "Keeping included package %s"
 msgstr "S'està mantenint el paquet inclòs %s"
 
-#: ../yum/__init__.py:931
+#: ../yum/__init__.py:1007
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "S'està esborrant el paquet sense coincidències %s"
 
-#: ../yum/__init__.py:934
+#: ../yum/__init__.py:1010
 msgid "Finished"
 msgstr "Finalitzat"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:964
+#: ../yum/__init__.py:1040
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "No s'ha pogut comprovar si el PID %s es troba actiu"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:968
+#: ../yum/__init__.py:1044
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Bloqueig existent %s: una altra còpia s'està executant amb pid %s."
 
-#: ../yum/__init__.py:1039
+#: ../yum/__init__.py:1115
 msgid "Package does not match intended download"
 msgstr "El paquet no coincideix amb la descàrrega intentada"
 
-#: ../yum/__init__.py:1054
+#: ../yum/__init__.py:1130
 msgid "Could not perform checksum"
 msgstr "No s'ha pogut realitzar la suma de verificació"
 
-#: ../yum/__init__.py:1057
+#: ../yum/__init__.py:1133
 msgid "Package does not match checksum"
 msgstr "No coincideix la suma de verificació del paquet"
 
-#: ../yum/__init__.py:1100
+#: ../yum/__init__.py:1176
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr ""
 "la suma de verificació del paquet falla però l'ús de memòria cau està "
 "habilitat per a %s"
 
-#: ../yum/__init__.py:1103
+#: ../yum/__init__.py:1179 ../yum/__init__.py:1207
 #, python-format
 msgid "using local copy of %s"
 msgstr "s'està utilitzant la còpia local de %s"
 
-#: ../yum/__init__.py:1130
+#: ../yum/__init__.py:1221
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1706,11 +1728,11 @@ msgstr ""
 "    * lliure    %s\n"
 "    * necessari %s"
 
-#: ../yum/__init__.py:1177
+#: ../yum/__init__.py:1268
 msgid "Header is not complete."
 msgstr "La capçalera no està completa."
 
-#: ../yum/__init__.py:1217
+#: ../yum/__init__.py:1308
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1718,62 +1740,62 @@ msgstr ""
 "La capçalera no es troba en la memòria cau local i està habilitat el mode de "
 "només memòria cau. No es pot descarregar %s"
 
-#: ../yum/__init__.py:1272
+#: ../yum/__init__.py:1363
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "La clau pública per a %s no està instal·lada"
 
-#: ../yum/__init__.py:1276
+#: ../yum/__init__.py:1367
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Hi ha hagut un problema obrint el paquet %s"
 
-#: ../yum/__init__.py:1284
+#: ../yum/__init__.py:1375
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "La clau pública per a %s no és de confiança"
 
-#: ../yum/__init__.py:1288
+#: ../yum/__init__.py:1379
 #, python-format
 msgid "Package %s is not signed"
 msgstr "El paquet %s no està signat"
 
-#: ../yum/__init__.py:1326
+#: ../yum/__init__.py:1417
 #, python-format
 msgid "Cannot remove %s"
 msgstr "No es pot esborrar %s"
 
-#: ../yum/__init__.py:1330
+#: ../yum/__init__.py:1421
 #, python-format
 msgid "%s removed"
 msgstr "S'ha esborrat %s"
 
-#: ../yum/__init__.py:1367
+#: ../yum/__init__.py:1458
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "No es pot esborrar %s fitxer %s"
 
-#: ../yum/__init__.py:1371
+#: ../yum/__init__.py:1462
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s fitxer %s esborrat"
 
-#: ../yum/__init__.py:1373
+#: ../yum/__init__.py:1464
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s fitxers esborrats"
 
-#: ../yum/__init__.py:1435
+#: ../yum/__init__.py:1526
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Hi ha més d'una coincidència idèntica en el sac per a %s"
 
-#: ../yum/__init__.py:1441
+#: ../yum/__init__.py:1532
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "No hi ha coincidències %s.%s-%s:%s-%s de l'actualització"
 
-#: ../yum/__init__.py:1649
+#: ../yum/__init__.py:1740
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
@@ -1781,179 +1803,180 @@ msgstr ""
 "searchPackages() desapareixerà en una futura versió de "
 "Yum.                      Useu searchGenerator(). \n"
 
-#: ../yum/__init__.py:1687
+#: ../yum/__init__.py:1778
 #, python-format
 msgid "Searching %d packages"
 msgstr "S'estan buscant %d paquets"
 
-#: ../yum/__init__.py:1691
+#: ../yum/__init__.py:1782
 #, python-format
 msgid "searching package %s"
 msgstr "s'està buscant el paquet %s"
 
-#: ../yum/__init__.py:1703
+#: ../yum/__init__.py:1794
 msgid "searching in file entries"
 msgstr "s'està buscant en les entrades de fitxers"
 
-#: ../yum/__init__.py:1710
+#: ../yum/__init__.py:1801
 msgid "searching in provides entries"
 msgstr "s'està buscant en les entrades proporcionades"
 
-#: ../yum/__init__.py:1743
+#: ../yum/__init__.py:1834
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Proporciona-coincideix: %s"
 
-#: ../yum/__init__.py:1792
+#: ../yum/__init__.py:1883
 msgid "No group data available for configured repositories"
 msgstr "No hi ha dades de grup disponible en cap dels repositoris configurats"
 
-#: ../yum/__init__.py:1818 ../yum/__init__.py:1837 ../yum/__init__.py:1868
-#: ../yum/__init__.py:1874 ../yum/__init__.py:1947 ../yum/__init__.py:1951
+#: ../yum/__init__.py:1909 ../yum/__init__.py:1928 ../yum/__init__.py:1959
+#: ../yum/__init__.py:1965 ../yum/__init__.py:2038 ../yum/__init__.py:2042
 #, python-format
 msgid "No Group named %s exists"
 msgstr "No existeix cap grup anomenat %s"
 
-#: ../yum/__init__.py:1849 ../yum/__init__.py:1964
+#: ../yum/__init__.py:1940 ../yum/__init__.py:2055
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "el paquet %s no estava marcat en el grup %s"
 
-#: ../yum/__init__.py:1896
+#: ../yum/__init__.py:1987
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "S'està afegint el paquet %s del grup %s"
 
-#: ../yum/__init__.py:1900
+#: ../yum/__init__.py:1991
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "No hi ha cap paquet anomenat %s disponible per a ser instal·lat"
 
-#: ../yum/__init__.py:1989
+#: ../yum/__init__.py:2080
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "No s'ha pogut trobar la tupla de paquets %s al sac de paquets"
 
-#: ../yum/__init__.py:2004
+#: ../yum/__init__.py:2095
 msgid ""
 "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr ""
-"getInstalledPackageObject() desapareixarà, useu self.rpmdb.searchPkgTuple().\n"
+"getInstalledPackageObject() desapareixarà, useu self.rpmdb.searchPkgTuple"
+"().\n"
 
-#: ../yum/__init__.py:2056 ../yum/__init__.py:2099
+#: ../yum/__init__.py:2147 ../yum/__init__.py:2190
 msgid "Invalid versioned dependency string, try quoting it."
 msgstr ""
 "La cadena de versió de dependència és invàlida, proveu-ho entre cometes."
 
-#: ../yum/__init__.py:2058 ../yum/__init__.py:2101
+#: ../yum/__init__.py:2149 ../yum/__init__.py:2192
 msgid "Invalid version flag"
 msgstr "Versió de flag invàlida"
 
-#: ../yum/__init__.py:2073 ../yum/__init__.py:2077
+#: ../yum/__init__.py:2164 ../yum/__init__.py:2168
 #, python-format
 msgid "No Package found for %s"
 msgstr "No s'ha trobat cap paquet per a %s"
 
-#: ../yum/__init__.py:2276
+#: ../yum/__init__.py:2367
 msgid "Package Object was not a package object instance"
 msgstr "L'objecte paquet no era una instància d'objecte paquet"
 
-#: ../yum/__init__.py:2280
+#: ../yum/__init__.py:2371
 msgid "Nothing specified to install"
 msgstr "No hi ha res especificat per a instal·lar"
 
 #. only one in there
-#: ../yum/__init__.py:2298
+#: ../yum/__init__.py:2389
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr ""
 "S'està verificant si hi ha un proveïdor virtual o un fitxer proveïdor per a %"
 "s"
 
-#: ../yum/__init__.py:2304 ../yum/__init__.py:2680
+#: ../yum/__init__.py:2395 ../yum/__init__.py:2777
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "No hi ha cap coincidència per a l'argument: %s"
 
-#: ../yum/__init__.py:2370
+#: ../yum/__init__.py:2461
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "El paquet %s es troba instal·lat però no és disponible"
 
-#: ../yum/__init__.py:2373
+#: ../yum/__init__.py:2464
 msgid "No package(s) available to install"
 msgstr "No hi ha cap paquet disponible per a instal·lar"
 
-#: ../yum/__init__.py:2385
+#: ../yum/__init__.py:2476
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "El paquet: %s  - ja està en la transacció"
 
-#: ../yum/__init__.py:2398
+#: ../yum/__init__.py:2489
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "El paquet %s ja es troba instal·lat i en l'última versió."
 
-#: ../yum/__init__.py:2405
+#: ../yum/__init__.py:2496
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr ""
 "El paquet coincident %s ja es troba instal·lat. S'està buscant una "
 "actualització."
 
-#: ../yum/__init__.py:2415
+#: ../yum/__init__.py:2506
 #, python-format
 msgid "Package %s is obsoleted by %s, trying to install %s instead"
 msgstr "El paquet %s és obsolet degut a %s, es provarà d'instal·lar %s"
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2485
+#: ../yum/__init__.py:2576
 msgid "Updating Everything"
 msgstr "S'està actualitzant tot"
 
-#: ../yum/__init__.py:2497 ../yum/__init__.py:2602 ../yum/__init__.py:2613
-#: ../yum/__init__.py:2635
+#: ../yum/__init__.py:2588 ../yum/__init__.py:2693 ../yum/__init__.py:2704
+#: ../yum/__init__.py:2726
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "No s'actualitzarà el paquet obsolet: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2593
+#: ../yum/__init__.py:2684
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "El paquet és obsolet: %s.%s. %s:%s-%s"
 
-#: ../yum/__init__.py:2616 ../yum/__init__.py:2638
+#: ../yum/__init__.py:2707 ../yum/__init__.py:2729
 #, python-format
 msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
 msgstr "No s'actualitzarà el paquet actualitzat: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2677
+#: ../yum/__init__.py:2774
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2693
+#: ../yum/__init__.py:2790
 msgid "No package matched to remove"
 msgstr "No hi ha cap paquet coincident per a esborrar"
 
-#: ../yum/__init__.py:2727
+#: ../yum/__init__.py:2824
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "No es pot obrir el fitxer %s. S'ometrà."
 
-#: ../yum/__init__.py:2730
+#: ../yum/__init__.py:2827
 #, python-format
 msgid "Examining %s: %s"
 msgstr "S'està examinant %s: %s"
 
-#: ../yum/__init__.py:2738
+#: ../yum/__init__.py:2835
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
 msgstr ""
 "No s'ha pogut afegir el paquet %s a la transacció. No és una arquitectura "
 "compatible: %s"
 
-#: ../yum/__init__.py:2746
+#: ../yum/__init__.py:2843
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -1962,81 +1985,81 @@ msgstr ""
 "El paquet %s no està instal·lat; no es pot actualitzar. Executa yum install "
 "per a instal·lar-lo."
 
-#: ../yum/__init__.py:2779
+#: ../yum/__init__.py:2876
 #, python-format
 msgid "Excluding %s"
 msgstr "S'està excloent %s"
 
-#: ../yum/__init__.py:2784
+#: ../yum/__init__.py:2881
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "S'està marcant %s per a ser instal·lat"
 
-#: ../yum/__init__.py:2790
+#: ../yum/__init__.py:2887
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "S'està marcant %s com a actualització de %s"
 
-#: ../yum/__init__.py:2797
+#: ../yum/__init__.py:2894
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s no actualitza el paquet instal·lat."
 
-#: ../yum/__init__.py:2815
+#: ../yum/__init__.py:2912
 msgid "Problem in reinstall: no package matched to remove"
 msgstr ""
 "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a esborrar"
 
-#: ../yum/__init__.py:2826
+#: ../yum/__init__.py:2923
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "El paquet %s permet múltiples instal·lacions, s'està ometent"
 
-#: ../yum/__init__.py:2833
+#: ../yum/__init__.py:2930
 msgid "Problem in reinstall: no package matched to install"
 msgstr ""
 "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a "
 "instal·lar"
 
-#: ../yum/__init__.py:2868
+#: ../yum/__init__.py:2965
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "S'està recuperant la clau GPG des de %s"
 
-#: ../yum/__init__.py:2874
+#: ../yum/__init__.py:2985
 msgid "GPG key retrieval failed: "
 msgstr "La recuperació de la clau GPG ha fallat: "
 
-#: ../yum/__init__.py:2885
+#: ../yum/__init__.py:2996
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr "L'ànalisi de la clau GPG ha fallat: la clau no té el valor %s"
 
-#: ../yum/__init__.py:2917
+#: ../yum/__init__.py:3028
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "La clau GPG de %s (0x%s) ja està instal·lada"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:2922 ../yum/__init__.py:2984
+#: ../yum/__init__.py:3033 ../yum/__init__.py:3095
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "S'està important la clau GPG 0x%s \"%s\" des de %s"
 
-#: ../yum/__init__.py:2939
+#: ../yum/__init__.py:3050
 msgid "Not installing key"
 msgstr "No s'està instal·lant la clau"
 
-#: ../yum/__init__.py:2945
+#: ../yum/__init__.py:3056
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "L'importació de la clau ha fallat (codi %d)"
 
-#: ../yum/__init__.py:2946 ../yum/__init__.py:3005
+#: ../yum/__init__.py:3057 ../yum/__init__.py:3116
 msgid "Key imported successfully"
 msgstr "La clau s'ha importat amb èxit"
 
-#: ../yum/__init__.py:2951 ../yum/__init__.py:3010
+#: ../yum/__init__.py:3062 ../yum/__init__.py:3121
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -2048,73 +2071,73 @@ msgstr ""
 "Comproveu que les URL de clau correctes estan configurades per a aquest "
 "repositori."
 
-#: ../yum/__init__.py:2960
+#: ../yum/__init__.py:3071
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "La importació de claus no ha ajudat, eren claus incorrectes?"
 
-#: ../yum/__init__.py:2979
+#: ../yum/__init__.py:3090
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "La clau GPG a %s (0x%s) ja ha estat importada"
 
-#: ../yum/__init__.py:2999
+#: ../yum/__init__.py:3110
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "No s'està instal·lant la clau per al repositori %s"
 
-#: ../yum/__init__.py:3004
+#: ../yum/__init__.py:3115
 msgid "Key import failed"
 msgstr "Ha fallat la importació de la clau"
 
-#: ../yum/__init__.py:3095
+#: ../yum/__init__.py:3206
 msgid "Unable to find a suitable mirror."
 msgstr "No s'ha pogut trobar un servidor rèplica vàlid."
 
-#: ../yum/__init__.py:3097
+#: ../yum/__init__.py:3208
 msgid "Errors were encountered while downloading packages."
 msgstr "S'han trobat errors descarregant paquets."
 
-#: ../yum/__init__.py:3161
+#: ../yum/__init__.py:3272
 msgid "Test Transaction Errors: "
 msgstr "Errors en la transacció de prova: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:199
+#: ../yum/plugins.py:201
 msgid "Loaded plugins: "
 msgstr "Connectors carregats: "
 
-#: ../yum/plugins.py:213 ../yum/plugins.py:219
+#: ../yum/plugins.py:215 ../yum/plugins.py:221
 #, python-format
 msgid "No plugin match for: %s"
 msgstr "No hi ha cap connector que coincideixi amb: %s"
 
-#: ../yum/plugins.py:249
+#: ../yum/plugins.py:251
 #, python-format
 msgid "\"%s\" plugin is disabled"
 msgstr "El connector \"%s\" està deshabilitat"
 
 #. Give full backtrace:
-#: ../yum/plugins.py:261
+#: ../yum/plugins.py:263
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "No s'ha pogut importar el connector «%s»"
 
-#: ../yum/plugins.py:268
+#: ../yum/plugins.py:270
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "El connector \"%s\" no especifica la versió de l'API requerida."
 
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:275
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "El connector \"%s\" requereix l'API %s. L'API disponible és %s"
 
-#: ../yum/plugins.py:306
+#: ../yum/plugins.py:308
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "S'està carregant el connector \"%s\""
 
-#: ../yum/plugins.py:313
+#: ../yum/plugins.py:315
 #, python-format
 msgid ""
 "Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -2122,19 +2145,19 @@ msgstr ""
 "Existeixen dos o més connectors amb el mateix nom \"%s\" en el camí de cerca "
 "de connectors"
 
-#: ../yum/plugins.py:333
+#: ../yum/plugins.py:335
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "No s'ha trobat el fitxer de configuració %s"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:336
+#: ../yum/plugins.py:338
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "No s'ha pogut trobar un fitxer de configuració per al connector %s"
 
-#: ../yum/plugins.py:490
+#: ../yum/plugins.py:492
 msgid "registration of commands not supported"
 msgstr "l'enregistrament d'ordres no està suportat"
 
commit 37c3641f8e4313748ac22ace9b1a0a1377a2734b
Merge: 6b3e588... 432c777...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Tue Nov 4 17:43:09 2008 -0500

    Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X
    
    * 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum:
      Add bigger doc comments to utf8_width_chop and utf8_width_full
      check-update -v lists obsoleted pkgs too, related to 462999

commit 6b3e5888bab0b56d57b72924d6d05e34f5eb76b7
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Tue Nov 4 17:42:27 2008 -0500

    make sure the bools in the xml output of groups are lowercase b/c relaxng is fairly retarded.

diff --git a/yum/comps.py b/yum/comps.py
index ee9f187..f5af0bd 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -247,8 +247,8 @@ class Group(CompsObj):
    <id>%s</id>
    <default>%s</default>
    <uservisible>%s</uservisible>
-   <display_order>%s</display_order>\n""" % (self.groupid, str(self.default), 
-                                  str(self.user_visible), self.display_order)
+   <display_order>%s</display_order>\n""" % (self.groupid, str(self.default).lower(), 
+                                  str(self.user_visible).lower(), self.display_order)
    
         if self.langonly:
             msg += """   <langonly>%s</langonly>""" % self.langonly
commit 432c7778384bf9bef4eb2f386ebcc608a598b4d7
Author: James Antill <james at and.org>
Date:   Mon Nov 3 17:01:00 2008 -0500

    Add bigger doc comments to utf8_width_chop and utf8_width_full

diff --git a/yum/i18n.py b/yum/i18n.py
index b1632ca..2d50e74 100755
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -213,7 +213,9 @@ def utf8_width(msg):
 
 def utf8_width_chop(msg, chop=None):
     """ Return the textual width of a utf8 string, chopping it to a specified
-        value. """
+        value. This is what you want to use instead of %.*s, as it does the
+        "right" thing with regard to utf-8 sequences. Eg.
+        "%.*s" % (10, msg)   <= becomes => "%s" % (utf8_width_chop(msg, 10)) """
 
     if chop is None or utf8_width(msg) <= chop:
         return utf8_width(msg), msg
@@ -241,7 +243,17 @@ def utf8_width_chop(msg, chop=None):
 
 def utf8_width_fill(msg, fill, chop=None, left=True):
     """ Expand a utf8 msg to a specified "width" or chop to same.
-        Expansion can be left or right. """
+        Expansion can be left or right. This is what you want to use instead of
+        %*.*s, as it does the "right" thing with regard to utf-8 sequences.
+        Eg.
+        "%-*.*s" % (10, 20, msg)
+           <= becomes =>
+        "%s" % (utf8_width_fill(msg, 10, 20)).
+
+        "%20.10s" % (msg)
+           <= becomes =>
+        "%s" % (utf8_width_fill(msg, 20, 10, left=False)).
+        """
     passed_msg = msg
     width, msg = utf8_width_chop(msg, chop)
 
commit d5ff8d3f3f8017de3d8d98d24356c9d65f80f588
Author: James Antill <james at and.org>
Date:   Mon Nov 3 10:16:33 2008 -0500

    check-update -v lists obsoleted pkgs too, related to 462999

diff --git a/yumcommands.py b/yumcommands.py
index 7b0214f..6766593 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -536,11 +536,25 @@ class CheckUpdateCommand(YumCommand):
         result = 0
         try:
             ypl = base.returnPkgLists(extcmds)
+            if base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
+                typl = base.returnPkgLists(['obsoletes'])
+                ypl.obsoletes = typl.obsoletes
+                ypl.obsoletesTuples = typl.obsoletesTuples
+
             columns = _list_cmd_calc_columns(base, ypl)
             if len(ypl.updates) > 0:
                 base.listPkgs(ypl.updates, '', outputType='list',
                               columns=columns)
                 result = 100
+            if len(ypl.obsoletes) > 0: # This only happens in verbose mode
+                rop = [0, '']
+                print _('Obsoleting Packages')
+                # The tuple is (newPkg, oldPkg) ... so sort by new
+                for obtup in sorted(ypl.obsoletesTuples,
+                                    key=operator.itemgetter(0)):
+                    base.updatesObsoletesList(obtup, 'obsoletes',
+                                              columns=columns)
+                result = 100
         except yum.Errors.YumBaseError, e:
             return 1, [str(e)]
         else:
commit 809f033c400b124668f74b44834cf71a76a4fe13
Author: James Antill <james at and.org>
Date:   Sun Nov 2 01:25:11 2008 -0400

    Fix stupid typo in port of utf8_width, all 2 pair sequences were seen as bad

diff --git a/yum/i18n.py b/yum/i18n.py
index 27dcc62..b1632ca 100755
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -165,8 +165,8 @@ def __utf8_iter_ucs(msg):
             yield (byte0, 1)
         elif (byte0 & 0xe0) == 0xc0: # 110XXXXx 10xxxxxx
             byte1 = uiter.next()
-            if (((byte0 & 0xc0) != 0x80) or 
-                ((byte1 & 0xfe) == 0xc0)):                          # overlong?
+            if (((byte1 & 0xc0) != 0x80) or
+                ((byte0 & 0xfe) == 0xc0)):                          # overlong?
                 yield (None, 2)
                 return
             yield ((((byte0 & 0x1f) << 6) | (byte1 & 0x3f)), 2)
commit 523e8f7c8332bb1e6ee3925cc0d0b61d2750c12f
Author: James Antill <james at and.org>
Date:   Sun Nov 2 01:12:23 2008 -0400

    Make the width of enabled/disable in repolist, correct for i18n

diff --git a/yumcommands.py b/yumcommands.py
index 66468ec..7b0214f 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -29,7 +29,7 @@ import locale
 import fnmatch
 import time
 from yum.misc import to_unicode
-from yum.i18n import utf8_width_fill
+from yum.i18n import utf8_width, utf8_width_fill
 
 def checkRootUID(base):
     """
@@ -751,6 +751,9 @@ class RepoListCommand(YumCommand):
                 ui_enabled = dhibeg + _('disabled') + hiend
                 ui_num     = ""
                 ui_fmt_num = "%s"
+            ui_endis_wid = utf8_width(_('disabled'))
+            if ui_endis_wid < utf8_width(_('enabled')):
+                ui_endis_wid = utf8_width(_('enabled'))
                 
             if (arg == 'all' or
                 (arg == 'enabled' and enabled) or
@@ -759,14 +762,14 @@ class RepoListCommand(YumCommand):
                     if not done:
                         txt_rid  = utf8_width_fill(_('repo id'), 20, 20)
                         txt_rnam = utf8_width_fill(_('repo name'), 40, 40)
-                        txt_stat = utf8_width_fill(_('status'), 8)
                         base.verbose_logger.log(logginglevels.INFO_2,"%s %s %s",
-                                                txt_rid, txt_rnam, txt_stat)
+                                                txt_rid, txt_rnam, _('status'))
                         done = True
                     base.verbose_logger.log(logginglevels.INFO_2, "%s %s %s%s",
                                             utf8_width_fill(str(repo), 20, 20),
                                             utf8_width_fill(repo.name, 40, 40),
-                                            utf8_width_fill(ui_enabled, 8),
+                                            utf8_width_fill(ui_enabled,
+                                                            ui_endis_wid),
                                             ui_fmt_num % ui_num)
                 else:
                     md = repo.repoXML
commit 06c492dd20497db94ef7a8d9203b4c22d4a96d5f
Author: James Antill <james at and.org>
Date:   Sun Nov 2 01:02:09 2008 -0400

    Space the info output for po/zh_CN, to prove we can make non-en look good

diff --git a/po/zh_CN.po b/po/zh_CN.po
index 20dc426..bb32159 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: yum\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-07-24 19:43+0800\n"
+"PO-Revision-Date: 2008-11-01 23:43+0400\n"
 "Last-Translator: lijiansheng <lijiangsheng1 at gmail.com>\n"
 "Language-Team: zh_CN <lijiangsheng1 at gmail.com>\n"
 "MIME-Version: 1.0\n"
@@ -460,61 +460,61 @@ msgstr "尝试其他镜像."
 
 #: ../output.py:293
 #, python-format
-msgid "Name       : %s"
-msgstr "名称       : %s"
+msgid "Name       : %s%s%s"
+msgstr "名称          : %s%s%s"
 
 #: ../output.py:294
 #, python-format
 msgid "Arch       : %s"
-msgstr "架构 : %s"
+msgstr "架构          : %s"
 
 #: ../output.py:296
 #, python-format
 msgid "Epoch      : %s"
-msgstr "Epoch      : %s"
+msgstr "Epoch          : %s"
 
 #: ../output.py:297
 #, python-format
 msgid "Version    : %s"
-msgstr "版本    : %s"
+msgstr "版本          : %s"
 
 #: ../output.py:298
 #, python-format
 msgid "Release    : %s"
-msgstr "发行    : %s"
+msgstr "发行          : %s"
 
 #: ../output.py:299
 #, python-format
 msgid "Size       : %s"
-msgstr "大小    : %s"
+msgstr "大小          : %s"
 
 #: ../output.py:300
 #, python-format
 msgid "Repo       : %s"
-msgstr "Repo       : %s"
+msgstr "Repo          : %s"
 
 #: ../output.py:302
 #, python-format
 msgid "Committer  : %s"
-msgstr "Ãœbermittler  : %s"
+msgstr "Ãœbermittler   : %s"
 
 #: ../output.py:303
 msgid "Summary    : "
-msgstr "语法    : "
+msgstr "语法          : "
 
 #: ../output.py:305
 #, python-format
 msgid "URL        : %s"
-msgstr "统一资源定位符       : %s"
+msgstr "统一资源定位符: %s"
 
 #: ../output.py:306
 #, python-format
 msgid "License    : %s"
-msgstr "许可证    : %s"
+msgstr "许可证        : %s"
 
 #: ../output.py:307
 msgid "Description: "
-msgstr "升级:"
+msgstr "升级          : "
 
 #: ../output.py:351
 msgid "Is this ok [y/N]: "
commit d01eebfcc4f43d0b1f1e36745a295dc94905d575
Author: James Antill <james at and.org>
Date:   Sun Nov 2 00:40:48 2008 -0400

    Use utf8_width_fill for repolist

diff --git a/yumcommands.py b/yumcommands.py
index d3ce5ee..66468ec 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -29,6 +29,7 @@ import locale
 import fnmatch
 import time
 from yum.misc import to_unicode
+from yum.i18n import utf8_width_fill
 
 def checkRootUID(base):
     """
@@ -719,7 +720,6 @@ class RepoListCommand(YumCommand):
         # Setup so len(repo.sack) is correct
         base.repos.populateSack()
 
-        format_string = "%-20.20s %-40.40s %-8s%s"
         repos = base.repos.repos.values()
         repos.sort()
         enabled_repos = base.repos.listEnabled()
@@ -755,12 +755,20 @@ class RepoListCommand(YumCommand):
             if (arg == 'all' or
                 (arg == 'enabled' and enabled) or
                 (arg == 'disabled' and not enabled)):
-                if not done and not verbose:
-                    base.verbose_logger.log(logginglevels.INFO_2,
-                                            format_string, _('repo id'),
-                                            _('repo name'), _('status'), "")
-                done = True
-                if verbose:
+                if not verbose:
+                    if not done:
+                        txt_rid  = utf8_width_fill(_('repo id'), 20, 20)
+                        txt_rnam = utf8_width_fill(_('repo name'), 40, 40)
+                        txt_stat = utf8_width_fill(_('status'), 8)
+                        base.verbose_logger.log(logginglevels.INFO_2,"%s %s %s",
+                                                txt_rid, txt_rnam, txt_stat)
+                        done = True
+                    base.verbose_logger.log(logginglevels.INFO_2, "%s %s %s%s",
+                                            utf8_width_fill(str(repo), 20, 20),
+                                            utf8_width_fill(repo.name, 40, 40),
+                                            utf8_width_fill(ui_enabled, 8),
+                                            ui_fmt_num % ui_num)
+                else:
                     md = repo.repoXML
                     out = [base.fmtKeyValFill(_("Repo-id     : "), repo),
                            base.fmtKeyValFill(_("Repo-name   : "), repo.name),
@@ -812,10 +820,6 @@ class RepoListCommand(YumCommand):
                     base.verbose_logger.log(logginglevels.DEBUG_3,
                                             "%s\n",
                                             "\n".join(out))
-                else:
-                    base.verbose_logger.log(logginglevels.INFO_2, format_string,
-                                            repo, repo.name, ui_enabled,
-                                            ui_fmt_num % ui_num)
 
         return 0, ['repolist: ' +to_unicode(locale.format("%d", tot_num, True))]
 
commit 0c832bd74c22c94ef8330887bd41ff1477ef6737
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Sat Nov 1 14:12:04 2008 +0100

    better skip-broken transaction debug data (-d7)

diff --git a/yum/__init__.py b/yum/__init__.py
index dc50fd7..dcf1654 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -666,7 +666,6 @@ class YumBase(depsolve.Depsolve):
         if self.conf.skip_broken and rescode==1:
             self.skipped_packages = []    # reset the public list of skipped packages.
             sb_st = time.time()
-            self._printTransaction()        
             rescode, restring = self._skipPackagesWithProblems(rescode, restring)
             self._printTransaction()        
             self.verbose_logger.debug('Skip-Broken time: %0.3f' % (time.time() - sb_st))
@@ -701,6 +700,7 @@ class YumBase(depsolve.Depsolve):
         while (len(self.po_with_problems) > 0 and rescode == 1):
             count += 1
             self.verbose_logger.debug(_("Skip-broken round %i"), count)
+            self._printTransaction()        
             depTree = self._buildDepTree()
             startTs = set(self.tsInfo)
             toRemove = set()
@@ -833,8 +833,12 @@ class YumBase(depsolve.Depsolve):
 
         self.verbose_logger.log(logginglevels.DEBUG_2,"TSINFO: Current Transaction : %i member(s) " % len(self.tsInfo))
         for txmbr in self.tsInfo:
-            msg = "  %-11s : %s" % (state[txmbr.output_state],txmbr.po)
+            msg = "  %-11s : %s " % (state[txmbr.output_state],txmbr.po)
             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
+            for po,rel in txmbr.relatedto:
+                msg = "                   %s : %s" % (rel,po)
+                self.verbose_logger.log(logginglevels.DEBUG_2, msg)
+                
                                     
     def _getPackagesToRemove(self,po,deptree,toRemove):
         '''
commit 435f3f97dcfa911022ba915a34f5a2a5079d4134
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Sat Nov 1 10:24:55 2008 +0100

    Updated Serbian translations by Milos Komarcevic

diff --git a/po/sr.po b/po/sr.po
old mode 100644
new mode 100755
index afff3ea..a8de8e7
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,42 +1,43 @@
-# translation of sr.po to Serbian
 # Serbian translations for yum
 # Copyright (C) 2008 Linux at Duke
 # This file is distributed under the same license as the yum package.
-#
 # Jovan Krunic <jovan.krunic at gmail.com>, 2008.
 # Igor Miletic <grejigl-gnomeprevod at yahoo.ca>, 2008.
 # Miloš Komarčević <kmilos at gmail.com>, 2008.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-05-26 20:30-0000\n"
+"POT-Creation-Date: 2008-10-27 13:29+0000\n"
+"PO-Revision-Date: 2008-10-27 22:52+0000\n"
 "Last-Translator: Miloš Komarčević <kmilos at gmail.com>\n"
 "Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48 ../output.py:777 ../yum/rpmtrans.py:71
 msgid "Updating"
-msgstr "Aжурирам"
+msgstr "Ажурирам"
 
-#: ../callback.py:49
+#: ../callback.py:49 ../yum/rpmtrans.py:72
 msgid "Erasing"
 msgstr "Бришем"
 
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#. Arch can't get "that big" ... so always use the max.
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:776
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
 msgid "Installing"
 msgstr "Инсталирам"
 
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
 msgid "Obsoleted"
 msgstr "Превазиђени"
 
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54 ../output.py:891
 msgid "Updated"
 msgstr "Ажурирани"
 
@@ -44,7 +45,7 @@ msgstr "Ажурирани"
 msgid "Erased"
 msgstr "Обрисани"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:889
 msgid "Installed"
 msgstr "Инсталирани"
 
@@ -66,53 +67,68 @@ msgstr "Грешка: погрешно излазно стање: %s за %s"
 msgid "Erased: %s"
 msgstr "Обрисано: %s"
 
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217 ../output.py:778
 msgid "Removing"
 msgstr "Уклањам"
 
-#: ../callback.py:219
+#: ../callback.py:219 ../yum/rpmtrans.py:77
 msgid "Cleanup"
 msgstr "Чишћење"
 
-#: ../cli.py:103
+#: ../cli.py:105
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "Наредба „%s“ је већ дефинисана"
 
-#: ../cli.py:115
+#: ../cli.py:117
 msgid "Setting up repositories"
 msgstr "Постављам ризнице"
 
-#: ../cli.py:126
+#: ../cli.py:128
 msgid "Reading repository metadata in from local files"
 msgstr "Читам метаподатке ризница из локалних датотека"
 
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:187 ../utils.py:71
 #, python-format
 msgid "Config Error: %s"
 msgstr "Грешка при подешавању: %s"
 
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:190 ../cli.py:1128 ../utils.py:74
 #, python-format
 msgid "Options Error: %s"
 msgstr "Грешка у опцијама: %s"
 
-#: ../cli.py:229
+#: ../cli.py:218
+#, python-format
+msgid "  Installed: %s-%s at %s"
+msgstr "  Инсталирано: %s-%s на %s"
+
+#: ../cli.py:220
+#, fuzzy, python-format
+msgid "  Built    : %s at %s"
+msgstr "УРЛ        : %s"
+
+#: ../cli.py:222
+#, fuzzy, python-format
+msgid "  Committed: %s at %s"
+msgstr "Објављивач : %s"
+
+#: ../cli.py:259
 msgid "You need to give some command"
 msgstr "Морате да унесете неку команду"
 
-#: ../cli.py:271
+#: ../cli.py:301
 msgid "Disk Requirements:\n"
 msgstr "Захтеви диска:\n"
 
-#: ../cli.py:273
+#: ../cli.py:303
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Потребно је најмање %dМБ на %s систему датотека.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:308
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -120,55 +136,55 @@ msgstr ""
 "Сажетак грешака\n"
 "-------------\n"
 
-#: ../cli.py:317
+#: ../cli.py:351
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr "Покушавам да извршим трансакцију али нема шта да се ради. Излазим."
 
-#: ../cli.py:347
+#: ../cli.py:381
 msgid "Exiting on user Command"
 msgstr "Излазим на команду корисника"
 
-#: ../cli.py:351
+#: ../cli.py:385
 msgid "Downloading Packages:"
 msgstr "Преузимам пакете:"
 
-#: ../cli.py:356
+#: ../cli.py:390
 msgid "Error Downloading Packages:\n"
 msgstr "Грешка при преузимању пакета:\n"
 
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:404 ../yum/__init__.py:3182
 msgid "Running rpm_check_debug"
 msgstr "Извршавам rpm_check_debug"
 
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:407 ../yum/__init__.py:3185
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "ГРЕШКА са rpm_check_debug у односу на depsolve:"
 
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:411 ../yum/__init__.py:3187
 msgid "Please report this error in bugzilla"
 msgstr "Молим вас, пријавите ову грешку у bugzilla-и"
 
-#: ../cli.py:383
+#: ../cli.py:417
 msgid "Running Transaction Test"
 msgstr "Извршавам проверу трансакције"
 
-#: ../cli.py:399
+#: ../cli.py:433
 msgid "Finished Transaction Test"
-msgstr "Завршио сам проверу трансакције"
+msgstr "Завршена је провера трансакције"
 
-#: ../cli.py:401
+#: ../cli.py:435
 msgid "Transaction Check Error:\n"
 msgstr "Грешка при провери трансакције:\n"
 
-#: ../cli.py:408
+#: ../cli.py:442
 msgid "Transaction Test Succeeded"
 msgstr "Провера трансакције је успела"
 
-#: ../cli.py:429
+#: ../cli.py:463
 msgid "Running Transaction"
 msgstr "Извршавам трансакцију"
 
-#: ../cli.py:459
+#: ../cli.py:493
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -176,378 +192,426 @@ msgstr ""
 "Одбијам да аутоматски увезем кључеве када се извршавање не надгледа.\n"
 "За превазилажење овога користите „-y“."
 
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "Рашчлањујем аргументе инсталације пакета"
+#: ../cli.py:512 ../cli.py:545
+msgid "  * Maybe you meant: "
+msgstr "  * Можда сте мислили: "
+
+#: ../cli.py:528 ../cli.py:536
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "%s%s%s пакет је доступан, али није инсталиран."
 
-#: ../cli.py:501
+#: ../cli.py:542 ../cli.py:577
 #, python-format
-msgid "No package %s available."
-msgstr "Не постоји доступан %s пакет."
+msgid "No package %s%s%s available."
+msgstr "Не постоји доступан %s%s%s пакет."
 
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:567
+msgid "Parsing package install arguments"
+msgstr "Рашчлањујем аргументе инсталације пакета"
+
+#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:912
 msgid "Package(s) to install"
 msgstr "Пакет(и) који ће се инсталирати"
 
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:913
 msgid "Nothing to do"
 msgstr "Нема шта да се ради"
 
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, python-format
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "Не ажурирам пакете који су већ превазиђени: %s.%s %s:%s-%s"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "Не могу да пронађем одговарајуће ажурирање за %s"
-
-#: ../cli.py:580
+#: ../cli.py:616
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d пакети означени за ажурирање"
 
-#: ../cli.py:583
+#: ../cli.py:619
 msgid "No Packages marked for Update"
 msgstr "Нема пакета означених за ажурирање"
 
-#: ../cli.py:599
+#: ../cli.py:633
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d пакети означени за уклањање"
 
-#: ../cli.py:602
+#: ../cli.py:636
 msgid "No Packages marked for removal"
 msgstr "Нема пакета означених за уклањање"
 
-#: ../cli.py:614
+#: ../cli.py:648
 msgid "No Packages Provided"
 msgstr "Ниједан пакет није добављен"
 
-#: ../cli.py:654
+#: ../cli.py:689
+#, fuzzy
 msgid "Matching packages for package list to user args"
 msgstr "Повезивање пакета за списак пакета по аргументима корисника"
 
-#: ../cli.py:701
+#: ../cli.py:731
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Упозорење: није нађено подударање за %s"
 
-#: ../cli.py:704
+#: ../cli.py:734
 msgid "No Matches found"
 msgstr "Нису пронађена подударања"
 
-#: ../cli.py:745
+#: ../cli.py:773
+#, python-format
+msgid ""
+"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+" You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+msgstr ""
+"Упозорење: 3.0.x yum верзије би грешком вршиле подударање са називима "
+"датотека.\n"
+" Можете употребити „%s*/%s%s“ и/или „%s*bin/%s%s“ да бисте добили такво "
+"понашање"
+
+#: ../cli.py:789
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Нису пронађени пакети за %s"
 
-#: ../cli.py:757
+#: ../cli.py:801
 msgid "Cleaning up Everything"
 msgstr "Чистим све"
 
-#: ../cli.py:771
+#: ../cli.py:815
 msgid "Cleaning up Headers"
 msgstr "Чистим заглавља"
 
-#: ../cli.py:774
+#: ../cli.py:818
 msgid "Cleaning up Packages"
 msgstr "Чистим пакете"
 
-#: ../cli.py:777
+#: ../cli.py:821
 msgid "Cleaning up xml metadata"
 msgstr "Чистим xml метаподатке"
 
-#: ../cli.py:780
+#: ../cli.py:824
 msgid "Cleaning up database cache"
-msgstr "Чистим кеш база података"
+msgstr "Чистим кеш базе података"
 
-#: ../cli.py:783
+#: ../cli.py:827
 msgid "Cleaning up expire-cache metadata"
 msgstr "Чистим expire-cache метаподатке"
 
-#: ../cli.py:786
+#: ../cli.py:830
 msgid "Cleaning up plugins"
 msgstr "Чистим додатке"
 
-#: ../cli.py:807
+#: ../cli.py:851
 msgid "Installed Groups:"
 msgstr "Инсталиране групе:"
 
-#: ../cli.py:814
+#: ../cli.py:858
 msgid "Available Groups:"
 msgstr "Доступне групе:"
 
-#: ../cli.py:820
+#: ../cli.py:864
 msgid "Done"
 msgstr "Урађено"
 
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2274
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Упозорење: група %s не постоји."
 
-#: ../cli.py:853
+#: ../cli.py:903
 msgid "No packages in any requested group available to install or update"
 msgstr ""
 "Нема доступних пакета за инсталацију или ажурирање у свим захтеваним групама"
 
-#: ../cli.py:855
+#: ../cli.py:905
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d пакет(и) за инсталацију"
 
-#: ../cli.py:865
+#: ../cli.py:915 ../yum/__init__.py:2286
 #, python-format
 msgid "No group named %s exists"
 msgstr "Не постоји група под именом %s"
 
-#: ../cli.py:871
+#: ../cli.py:921
 msgid "No packages to remove from groups"
 msgstr "Нема пакета за уклањање из група"
 
-#: ../cli.py:873
+#: ../cli.py:923
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d  пакет(и) за уклањање"
 
-#: ../cli.py:915
+#: ../cli.py:965
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Пакет %s је већ инсталиран, прескачем га"
 
-#: ../cli.py:926
+#: ../cli.py:976
 #, 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:952
+#: ../cli.py:1002
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr ""
 "Не постоји инсталиран други %s, додајем га у списак за потенцијалну "
 "инсталацију"
 
-#: ../cli.py:971
+#: ../cli.py:1021
 #, python-format
 msgid "Command line error: %s"
 msgstr "Грешка командне линије: %s"
 
-#: ../cli.py:1101
+#: ../cli.py:1034
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: %s опција захтева аргумент"
+
+#: ../cli.py:1170
+msgid "show this help message and exit"
+msgstr "прикажи ову помоћну поруку и изађи"
+
+#: ../cli.py:1174
 msgid "be tolerant of errors"
 msgstr "буди толерантан на грешке"
 
-#: ../cli.py:1103
+#: ../cli.py:1176
 msgid "run entirely from cache, don't update cache"
 msgstr "извршавај се у потпуности из кеша, не ажурирај кеш"
 
-#: ../cli.py:1105
+#: ../cli.py:1178
 msgid "config file location"
 msgstr "место датотеке подешавања"
 
-#: ../cli.py:1107
+#: ../cli.py:1180
 msgid "maximum command wait time"
 msgstr "најдуже време чекања на команду"
 
-#: ../cli.py:1109
+#: ../cli.py:1182
 msgid "debugging output level"
 msgstr "ниво излазног приказа за проналажење грешака"
 
-#: ../cli.py:1113
+#: ../cli.py:1186
 msgid "show duplicates, in repos, in list/search commands"
 msgstr ""
 "приказуј дупликате, у ризницама, у командама за излиставање/претраживање"
 
-#: ../cli.py:1115
+#: ../cli.py:1188
 msgid "error output level"
 msgstr "ниво излазног приказа грешака"
 
-#: ../cli.py:1118
+#: ../cli.py:1191
 msgid "quiet operation"
 msgstr "тиха радња"
 
-#: ../cli.py:1122
+#: ../cli.py:1193
+msgid "verbose operation"
+msgstr "опширна радња"
+
+#: ../cli.py:1195
 msgid "answer yes for all questions"
 msgstr "одговори са да на сва питања"
 
-#: ../cli.py:1124
+#: ../cli.py:1197
 msgid "show Yum version and exit"
-msgstr "прикажи верзију Yum-а и изађи"
+msgstr "прикажи Yum верзију и изађи"
 
-#: ../cli.py:1125
+#: ../cli.py:1198
 msgid "set install root"
 msgstr "постави корени директоријум инсталације"
 
-#: ../cli.py:1129
+#: ../cli.py:1202
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "укључи једну или више ризница (скраћенице су дозвољене)"
 
-#: ../cli.py:1133
+#: ../cli.py:1206
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "искључи једну или више ризница (скраћенице су дозвољене)"
 
-#: ../cli.py:1136
+#: ../cli.py:1209
 msgid "exclude package(s) by name or glob"
-msgstr "изузмите пакет(е) по имену или glob-у"
+msgstr "изузми пакет(е) по имену или глобу"
 
-#: ../cli.py:1138
+#: ../cli.py:1211
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "искључи изузимање из главног скупа, за ризницу или за све"
 
-#: ../cli.py:1141
+#: ../cli.py:1214
 msgid "enable obsoletes processing during updates"
 msgstr "укључи обраду застарелих пакета у току ажурирања"
 
-#: ../cli.py:1143
+#: ../cli.py:1216
 msgid "disable Yum plugins"
 msgstr "искључи додатке за Yum"
 
-#: ../cli.py:1145
+#: ../cli.py:1218
 msgid "disable gpg signature checking"
 msgstr "искључи проверу gpg потписа"
 
-#: ../cli.py:1147
+#: ../cli.py:1220
 msgid "disable plugins by name"
 msgstr "искључи додатке по имену"
 
-#: ../cli.py:1150
+#: ../cli.py:1223
+msgid "enable plugins by name"
+msgstr "укључи додатке по имену"
+
+#: ../cli.py:1226
 msgid "skip packages with depsolving problems"
 msgstr "прескочи пакете који имају проблема са решавањем зависности"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Jan"
 msgstr "јан"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Feb"
 msgstr "феб"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Mar"
 msgstr "мар"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Apr"
 msgstr "апр"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "May"
 msgstr "мај"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Jun"
 msgstr "јун"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Jul"
 msgstr "јул"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Aug"
 msgstr "авг"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Sep"
 msgstr "сеп"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Oct"
 msgstr "окт"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Nov"
 msgstr "нов"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Dec"
 msgstr "дец"
 
-#: ../output.py:240
+#: ../output.py:247
 msgid "Trying other mirror."
 msgstr "Покушавам други одраз."
 
-#: ../output.py:293
+#: ../output.py:425
 #, python-format
-msgid "Name       : %s"
-msgstr "Име        : %s"
+msgid "Name       : %s%s%s"
+msgstr "Име        : %s%s%s"
 
-#: ../output.py:294
+#: ../output.py:426
 #, python-format
 msgid "Arch       : %s"
 msgstr "Архитектура: %s"
 
-#: ../output.py:296
+#: ../output.py:428
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Период     : %s"
 
-#: ../output.py:297
+#: ../output.py:429
 #, python-format
 msgid "Version    : %s"
 msgstr "Верзија    : %s"
 
-#: ../output.py:298
+#: ../output.py:430
 #, python-format
 msgid "Release    : %s"
 msgstr "Издање     : %s"
 
-#: ../output.py:299
+#: ../output.py:431
 #, python-format
 msgid "Size       : %s"
 msgstr "Величина   : %s"
 
-#: ../output.py:300
+#: ../output.py:432
 #, python-format
 msgid "Repo       : %s"
 msgstr "Ризница    : %s"
 
-#: ../output.py:302
+#: ../output.py:434
 #, python-format
 msgid "Committer  : %s"
 msgstr "Објављивач : %s"
 
-#: ../output.py:303
+#: ../output.py:435
+#, fuzzy, python-format
+msgid "Committime : %s"
+msgstr "Објављивач : %s"
+
+#: ../output.py:436
+#, fuzzy, python-format
+msgid "Buildtime  : %s"
+msgstr "Објављивач : %s"
+
+#: ../output.py:438
+#, fuzzy, python-format
+msgid "Installtime: %s"
+msgstr "Инсталирани"
+
+#: ../output.py:439
 msgid "Summary    : "
 msgstr "Сажетак    :"
 
-#: ../output.py:305
+#: ../output.py:441
 #, python-format
 msgid "URL        : %s"
 msgstr "УРЛ        : %s"
 
-#: ../output.py:306
+#: ../output.py:442
 #, python-format
 msgid "License    : %s"
 msgstr "Лиценца    : %s"
 
-#: ../output.py:307
+#: ../output.py:443
 msgid "Description: "
 msgstr "Опис       : "
 
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "Да ли је ово у реду [d/N]: "
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
 msgid "y"
 msgstr "d"
 
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
 msgid "yes"
 msgstr "da"
 
-#: ../output.py:357
+#: ../output.py:501
+msgid "n"
+msgstr "n"
+
+#: ../output.py:501
 msgid "no"
 msgstr "ne"
 
-#: ../output.py:367
+#: ../output.py:505
+msgid "Is this ok [y/N]: "
+msgstr "Да ли је ово у реду [d/N]: "
+
+#: ../output.py:587
 #, python-format
 msgid ""
 "\n"
@@ -556,96 +620,123 @@ msgstr ""
 "\n"
 "Група: %s"
 
-#: ../output.py:369
+#: ../output.py:594
 #, python-format
 msgid " Description: %s"
 msgstr " Опис: %s"
 
-#: ../output.py:371
+#: ../output.py:596
 msgid " Mandatory Packages:"
 msgstr " Обавезни пакети:"
 
-#: ../output.py:376
+#: ../output.py:597
 msgid " Default Packages:"
 msgstr " Подразумевани пакети:"
 
-#: ../output.py:381
+#: ../output.py:598
 msgid " Optional Packages:"
 msgstr " Изборни пакети:"
 
-#: ../output.py:386
+#: ../output.py:599
 msgid " Conditional Packages:"
 msgstr " Условљени пакети:"
 
-#: ../output.py:394
+#: ../output.py:619
 #, python-format
 msgid "package: %s"
 msgstr "пакет: %s"
 
-#: ../output.py:396
+#: ../output.py:621
 msgid "  No dependencies for this package"
 msgstr "  Не постоје зависности овог пакета"
 
-#: ../output.py:401
+#: ../output.py:626
 #, python-format
 msgid "  dependency: %s"
 msgstr "  зависност: %s"
 
-#: ../output.py:403
+#: ../output.py:628
 msgid "   Unsatisfied dependency"
 msgstr "   Незадовољена зависност"
 
-#: ../output.py:461
+#: ../output.py:700
 msgid "Matched from:"
 msgstr "Повезан из:"
 
-#: ../output.py:487
+#: ../output.py:708
+msgid "Description : "
+msgstr "Опис        : "
+
+#: ../output.py:711
+#, python-format
+msgid "URL         : %s"
+msgstr "УРЛ         : %s"
+
+#: ../output.py:714
+#, python-format
+msgid "License     : %s"
+msgstr "Лиценца     : %s"
+
+#: ../output.py:717
+#, python-format
+msgid "Filename    : %s"
+msgstr "Име датотеке: %s"
+
+#: ../output.py:721
+msgid "Other       : "
+msgstr "Остало      : "
+
+#: ../output.py:753
 msgid "There was an error calculating total download size"
 msgstr "Догодила се грешка при рачунању укупне величине за преузимање"
 
-#: ../output.py:492
+#: ../output.py:758
 #, python-format
 msgid "Total size: %s"
 msgstr "Укупна величина: %s"
 
-#: ../output.py:495
+#: ../output.py:761
 #, python-format
 msgid "Total download size: %s"
 msgstr "Укупна величина за преузимање: %s"
 
-#: ../output.py:507
+#: ../output.py:779
+msgid "Installing for dependencies"
+msgstr "Инсталирам због зависности"
+
+#: ../output.py:780
+msgid "Updating for dependencies"
+msgstr "Ажурирам због зависности"
+
+#: ../output.py:781
+msgid "Removing for dependencies"
+msgstr "Уклањам због зависности"
+
+#: ../output.py:782 ../output.py:893
+msgid "Skipped (dependency problems)"
+msgstr "Прескочено (проблеми са зависностима)"
+
+#: ../output.py:818
 msgid "Package"
 msgstr "Пакет"
 
-#: ../output.py:507
+#: ../output.py:818
 msgid "Arch"
 msgstr "Архитектура"
 
-#: ../output.py:507
+#: ../output.py:819
 msgid "Version"
 msgstr "Верзија"
 
-#: ../output.py:507
+#: ../output.py:819
 msgid "Repository"
 msgstr "Ризница"
 
-#: ../output.py:507
+#: ../output.py:820
 msgid "Size"
 msgstr "Величина"
 
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "Инсталирам због зависности"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "Ажурирам због зависности"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "Уклањам због зависности"
-
-#: ../output.py:528
+#: ../output.py:831
 #, python-format
 msgid ""
 "     replacing  %s.%s %s\n"
@@ -654,44 +745,44 @@ msgstr ""
 "     уклањам  %s.%s %s\n"
 "\n"
 
-#: ../output.py:536
+#: ../output.py:839
 #, python-format
 msgid ""
 "\n"
 "Transaction Summary\n"
-"=============================================================================\n"
+"%s\n"
 "Install  %5.5s Package(s)         \n"
 "Update   %5.5s Package(s)         \n"
 "Remove   %5.5s Package(s)         \n"
 msgstr ""
 "\n"
 "Сажетак трансакције\n"
-"=============================================================================\n"
-"инсталирање  %5.5s пакет(а)       \n"
-"ажурирање    %5.5s пакет(а)       \n"
-"уклањање     %5.5s пакет(а)       \n"
+"%s\n"
+"Инсталација  %5.5s пакет(а)       \n"
+"Ажурирање    %5.5s пакет(а)       \n"
+"Уклањање     %5.5s пакет(а)       \n"
 
-#: ../output.py:554
+#: ../output.py:887
 msgid "Removed"
 msgstr "Уклоњено"
 
-#: ../output.py:555
+#: ../output.py:888
 msgid "Dependency Removed"
 msgstr "Зависност уклоњена"
 
-#: ../output.py:557
+#: ../output.py:890
 msgid "Dependency Installed"
 msgstr "Зависност инсталирана"
 
-#: ../output.py:559
+#: ../output.py:892
 msgid "Dependency Updated"
 msgstr "Зависност ажурирана"
 
-#: ../output.py:560
+#: ../output.py:894
 msgid "Replaced"
 msgstr "Замењено"
 
-#: ../output.py:618
+#: ../output.py:967
 #, python-format
 msgid ""
 "\n"
@@ -702,73 +793,77 @@ msgstr ""
 " Тренутно преузимање је обустављено, %sinterrupt (ctrl-c) још једном%s у "
 "току %s%s%s секунди да бисте изашли.\n"
 
-#: ../output.py:628
+#: ../output.py:977
 msgid "user interrupt"
 msgstr "прекид од стране корисника"
 
-#: ../output.py:639
+#: ../output.py:993
+msgid "Total"
+msgstr "Укупно"
+
+#: ../output.py:1007
 msgid "installed"
 msgstr "инсталиран"
 
-#: ../output.py:640
+#: ../output.py:1008
 msgid "updated"
 msgstr "ажуриран"
 
-#: ../output.py:641
+#: ../output.py:1009
 msgid "obsoleted"
 msgstr "превазиђен"
 
-#: ../output.py:642
+#: ../output.py:1010
 msgid "erased"
 msgstr "обрисан"
 
-#: ../output.py:646
+#: ../output.py:1014
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Пакет %s.%s %s:%s-%s постављен да буде %s"
 
-#: ../output.py:653
+#: ../output.py:1021
 msgid "--> Running transaction check"
 msgstr "--> Извршава се провера трансакције"
 
-#: ../output.py:658
+#: ../output.py:1026
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Поновно покретање разрешавања зависности са новим променама."
 
-#: ../output.py:663
+#: ../output.py:1031
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Завршено је разрешавање зависности"
 
-#: ../output.py:668
+#: ../output.py:1036
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Обрађујем зависност: %s за пакет: %s"
 
-#: ../output.py:673
+#: ../output.py:1041
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Неразрешена зависност: %s"
 
-#: ../output.py:679
+#: ../output.py:1047
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Сукоб при обради: %s се сукоби са %s"
 
-#: ../output.py:682
+#: ../output.py:1050
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr ""
 "--> Попуњавам скуп трансакције са изабраним пакетима. Молим вас, сачекајте."
 
-#: ../output.py:686
+#: ../output.py:1054
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Преузимам заглавље за %s ради паковања у скуп трансакције."
 
-#: ../yumcommands.py:36
+#: ../yumcommands.py:40
 msgid "You need to be root to perform this command."
 msgstr "Морате бити root корисник да бисте извршили ову команду."
 
-#: ../yumcommands.py:43
+#: ../yumcommands.py:47
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -799,251 +894,312 @@ msgstr ""
 "\n"
 "За више информација контактирајте добављача ваше дистрибуције или пакета.\n"
 
-#: ../yumcommands.py:63
+#: ../yumcommands.py:67
 #, python-format
 msgid "Error: Need to pass a list of pkgs to %s"
 msgstr "Грешка: потребно је да додате списак пакета %s-у"
 
-#: ../yumcommands.py:69
+#: ../yumcommands.py:73
 msgid "Error: Need an item to match"
 msgstr "Грешка: потребно је придружити ставку"
 
-#: ../yumcommands.py:75
+#: ../yumcommands.py:79
 msgid "Error: Need a group or list of groups"
 msgstr "Грешка: потребна је група или списак група"
 
-#: ../yumcommands.py:84
+#: ../yumcommands.py:88
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "Грешка: clean захтева опцију: %s"
 
-#: ../yumcommands.py:89
+#: ../yumcommands.py:93
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "Грешка: погрешан clean аргумент:%r"
 
-#: ../yumcommands.py:102
+#: ../yumcommands.py:106
 msgid "No argument to shell"
 msgstr "Не постоји аргумент за командно окружење"
 
-#: ../yumcommands.py:105
+#: ../yumcommands.py:109
 #, python-format
 msgid "Filename passed to shell: %s"
 msgstr "Име датотеке је прослеђено командном окружењу: %s"
 
-#: ../yumcommands.py:109
+#: ../yumcommands.py:113
 #, python-format
 msgid "File %s given as argument to shell does not exist."
 msgstr ""
-"Не постоји датотека %s, која је прослеђена као аргумент комадном окружењу."
+"Не постоји датотека %s, која је прослеђена као аргумент командном окружењу."
 
-#: ../yumcommands.py:115
+#: ../yumcommands.py:119
 msgid "Error: more than one file given as argument to shell."
 msgstr ""
 "Грешка: више од једне датотеке је прослеђено као аргумент командном окружењу."
 
-#: ../yumcommands.py:156
+#: ../yumcommands.py:160
 msgid "PACKAGE..."
 msgstr "ПАКЕТ..."
 
-#: ../yumcommands.py:159
+#: ../yumcommands.py:163
 msgid "Install a package or packages on your system"
 msgstr "Инсталирајте пакет или пакете на ваш систем"
 
-#: ../yumcommands.py:168
+#: ../yumcommands.py:172
 msgid "Setting up Install Process"
 msgstr "Постављам процес инсталације"
 
-#: ../yumcommands.py:179
+#: ../yumcommands.py:183
 msgid "[PACKAGE...]"
 msgstr "[ПАКЕТ...]"
 
-#: ../yumcommands.py:182
+#: ../yumcommands.py:186
 msgid "Update a package or packages on your system"
 msgstr "Ажурирај пакет или пакете на вашем систему"
 
-#: ../yumcommands.py:190
+#: ../yumcommands.py:194
 msgid "Setting up Update Process"
 msgstr "Постављам процес ажурирања"
 
-#: ../yumcommands.py:204
+#: ../yumcommands.py:236
 msgid "Display details about a package or group of packages"
 msgstr "Прикажи детаље о сваком пакету или групи пакета"
 
-#: ../yumcommands.py:212
+#. Output the packages:
+#: ../yumcommands.py:261
 msgid "Installed Packages"
 msgstr "Инсталирани пакети"
 
-#: ../yumcommands.py:213
+#: ../yumcommands.py:263
 msgid "Available Packages"
 msgstr "Доступни пакети"
 
-#: ../yumcommands.py:214
+#: ../yumcommands.py:265
 msgid "Extra Packages"
 msgstr "Додатни пакети"
 
-#: ../yumcommands.py:215
+#: ../yumcommands.py:267
 msgid "Updated Packages"
 msgstr "Ажурирани пакети"
 
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:274 ../yumcommands.py:281
 msgid "Obsoleting Packages"
 msgstr "Превазиђени пакети"
 
-#: ../yumcommands.py:226
+#: ../yumcommands.py:283
 msgid "Recently Added Packages"
 msgstr "Недавно додати пакети"
 
-#: ../yumcommands.py:232
+#: ../yumcommands.py:290
 msgid "No matching Packages to list"
 msgstr "Не постоје одговарајући пакети за излиставање"
 
-#: ../yumcommands.py:246
+#: ../yumcommands.py:304
 msgid "List a package or groups of packages"
 msgstr "Излистај пакете или групе пакета"
 
-#: ../yumcommands.py:258
+#: ../yumcommands.py:316
 msgid "Remove a package or packages from your system"
 msgstr "Уклоните пакет или пакете са вашег система"
 
-#: ../yumcommands.py:266
+#: ../yumcommands.py:324
 msgid "Setting up Remove Process"
 msgstr "Постављам процес уклањања"
 
-#: ../yumcommands.py:278
+#: ../yumcommands.py:339
 msgid "Setting up Group Process"
 msgstr "Постављам процес за групе"
 
-#: ../yumcommands.py:284
+#: ../yumcommands.py:345
 msgid "No Groups on which to run command"
 msgstr "Не постоји група над којом се може извршити команда"
 
-#: ../yumcommands.py:297
+#: ../yumcommands.py:358
 msgid "List available package groups"
 msgstr "Излистај доступне групе пакета"
 
-#: ../yumcommands.py:314
+#: ../yumcommands.py:375
 msgid "Install the packages in a group on your system"
 msgstr "Инсталирајте пакете у групи на вашем систему"
 
-#: ../yumcommands.py:336
+#: ../yumcommands.py:397
 msgid "Remove the packages in a group from your system"
 msgstr "Уклоните пакете у групи са вашег система"
 
-#: ../yumcommands.py:360
+#: ../yumcommands.py:424
 msgid "Display details about a package group"
 msgstr "Прикажи детаље о групи пакета"
 
-#: ../yumcommands.py:384
+#: ../yumcommands.py:448
 msgid "Generate the metadata cache"
 msgstr "Направи кеш са метаподацима"
 
-#: ../yumcommands.py:390
+#: ../yumcommands.py:454
 msgid "Making cache files for all metadata files."
 msgstr "Правим кеш датотеке за све датотеке са метаподацима."
 
-#: ../yumcommands.py:391
+#: ../yumcommands.py:455
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Ово може да потраје у зависности од брзине вашег рачунара"
 
-#: ../yumcommands.py:412
+#: ../yumcommands.py:476
 msgid "Metadata Cache Created"
 msgstr "Направљен је кеш са метаподацима"
 
-#: ../yumcommands.py:426
+#: ../yumcommands.py:490
 msgid "Remove cached data"
 msgstr "Уклони кеширане податке"
 
-#: ../yumcommands.py:447
+#: ../yumcommands.py:511
 msgid "Find what package provides the given value"
 msgstr "Пронађи који пакет пружа дату вредност"
 
-#: ../yumcommands.py:467
+#: ../yumcommands.py:531
 msgid "Check for available package updates"
 msgstr "Проверите да ли су доступна ажурирања пакета"
 
-#: ../yumcommands.py:490
+#: ../yumcommands.py:556
 msgid "Search package details for the given string"
 msgstr "Претражите детаље о пакету за задату ниску"
 
-#: ../yumcommands.py:496
+#: ../yumcommands.py:562
 msgid "Searching Packages: "
 msgstr "Претражујем пакете: "
 
-#: ../yumcommands.py:513
+#: ../yumcommands.py:579
 msgid "Update packages taking obsoletes into account"
 msgstr "Ажурирајте пакете узимајући превазиђене у обзир"
 
-#: ../yumcommands.py:522
+#: ../yumcommands.py:588
 msgid "Setting up Upgrade Process"
 msgstr "Постављам процес надградње"
 
-#: ../yumcommands.py:536
+#: ../yumcommands.py:602
 msgid "Install a local RPM"
 msgstr "Инсталирај локални RPM"
 
-#: ../yumcommands.py:545
+#: ../yumcommands.py:611
 msgid "Setting up Local Package Process"
 msgstr "Постављам процес локалних пакета"
 
-#: ../yumcommands.py:564
+#: ../yumcommands.py:630
 msgid "Determine which package provides the given dependency"
 msgstr "Одреди који пакети пружају дату зависност"
 
-#: ../yumcommands.py:567
+#: ../yumcommands.py:633
 msgid "Searching Packages for Dependency:"
 msgstr "Претражујем пакете у потрази за зависностима:"
 
-#: ../yumcommands.py:581
+#: ../yumcommands.py:647
 msgid "Run an interactive yum shell"
 msgstr "Извршавај интерактивно командно окружење yum-а"
 
-#: ../yumcommands.py:587
+#: ../yumcommands.py:653
 msgid "Setting up Yum Shell"
 msgstr "Постављам Yum командно окружење"
 
-#: ../yumcommands.py:605
+#: ../yumcommands.py:671
 msgid "List a package's dependencies"
 msgstr "Излистај зависности пакета"
 
-#: ../yumcommands.py:611
+#: ../yumcommands.py:677
 msgid "Finding dependencies: "
 msgstr "Тражим зависности: "
 
-#: ../yumcommands.py:627
+#: ../yumcommands.py:693
 msgid "Display the configured software repositories"
 msgstr "Прикажи подешене софтверске ризнице"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:742
+msgid "enabled"
+msgstr "укључена"
+
+#: ../yumcommands.py:751
+msgid "disabled"
+msgstr "искључена"
+
+#: ../yumcommands.py:760
 msgid "repo id"
 msgstr "репо id"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
 msgid "repo name"
 msgstr "репо име"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
 msgid "status"
 msgstr "статус"
 
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "укључена"
+#: ../yumcommands.py:765
+msgid "Repo-id     : "
+msgstr "ИБ ризнице         : "
 
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "искључена"
+#: ../yumcommands.py:766
+msgid "Repo-name   : "
+msgstr "Име ризнице        : "
 
-#: ../yumcommands.py:671
+#: ../yumcommands.py:767
+msgid "Repo-status : "
+msgstr "Статус ризнице     : "
+
+#: ../yumcommands.py:769
+#, fuzzy
+msgid "Repo-revision: "
+msgstr "Величина ризнице   : "
+
+#: ../yumcommands.py:773
+#, fuzzy
+msgid "Repo-tags   : "
+msgstr "Пакети ризнице     : "
+
+#: ../yumcommands.py:779
+#, fuzzy
+msgid "Repo-distro-tags: "
+msgstr "Статус ризнице     : "
+
+#: ../yumcommands.py:784
+msgid "Repo-updated: "
+msgstr "Ризница ажурирана  : "
+
+#: ../yumcommands.py:786
+msgid "Repo-pkgs   : "
+msgstr "Пакети ризнице     : "
+
+#: ../yumcommands.py:787
+msgid "Repo-size   : "
+msgstr "Величина ризнице   : "
+
+#: ../yumcommands.py:794
+msgid "Repo-baseurl: "
+msgstr "Основни УРЛ ризнице: "
+
+#: ../yumcommands.py:798
+#, fuzzy
+msgid "Repo-metalink: "
+msgstr "Име ризнице        : "
+
+#: ../yumcommands.py:801
+msgid "Repo-mirrors: "
+msgstr "Одрази ризнице     : "
+
+#: ../yumcommands.py:805
+msgid "Repo-exclude: "
+msgstr "Ризница искључена  : "
+
+#: ../yumcommands.py:809
+msgid "Repo-include: "
+msgstr "Ризница укључена   : "
+
+#: ../yumcommands.py:835
 msgid "Display a helpful usage message"
 msgstr "Прикажи корисну поруку о употреби"
 
-#: ../yumcommands.py:705
+#: ../yumcommands.py:869
 #, python-format
 msgid "No help available for %s"
 msgstr "Није доступна помоћ за %s"
 
-#: ../yumcommands.py:710
+#: ../yumcommands.py:874
 msgid ""
 "\n"
 "\n"
@@ -1051,9 +1207,9 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"алијаси: "
+"псеудоними: "
 
-#: ../yumcommands.py:712
+#: ../yumcommands.py:876
 msgid ""
 "\n"
 "\n"
@@ -1061,13 +1217,13 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"алијас: "
+"псеудоним: "
 
-#: ../yumcommands.py:741
+#: ../yumcommands.py:905
 msgid "Setting up Reinstall Process"
 msgstr "Постављам процес поновне инсталације"
 
-#: ../yumcommands.py:755
+#: ../yumcommands.py:919
 msgid "reinstall a package"
 msgstr "поновно инсталирам пакет"
 
@@ -1091,29 +1247,29 @@ msgstr ""
 "\n"
 "Излазим када се сломи цев"
 
-#: ../yummain.py:105
+#: ../yummain.py:98
 msgid ""
 "Another app is currently holding the yum lock; waiting for it to exit..."
 msgstr ""
-"Неки други програм тренутно држи yum закључавање, чекам да се тај програм "
-"искључи..."
+"Неки други програм тренутно држи yum закључаним; чекам да тај програм "
+"изађе..."
 
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:125 ../yummain.py:164
 #, python-format
 msgid "Error: %s"
 msgstr "Грешка: %s"
 
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:135 ../yummain.py:171
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Непозната грешка(е): излазни код: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:142
 msgid "Resolving Dependencies"
 msgstr "Разрешавам зависности"
 
-#: ../yummain.py:184
+#: ../yummain.py:177
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1121,11 +1277,11 @@ msgstr ""
 "\n"
 "Зависности су разрешене"
 
-#: ../yummain.py:198
+#: ../yummain.py:191
 msgid "Complete!"
 msgstr "Завршено!"
 
-#: ../yummain.py:245
+#: ../yummain.py:238
 msgid ""
 "\n"
 "\n"
@@ -1135,318 +1291,315 @@ msgstr ""
 "\n"
 "Излазим када корисник откаже."
 
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:84
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() неће бити присутна у будућим верзијама Yum-а.\n"
 
-#: ../yum/depsolve.py:95
+#: ../yum/depsolve.py:97
 msgid "Setting up TransactionSets before config class is up"
 msgstr "Постављам TransactionSets пре него што се подигне класа подешавања"
 
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:148
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "Погрешан tsflag у датотеци подешавања: %s"
 
-#: ../yum/depsolve.py:147
+#: ../yum/depsolve.py:159
 #, fuzzy, python-format
 msgid "Searching pkgSack for dep: %s"
 msgstr "тражим пакет %s"
 
-#: ../yum/depsolve.py:170
+#: ../yum/depsolve.py:182
 #, fuzzy, python-format
 msgid "Potential match for %s from %s"
 msgstr "Постоји више од једног идентичног слагања у групи за %s"
 
-#: ../yum/depsolve.py:178
+#: ../yum/depsolve.py:190
 #, fuzzy, python-format
 msgid "Matched %s to require for %s"
 msgstr "%s захтева: %s"
 
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:231
 #, python-format
 msgid "Member: %s"
 msgstr "Члан: %s"
 
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:245 ../yum/depsolve.py:732
 #, python-format
 msgid "%s converted to install"
 msgstr "%s пребачен за инсталацију"
 
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:252
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "Додајем пакет %s у начину рада %s"
 
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:262
 #, python-format
 msgid "Removing Package %s"
 msgstr "Уклањам пакет %s"
 
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:273
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s захтева: %s"
 
-#: ../yum/depsolve.py:312
+#: ../yum/depsolve.py:331
 msgid "Needed Require has already been looked up, cheating"
-msgstr ""
+msgstr "Потребан захтев је већ потражен, обмањујем"
 
-#: ../yum/depsolve.py:322
+#: ../yum/depsolve.py:341
 #, python-format
 msgid "Needed Require is not a package name. Looking up: %s"
-msgstr ""
+msgstr "Потребан захтев није име пакета. Тражим: %s"
 
-#: ../yum/depsolve.py:329
-#, fuzzy, python-format
+#: ../yum/depsolve.py:348
+#, python-format
 msgid "Potential Provider: %s"
-msgstr "Укупна величина: %s"
+msgstr "Могући снабдевач: %s"
 
-#: ../yum/depsolve.py:352
+#: ../yum/depsolve.py:371
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
-msgstr ""
+msgstr "Режим је %s за снабдевача %s: %s"
 
-#: ../yum/depsolve.py:356
+#: ../yum/depsolve.py:375
 #, python-format
 msgid "Mode for pkg providing %s: %s"
-msgstr ""
+msgstr "Режим за пакет који снабдева %s: %s"
 
-#: ../yum/depsolve.py:360
+#: ../yum/depsolve.py:379
 #, python-format
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr "TSINFO: %s пакет захтева да %s буде означен за брисање"
 
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:391
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: мењам %s са %s да бих разрешио зависност."
+msgstr "TSINFO: мењам %s са %s ради разрешавања зависности."
 
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:394
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: ажурирам %s да бих разрешио зависност."
+msgstr "TSINFO: ажурирам %s ради разрешавања зависности."
 
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:402
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Не могу да пронађем путању ажурирања за зависност за: %s"
 
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:412
 #, python-format
 msgid "Unresolvable requirement %s for %s"
-msgstr ""
+msgstr "Неразрешив захтев пакета %s за %s"
+
+#: ../yum/depsolve.py:435
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "Брзо повезивање пакета %s као захтева за %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:434
+#: ../yum/depsolve.py:477
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s је у пруженим пакета али је већ инсталиран, уклањам га."
+msgstr "%s је у пруженим пакетима али је већ инсталиран, уклањам га."
 
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:492
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr "Потенцијално разрешавање пакета %s има новији примерак у ts-у."
 
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:503
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
-msgstr "Потенцијално разрешавање пакета %s има инсталиран нови примерак."
+msgstr "Потенцијално разрешавање пакета %s има инсталиран новији примерак."
 
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:511 ../yum/depsolve.py:560
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Недостаје зависност: %s је потребан од стране пакета %s"
 
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:524
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s је већ у ts-у, прескачем га"
 
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:570
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: означавам %s као ажурирање за %s"
 
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:578
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: означавам %s као инсталацију за %s"
 
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:670 ../yum/depsolve.py:750
 msgid "Success - empty transaction"
 msgstr "Успех - празна трансакција"
 
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:709 ../yum/depsolve.py:722
 msgid "Restarting Loop"
 msgstr "Поново покрећем петљу"
 
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:738
 msgid "Dependency Process ending"
 msgstr "Завршетак процеса зависности"
 
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:744
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s из %s има проблема са разрешавањем зависности"
 
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:751
 msgid "Success - deps resolved"
 msgstr "Успех - зависности су разрешене"
 
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:765
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Проверавам зависности за %s"
 
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:848
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "тражим %s као захтев за %s"
 
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr ""
-
-#: ../yum/depsolve.py:937
+#: ../yum/depsolve.py:988
 #, python-format
-msgid "Same: best %s == po: %s"
-msgstr ""
+msgid "Running compare_providers() for %s"
+msgstr "Покрећем compare_providers() за %s"
 
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#: ../yum/depsolve.py:1016 ../yum/depsolve.py:1022
 #, fuzzy, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "%s превазилази %s"
-
-#: ../yum/depsolve.py:955
-#, fuzzy, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "%s превазилази %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
-#, python-format
 msgid "better arch in po %s"
 msgstr "боља архитектура у po %s"
 
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:1061
 #, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr ""
+msgid "%s obsoletes %s"
+msgstr "%s превазилази %s"
 
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:1077
 #, python-format
-msgid "best %s shares a sourcerpm with %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+"  Winner: %s"
 msgstr ""
+"archdist упоредио %s са %s на %s\n"
+"  Победник: %s"
 
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:1084
 #, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr ""
+msgid "common sourcerpm %s and %s"
+msgstr "заједнички изворни rpm %s и %s"
 
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1090
 #, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr ""
+msgid "common prefix of %s between %s and %s"
+msgstr "заједнички префикс %s између %s и %s"
 
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:1098
 #, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr ""
+msgid "Best Order: %s"
+msgstr "Најбољи редослед: %s"
 
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:135
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() неће бити присутна у будућим верзијама Yum-а.\n"
 
-#: ../yum/__init__.py:296
+#: ../yum/__init__.py:315
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "Ризници %r недостаје име у подешавањима, користим id"
 
-#: ../yum/__init__.py:332
+#: ../yum/__init__.py:353
 msgid "plugins already initialised"
 msgstr "већ иницијализовани додаци"
 
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:360
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRpmDBSetup() неће бити присутна у будућим верзијама Yum-а.\n"
 
-#: ../yum/__init__.py:349
+#: ../yum/__init__.py:370
 msgid "Reading Local RPMDB"
 msgstr "Читам локални RPMDB"
 
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:388
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() неће бити присутна у будућим верзијама Yum-а.\n"
 
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:408
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() неће бити присутна у будућим верзијама Yum-а.\n"
 
-#: ../yum/__init__.py:404
+#: ../yum/__init__.py:425
 msgid "Setting up Package Sacks"
 msgstr "Постављам групе пакета"
 
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:468
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "репо објекту за репо %s недостаје a _resetSack метода\n"
 
-#: ../yum/__init__.py:448
+#: ../yum/__init__.py:469
 msgid "therefore this repo cannot be reset.\n"
 msgstr "због тога се овај репо не може вратити на почетну поставку.\n"
 
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:474
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() неће бити присутна у будућим верзијама Yum-а.\n"
 
-#: ../yum/__init__.py:465
+#: ../yum/__init__.py:486
 msgid "Building updates object"
-msgstr "Изграђујем објекат ажурирња"
+msgstr "Изграђујем објекат ажурирања"
 
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:517
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() неће бити присутна у будућим верзијама Yum-а.\n"
 
-#: ../yum/__init__.py:520
+#: ../yum/__init__.py:541
 msgid "Getting group metadata"
 msgstr "Добављам метаподатке групе"
 
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:567
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Додајем датотеку групе из ризнице: %s"
 
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:576
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
-msgstr "Нисам успео да додам датотеку групе за ризницу: %s - %s"
+msgstr "Није успело додавање датотеке групе за ризницу: %s - %s"
 
-#: ../yum/__init__.py:561
+#: ../yum/__init__.py:582
 msgid "No Groups Available in any repository"
 msgstr "Не постоји група која је доступна у било којој ризници"
 
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:632
 msgid "Importing additional filelist information"
 msgstr "Увозим додатне информације о списковима датотека"
 
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:641
+#, fuzzy
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr ""
+"Остале су недовршене трансакције. Можда би требало да извршите yum-complete-"
+"transaction да бисте их завршили."
+
+#: ../yum/__init__.py:698
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Skip-broken етапа %i"
 
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:724
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "Skip-broken је завршен у %i етапа "
 
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:725
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1454,95 +1607,108 @@ msgstr ""
 "\n"
 "Пакети су прескочени због проблема са зависностима:"
 
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:729
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s из %s"
 
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:816
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+"Упозорење: дошло је до грешке у скриптици или неке друге некритичне грешке "
+"током трансакције."
+
+#: ../yum/__init__.py:832
 #, python-format
 msgid "Failed to remove transaction file %s"
-msgstr "Нисам успео да уклоним датотеку трансакције %s"
+msgstr "Није успело уклањање датотеке трансакције %s"
 
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:873
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "изузимам из трошка: %s из %s"
 
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:904
 msgid "Excluding Packages in global exclude list"
 msgstr "Изузимам пакете у глобалном списку за изузимање"
 
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:906
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "Изузимам пакете из %s"
 
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:933
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Сажимам %s само у садржане пакете"
 
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:939
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Задржавам садржани пакет %s"
 
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:945
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Уклањам неповезани пакет %s"
 
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:948
 msgid "Finished"
 msgstr "Завршио"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:978
 #, python-format
 msgid "Unable to check if PID %s is active"
-msgstr "Нисам у могућнисти да проверим да ли је PID %s активан"
+msgstr "Нисам у могућности да проверим да ли је PID %s активан"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:923
+#: ../yum/__init__.py:982
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Постоји закључавање %s: друга копија се извршава као pid %s."
 
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1053
 msgid "Package does not match intended download"
 msgstr "Пакет није одговарајући за намеравано преузимање"
 
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1068
 msgid "Could not perform checksum"
 msgstr "Не могу да извршим контролу суме"
 
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1071
 msgid "Package does not match checksum"
 msgstr "Пакет нема одговарајући контролну суму"
 
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1114
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr ""
 "пакет нема одговарајућу вредност контролне суме или је за %s укључено "
 "кеширање"
 
-#: ../yum/__init__.py:1042
+#: ../yum/__init__.py:1117 ../yum/__init__.py:1145
 #, python-format
 msgid "using local copy of %s"
 msgstr "користим локални умножак %s-а"
 
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1159
 #, python-format
-msgid "Insufficient space in download directory %s to download"
-msgstr "Недовољна количина простора у директоријуму %s намењеног за преузимање"
+msgid ""
+"Insufficient space in download directory %s\n"
+"    * free   %s\n"
+"    * needed %s"
+msgstr ""
+"Недовољна количина простора у директоријуму %s за преузимање\n"
+"    * слободно је %s\n"
+"    * потребно је %s"
 
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1206
 msgid "Header is not complete."
 msgstr "Заглавље није потпуно."
 
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1246
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1550,204 +1716,240 @@ msgstr ""
 "Заглавље није у локалном кешу и само начин рада са кеширањем је укључен. Не "
 "могу да преузмем %s"
 
-#: ../yum/__init__.py:1189
+#: ../yum/__init__.py:1301
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Јавни кључ за %s није инсталиран"
 
-#: ../yum/__init__.py:1193
+#: ../yum/__init__.py:1305
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Проблем са отварањем пакета %s"
 
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1313
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Јавни кључ за %s није поверљив"
 
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1317
 #, python-format
 msgid "Package %s is not signed"
 msgstr "Пакет %s није потписан"
 
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1355
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Не могу да уклоним %s"
 
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1359
 #, python-format
 msgid "%s removed"
 msgstr "%s је уклоњен"
 
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1396
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Не могу да уклоним %s датотеку %s"
 
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1400
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s датотека %s је уклоњена"
 
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1402
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s датотеке су уклоњене"
 
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1464
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Постоји више од једног идентичног слагања у групи за %s"
 
-#: ../yum/__init__.py:1335
+#: ../yum/__init__.py:1470
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Ништа се не слаже са %s.%s %s:%s-%s из ажурирања"
 
-#: ../yum/__init__.py:1543
+#: ../yum/__init__.py:1678
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
 msgstr ""
-"searchPackages() неће бити присутна у будућим верзијама Yum-"
-"а.                      Уместо ње користите searchGenerator(). \n"
+"searchPackages() неће бити присутна у будућим Yum "
+"верзијама.                      Уместо ње користите searchGenerator(). \n"
 
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1716
 #, python-format
 msgid "Searching %d packages"
 msgstr "Претражујем %d пакете"
 
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1720
 #, python-format
 msgid "searching package %s"
 msgstr "тражим пакет %s"
 
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1732
 msgid "searching in file entries"
 msgstr "тражим у уносима датотека"
 
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1739
 msgid "searching in provides entries"
 msgstr "тражим у уносима достављача"
 
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1772
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Доставља-слагање: %s"
 
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1821
+msgid "No group data available for configured repositories"
+msgstr "Нема доступних података о групама за подешене ризнице"
+
+#: ../yum/__init__.py:1847 ../yum/__init__.py:1866 ../yum/__init__.py:1897
+#: ../yum/__init__.py:1903 ../yum/__init__.py:1976 ../yum/__init__.py:1980
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Не постоји група под именом %s"
 
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1878 ../yum/__init__.py:1993
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "пакет %s није означен у групи %s"
 
-#: ../yum/__init__.py:1770
+#: ../yum/__init__.py:1925
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Додајем пакет %s из групе %s"
 
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1929
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Ниједан пакет под именом %s није доступан за инсталацију"
 
-#: ../yum/__init__.py:1849
+#: ../yum/__init__.py:2018
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Група пакета %s није нађена у packagesack-у"
 
-#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:2033
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr ""
+"getInstalledPackageObject() ће нестати, користите self.rpmdb.searchPkgTuple"
+"().\n"
+
+#: ../yum/__init__.py:2085 ../yum/__init__.py:2128
 msgid "Invalid versioned dependency string, try quoting it."
 msgstr ""
 "Неисправна ниска зависности са верзијом, покушајте да је обележите "
 "наводницима."
 
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:2087 ../yum/__init__.py:2130
 msgid "Invalid version flag"
 msgstr "Погрешна ознака верзије"
 
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:2102 ../yum/__init__.py:2106
 #, python-format
 msgid "No Package found for %s"
 msgstr "Нема пронађених пакета за %s"
 
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2305
 msgid "Package Object was not a package object instance"
 msgstr "Објекат пакета није био примерак објекта пакета"
 
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2309
 msgid "Nothing specified to install"
 msgstr "Није одређено ништа за инсталацију"
 
 #. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2327
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Проверавам виртуелну доставу или доставу датотеке за %s"
 
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2333 ../yum/__init__.py:2715
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Не постоји слагање за аргумент: %s"
 
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2399
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Пакет %s је инсталиран и није доступан"
+
+#: ../yum/__init__.py:2402
 msgid "No package(s) available to install"
 msgstr "Нема пакета доступних за инсталацију"
 
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2414
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Пакет: %s  - већ је у скупу трансакције"
 
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2427
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "Већ је инсталирана најновија верзија пакета %s"
 
-#: ../yum/__init__.py:2178
+#: ../yum/__init__.py:2434
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr ""
 "Пакет који се поклапа са %s је већ инсталиран. Проверавам за новију верзију."
 
+#: ../yum/__init__.py:2444
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "Пакет %s је замењен пакетом %s, покушавам да наместо инсталирам %s"
+
 #. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2514
 msgid "Updating Everything"
 msgstr "Ажурирам све"
 
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2526 ../yum/__init__.py:2631 ../yum/__init__.py:2642
+#: ../yum/__init__.py:2664
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Не ажурирам пакете који су већ превазиђени: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2622
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Пакет је већ превазиђен: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2377
+#: ../yum/__init__.py:2645 ../yum/__init__.py:2667
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Не ажурирам пакете који су већ ажурирани: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2712
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2392
+#: ../yum/__init__.py:2728
 msgid "No package matched to remove"
 msgstr "Ниједан пакет није одређен за уклањање"
 
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2762
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Не могу да отворим датотеку: %s. Прескачем је."
 
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2765
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Испитујем %s: %s"
 
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2773
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr ""
+"Не могу да додам пакет %s у трансакцију. Архитектура није усаглашена: %s"
+
+#: ../yum/__init__.py:2781
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -1756,136 +1958,157 @@ msgstr ""
 "Пакет %s није инсталиран, не могу да га ажурирам. Извршите yum инсталацију "
 "да бисте га инсталирали."
 
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2814
 #, python-format
 msgid "Excluding %s"
 msgstr "Изузимам %s"
 
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2819
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Означавам %s за инсталацију"
 
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2825
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Означавам %s као ажурирање за %s"
 
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2832
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: не ажурира инсталирани пакет."
 
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2850
 msgid "Problem in reinstall: no package matched to remove"
 msgstr ""
 "Проблем при поновној инсталацији: ниједан пакет није одређен за уклањање"
 
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2861
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Пакету %s су дозвољене многоструке инсталације, прескачем га"
 
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2868
 msgid "Problem in reinstall: no package matched to install"
 msgstr ""
 "Проблем при поновној инсталацији: ниједан пакет није одређен за инсталацију"
 
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2903
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Добављам GPG кључ са %s"
 
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2923
 msgid "GPG key retrieval failed: "
 msgstr "Добављање GPG кључа није успело: "
 
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "Рашчлањивање GPG кључа није успело: "
+#: ../yum/__init__.py:2934
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "Рашчлањивање GPG кључа није успело: кључ нема вредност %s"
 
-#: ../yum/__init__.py:2593
+#: ../yum/__init__.py:2966
 #, 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:2598
+#: ../yum/__init__.py:2971 ../yum/__init__.py:3033
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Увозим GPG кључ 0x%s „%s“ из %s"
 
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2988
 msgid "Not installing key"
 msgstr "Не инсталирам кључ"
 
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2994
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Није успео увоз кључа (код %d)"
 
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2995 ../yum/__init__.py:3054
 msgid "Key imported successfully"
 msgstr "Кључ је успешно увезен"
 
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:3000 ../yum/__init__.py:3059
 #, 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“ ризницу су већ исталирани али нису "
+"GPG кључеви излистани за „%s“ ризницу су већ инсталирани али нису "
 "одговарајући за овај пакет.\n"
 "Проверите да ли су подешени одговарајући УРЛ-ови кључева за ову ризницу."
 
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:3009
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Увоз кључа(кључева) није помогао, погрешан кључ(кључеви)?"
 
-#: ../yum/__init__.py:2707
+#: ../yum/__init__.py:3028
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG кључ на %s (0x%s) је већ увезен"
+
+#: ../yum/__init__.py:3048
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "Не инсталирам кључ за ризницу %s"
+
+#: ../yum/__init__.py:3053
+msgid "Key import failed"
+msgstr "Није успео увоз кључа"
+
+#: ../yum/__init__.py:3144
 msgid "Unable to find a suitable mirror."
 msgstr "Не могу да пронађем одговарајући одраз."
 
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:3146
 msgid "Errors were encountered while downloading packages."
 msgstr "Појавиле су се грешке за време преузимања пакета."
 
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:3210
 msgid "Test Transaction Errors: "
 msgstr "Грешке при провери трансакције: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:199
 msgid "Loaded plugins: "
 msgstr "Учитани додаци: "
 
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:213 ../yum/plugins.py:219
 #, python-format
 msgid "No plugin match for: %s"
 msgstr "Не постоји слагање за додатак: %s"
 
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:249
 #, python-format
 msgid "\"%s\" plugin is disabled"
 msgstr "„%s“ додатак је искључен"
 
-#: ../yum/plugins.py:231
+#. Give full backtrace:
+#: ../yum/plugins.py:261
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "Додатак „%s“ не може да буде увезен"
+
+#: ../yum/plugins.py:268
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "Додатак „%s“ не одређује верзију захтеваног API-а"
 
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:273
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "Додатак „%s“ захтева API %s. Подржани API је %s."
 
-#: ../yum/plugins.py:264
+#: ../yum/plugins.py:306
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Учитавам „%s“ додатак"
 
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:313
 #, python-format
 msgid ""
 "Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -1893,22 +2116,26 @@ msgstr ""
 "У путањи за претраживање додатака постоје два или више додатака под именом „%"
 "s“"
 
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:333
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Датотека подешавања %s није пронађена"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
+#: ../yum/plugins.py:336
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Не могу да пронађем датотеку подешавања за додатак %s"
 
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:490
 msgid "registration of commands not supported"
 msgstr "регистрација команди није подржана"
 
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Поновно паковање"
+
 #: ../rpmUtils/oldUtils.py:26
 #, python-format
 msgid "Header cannot be opened or does not match %s, %s."
@@ -1927,7 +2154,7 @@ msgstr ""
 
 #: ../rpmUtils/oldUtils.py:174
 msgid "Got an empty Header, something has gone wrong"
-msgstr "Добио сам празно заглавље, нешто је пошло наопако"
+msgstr "Примљено је празно заглавље, нешто је пошло наопако"
 
 #: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
 #: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
@@ -1939,64 +2166,3 @@ msgstr "Оштећено заглавље %s"
 #, python-format
 msgid "Error opening rpm %s - error %s"
 msgstr "Грешка при отварању rpm-а %s - грешка %s"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s option requires an argument"
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s опција захтева аргумент"
-
-#~ msgid "show this help message and exit"
-#~ msgstr "прикажи ову помоћну поруку и изађи"
-
-#~ msgid "verbose operation"
-#~ msgstr "опширна радња"
-
-#~ msgid "Repo-id     : "
-#~ msgstr "ИБ ризнице      : "
-
-#~ msgid "Repo-name   : "
-#~ msgstr "Име ризнице     : "
-
-#~ msgid "Repo-enabled: "
-#~ msgstr "Ризница укључена: "
-
-#~ msgid "Repo-size   : "
-#~ msgstr "Величина ризнице: "
-
-#~ msgid "Running compare_providers() for %s"
-#~ msgstr "Покрећем compare_providers() за %s"
-
-#~ msgid ""
-#~ "archdist compared %s to %s on %s\n"
-#~ "  Winner: %s"
-#~ msgstr ""
-#~ "archdist упоредио %s са %s на %s\n"
-#~ "  Победник: %s"
-
-#~ msgid "common sourcerpm %s and %s"
-#~ msgstr "заједнички изворни rpm %s и %s"
-
-#~ msgid "common prefix of %s between %s and %s"
-#~ msgstr "заједнички префикс %s између %s и %s"
-
-#~ msgid "Best Order: %s"
-#~ msgstr "Најбољи редослед: %s"
-
-#~ msgid ""
-#~ "Warning: scriptlet or other non-fatal errors occurred during transaction."
-#~ msgstr ""
-#~ "Упозорење: дошло је до грешке у скриптици или неке друге некритичне "
-#~ "грешке током транскације."
-
-#~ msgid "Package %s is obsoleted by %s, trying to install %s instead"
-#~ msgstr "Пакет %s је замењен пакетом %s, покушавам да наместо инсталирам %s"
-
-#~ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-#~ msgstr "Не ажурирам пакете који су већ ажурирани: %s.%s %s:%s-%s"
-
-#~ msgid "Repackaging"
-#~ msgstr "Поновно паковање"
diff --git a/po/sr at latin.po b/po/sr at latin.po
old mode 100644
new mode 100755
index dba9dcc..58af237
--- a/po/sr at latin.po
+++ b/po/sr at latin.po
@@ -1,42 +1,43 @@
-# translation of sr.po to Serbian
 # Serbian(Latin) translations for yum
 # Copyright (C) 2008 Linux at Duke
 # This file is distributed under the same license as the yum package.
-#
 # Jovan Krunic <jovan.krunic at gmail.com>, 2008.
 # Igor Miletic <grejigl-gnomeprevod at yahoo.ca>, 2008.
 # Miloš Komarčević <kmilos at gmail.com>, 2008.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-05-26 20:30-0000\n"
+"POT-Creation-Date: 2008-10-27 13:29+0000\n"
+"PO-Revision-Date: 2008-10-27 22:52+0000\n"
 "Last-Translator: Miloš Komarčević <kmilos at gmail.com>\n"
 "Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48 ../output.py:777 ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Ažuriram"
 
-#: ../callback.py:49
+#: ../callback.py:49 ../yum/rpmtrans.py:72
 msgid "Erasing"
 msgstr "Brišem"
 
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#. Arch can't get "that big" ... so always use the max.
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:776
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
 msgid "Installing"
 msgstr "Instaliram"
 
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
 msgid "Obsoleted"
 msgstr "Prevaziđeni"
 
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54 ../output.py:891
 msgid "Updated"
 msgstr "Ažurirani"
 
@@ -44,7 +45,7 @@ msgstr "Ažurirani"
 msgid "Erased"
 msgstr "Obrisani"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:889
 msgid "Installed"
 msgstr "Instalirani"
 
@@ -66,53 +67,68 @@ msgstr "Greška: pogrešno izlazno stanje: %s za %s"
 msgid "Erased: %s"
 msgstr "Obrisano: %s"
 
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217 ../output.py:778
 msgid "Removing"
 msgstr "Uklanjam"
 
-#: ../callback.py:219
+#: ../callback.py:219 ../yum/rpmtrans.py:77
 msgid "Cleanup"
 msgstr "Čišćenje"
 
-#: ../cli.py:103
+#: ../cli.py:105
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "Naredba „%s“ je već definisana"
 
-#: ../cli.py:115
+#: ../cli.py:117
 msgid "Setting up repositories"
 msgstr "Postavljam riznice"
 
-#: ../cli.py:126
+#: ../cli.py:128
 msgid "Reading repository metadata in from local files"
 msgstr "ÄŒitam metapodatke riznica iz lokalnih datoteka"
 
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:187 ../utils.py:71
 #, python-format
 msgid "Config Error: %s"
 msgstr "Greška pri podešavanju: %s"
 
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:190 ../cli.py:1128 ../utils.py:74
 #, python-format
 msgid "Options Error: %s"
 msgstr "Greška u opcijama: %s"
 
-#: ../cli.py:229
+#: ../cli.py:218
+#, python-format
+msgid "  Installed: %s-%s at %s"
+msgstr "  Instalirano: %s-%s na %s"
+
+#: ../cli.py:220
+#, fuzzy, python-format
+msgid "  Built    : %s at %s"
+msgstr "URL        : %s"
+
+#: ../cli.py:222
+#, fuzzy, python-format
+msgid "  Committed: %s at %s"
+msgstr "Objavljivač : %s"
+
+#: ../cli.py:259
 msgid "You need to give some command"
 msgstr "Morate da unesete neku komandu"
 
-#: ../cli.py:271
+#: ../cli.py:301
 msgid "Disk Requirements:\n"
 msgstr "Zahtevi diska:\n"
 
-#: ../cli.py:273
+#: ../cli.py:303
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Potrebno je najmanje %dMB na %s sistemu datoteka.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:308
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -120,55 +136,55 @@ msgstr ""
 "Sažetak grešaka\n"
 "-------------\n"
 
-#: ../cli.py:317
+#: ../cli.py:351
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr "Pokušavam da izvršim transakciju ali nema šta da se radi. Izlazim."
 
-#: ../cli.py:347
+#: ../cli.py:381
 msgid "Exiting on user Command"
 msgstr "Izlazim na komandu korisnika"
 
-#: ../cli.py:351
+#: ../cli.py:385
 msgid "Downloading Packages:"
 msgstr "Preuzimam pakete:"
 
-#: ../cli.py:356
+#: ../cli.py:390
 msgid "Error Downloading Packages:\n"
 msgstr "Greška pri preuzimanju paketa:\n"
 
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:404 ../yum/__init__.py:3182
 msgid "Running rpm_check_debug"
 msgstr "Izvršavam rpm_check_debug"
 
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:407 ../yum/__init__.py:3185
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "GREÅ KA sa rpm_check_debug u odnosu na depsolve:"
 
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:411 ../yum/__init__.py:3187
 msgid "Please report this error in bugzilla"
 msgstr "Molim vas, prijavite ovu grešku u bugzilli"
 
-#: ../cli.py:383
+#: ../cli.py:417
 msgid "Running Transaction Test"
 msgstr "Izvršavam proveru transakcije"
 
-#: ../cli.py:399
+#: ../cli.py:433
 msgid "Finished Transaction Test"
-msgstr "Završio sam proveru transakcije"
+msgstr "Završena je provera transakcije"
 
-#: ../cli.py:401
+#: ../cli.py:435
 msgid "Transaction Check Error:\n"
 msgstr "Greška pri proveri transakcije:\n"
 
-#: ../cli.py:408
+#: ../cli.py:442
 msgid "Transaction Test Succeeded"
 msgstr "Provera transakcije je uspela"
 
-#: ../cli.py:429
+#: ../cli.py:463
 msgid "Running Transaction"
 msgstr "Izvršavam transakciju"
 
-#: ../cli.py:459
+#: ../cli.py:493
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -176,378 +192,426 @@ msgstr ""
 "Odbijam da automatski uvezem ključeve kada se izvršavanje ne nadgleda.\n"
 "Za prevazilaženje ovoga koristite „-y“."
 
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "Raščlanjujem argumente instalacije paketa"
+#: ../cli.py:512 ../cli.py:545
+msgid "  * Maybe you meant: "
+msgstr "  * Možda ste mislili: "
+
+#: ../cli.py:528 ../cli.py:536
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "%s%s%s paket je dostupan, ali nije instaliran."
 
-#: ../cli.py:501
+#: ../cli.py:542 ../cli.py:577
 #, python-format
-msgid "No package %s available."
-msgstr "Ne postoji dostupan %s paket."
+msgid "No package %s%s%s available."
+msgstr "Ne postoji dostupan %s%s%s paket."
 
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:567
+msgid "Parsing package install arguments"
+msgstr "Raščlanjujem argumente instalacije paketa"
+
+#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:912
 msgid "Package(s) to install"
 msgstr "Paket(i) koji će se instalirati"
 
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:913
 msgid "Nothing to do"
 msgstr "Nema Å¡ta da se radi"
 
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, python-format
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "Ne ažuriram pakete koji su već prevaziđeni: %s.%s %s:%s-%s"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "Ne mogu da pronađem odgovarajuće ažuriranje za %s"
-
-#: ../cli.py:580
+#: ../cli.py:616
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d paketi označeni za ažuriranje"
 
-#: ../cli.py:583
+#: ../cli.py:619
 msgid "No Packages marked for Update"
 msgstr "Nema paketa označenih za ažuriranje"
 
-#: ../cli.py:599
+#: ../cli.py:633
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d paketi označeni za uklanjanje"
 
-#: ../cli.py:602
+#: ../cli.py:636
 msgid "No Packages marked for removal"
 msgstr "Nema paketa označenih za uklanjanje"
 
-#: ../cli.py:614
+#: ../cli.py:648
 msgid "No Packages Provided"
 msgstr "Nijedan paket nije dobavljen"
 
-#: ../cli.py:654
+#: ../cli.py:689
+#, fuzzy
 msgid "Matching packages for package list to user args"
 msgstr "Povezivanje paketa za spisak paketa po argumentima korisnika"
 
-#: ../cli.py:701
+#: ../cli.py:731
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Upozorenje: nije nađeno podudaranje za %s"
 
-#: ../cli.py:704
+#: ../cli.py:734
 msgid "No Matches found"
 msgstr "Nisu pronađena podudaranja"
 
-#: ../cli.py:745
+#: ../cli.py:773
+#, python-format
+msgid ""
+"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+" You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+msgstr ""
+"Upozorenje: 3.0.x yum verzije bi greškom vršile podudaranje sa nazivima "
+"datoteka.\n"
+" Možete upotrebiti „%s*/%s%s“ i/ili „%s*bin/%s%s“ da biste dobili takvo "
+"ponašanje"
+
+#: ../cli.py:789
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Nisu pronađeni paketi za %s"
 
-#: ../cli.py:757
+#: ../cli.py:801
 msgid "Cleaning up Everything"
 msgstr "ÄŒistim sve"
 
-#: ../cli.py:771
+#: ../cli.py:815
 msgid "Cleaning up Headers"
 msgstr "ÄŒistim zaglavlja"
 
-#: ../cli.py:774
+#: ../cli.py:818
 msgid "Cleaning up Packages"
 msgstr "ÄŒistim pakete"
 
-#: ../cli.py:777
+#: ../cli.py:821
 msgid "Cleaning up xml metadata"
 msgstr "ÄŒistim xml metapodatke"
 
-#: ../cli.py:780
+#: ../cli.py:824
 msgid "Cleaning up database cache"
-msgstr "Čistim keš baza podataka"
+msgstr "Čistim keš baze podataka"
 
-#: ../cli.py:783
+#: ../cli.py:827
 msgid "Cleaning up expire-cache metadata"
 msgstr "ÄŒistim expire-cache metapodatke"
 
-#: ../cli.py:786
+#: ../cli.py:830
 msgid "Cleaning up plugins"
 msgstr "ÄŒistim dodatke"
 
-#: ../cli.py:807
+#: ../cli.py:851
 msgid "Installed Groups:"
 msgstr "Instalirane grupe:"
 
-#: ../cli.py:814
+#: ../cli.py:858
 msgid "Available Groups:"
 msgstr "Dostupne grupe:"
 
-#: ../cli.py:820
+#: ../cli.py:864
 msgid "Done"
 msgstr "Urađeno"
 
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2274
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Upozorenje: grupa %s ne postoji."
 
-#: ../cli.py:853
+#: ../cli.py:903
 msgid "No packages in any requested group available to install or update"
 msgstr ""
 "Nema dostupnih paketa za instalaciju ili ažuriranje u svim zahtevanim grupama"
 
-#: ../cli.py:855
+#: ../cli.py:905
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d paket(i) za instalaciju"
 
-#: ../cli.py:865
+#: ../cli.py:915 ../yum/__init__.py:2286
 #, python-format
 msgid "No group named %s exists"
 msgstr "Ne postoji grupa pod imenom %s"
 
-#: ../cli.py:871
+#: ../cli.py:921
 msgid "No packages to remove from groups"
 msgstr "Nema paketa za uklanjanje iz grupa"
 
-#: ../cli.py:873
+#: ../cli.py:923
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d  paket(i) za uklanjanje"
 
-#: ../cli.py:915
+#: ../cli.py:965
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Paket %s je već instaliran, preskačem ga"
 
-#: ../cli.py:926
+#: ../cli.py:976
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "Uklanjam neuporediv paket %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:952
+#: ../cli.py:1002
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr ""
 "Ne postoji instaliran drugi %s, dodajem ga u spisak za potencijalnu "
 "instalaciju"
 
-#: ../cli.py:971
+#: ../cli.py:1021
 #, python-format
 msgid "Command line error: %s"
 msgstr "Greška komandne linije: %s"
 
-#: ../cli.py:1101
+#: ../cli.py:1034
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: %s opcija zahteva argument"
+
+#: ../cli.py:1170
+msgid "show this help message and exit"
+msgstr "prikaži ovu pomoćnu poruku i izađi"
+
+#: ../cli.py:1174
 msgid "be tolerant of errors"
 msgstr "budi tolerantan na greške"
 
-#: ../cli.py:1103
+#: ../cli.py:1176
 msgid "run entirely from cache, don't update cache"
 msgstr "izvršavaj se u potpunosti iz keša, ne ažuriraj keš"
 
-#: ../cli.py:1105
+#: ../cli.py:1178
 msgid "config file location"
 msgstr "mesto datoteke podešavanja"
 
-#: ../cli.py:1107
+#: ../cli.py:1180
 msgid "maximum command wait time"
 msgstr "najduže vreme čekanja na komandu"
 
-#: ../cli.py:1109
+#: ../cli.py:1182
 msgid "debugging output level"
 msgstr "nivo izlaznog prikaza za pronalaženje grešaka"
 
-#: ../cli.py:1113
+#: ../cli.py:1186
 msgid "show duplicates, in repos, in list/search commands"
 msgstr ""
 "prikazuj duplikate, u riznicama, u komandama za izlistavanje/pretraživanje"
 
-#: ../cli.py:1115
+#: ../cli.py:1188
 msgid "error output level"
 msgstr "nivo izlaznog prikaza grešaka"
 
-#: ../cli.py:1118
+#: ../cli.py:1191
 msgid "quiet operation"
 msgstr "tiha radnja"
 
-#: ../cli.py:1122
+#: ../cli.py:1193
+msgid "verbose operation"
+msgstr "opširna radnja"
+
+#: ../cli.py:1195
 msgid "answer yes for all questions"
 msgstr "odgovori sa da na sva pitanja"
 
-#: ../cli.py:1124
+#: ../cli.py:1197
 msgid "show Yum version and exit"
-msgstr "prikaži verziju Yum-a i izađi"
+msgstr "prikaži Yum verziju i izađi"
 
-#: ../cli.py:1125
+#: ../cli.py:1198
 msgid "set install root"
 msgstr "postavi koreni direktorijum instalacije"
 
-#: ../cli.py:1129
+#: ../cli.py:1202
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "uključi jednu ili više riznica (skraćenice su dozvoljene)"
 
-#: ../cli.py:1133
+#: ../cli.py:1206
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "isključi jednu ili više riznica (skraćenice su dozvoljene)"
 
-#: ../cli.py:1136
+#: ../cli.py:1209
 msgid "exclude package(s) by name or glob"
-msgstr "izuzmite paket(e) po imenu ili glob-u"
+msgstr "izuzmi paket(e) po imenu ili globu"
 
-#: ../cli.py:1138
+#: ../cli.py:1211
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "isključi izuzimanje iz glavnog skupa, za riznicu ili za sve"
 
-#: ../cli.py:1141
+#: ../cli.py:1214
 msgid "enable obsoletes processing during updates"
 msgstr "uključi obradu zastarelih paketa u toku ažuriranja"
 
-#: ../cli.py:1143
+#: ../cli.py:1216
 msgid "disable Yum plugins"
 msgstr "isključi dodatke za Yum"
 
-#: ../cli.py:1145
+#: ../cli.py:1218
 msgid "disable gpg signature checking"
 msgstr "isključi proveru gpg potpisa"
 
-#: ../cli.py:1147
+#: ../cli.py:1220
 msgid "disable plugins by name"
 msgstr "isključi dodatke po imenu"
 
-#: ../cli.py:1150
+#: ../cli.py:1223
+msgid "enable plugins by name"
+msgstr "uključi dodatke po imenu"
+
+#: ../cli.py:1226
 msgid "skip packages with depsolving problems"
 msgstr "preskoči pakete koji imaju problema sa rešavanjem zavisnosti"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Jan"
 msgstr "jan"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Feb"
 msgstr "feb"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Mar"
 msgstr "mar"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Apr"
 msgstr "apr"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "May"
 msgstr "maj"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Jun"
 msgstr "jun"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Jul"
 msgstr "jul"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Aug"
 msgstr "avg"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Sep"
 msgstr "sep"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Oct"
 msgstr "okt"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Nov"
 msgstr "nov"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Dec"
 msgstr "dec"
 
-#: ../output.py:240
+#: ../output.py:247
 msgid "Trying other mirror."
 msgstr "Pokušavam drugi odraz."
 
-#: ../output.py:293
+#: ../output.py:425
 #, python-format
-msgid "Name       : %s"
-msgstr "Ime        : %s"
+msgid "Name       : %s%s%s"
+msgstr "Ime        : %s%s%s"
 
-#: ../output.py:294
+#: ../output.py:426
 #, python-format
 msgid "Arch       : %s"
 msgstr "Arhitektura: %s"
 
-#: ../output.py:296
+#: ../output.py:428
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Period     : %s"
 
-#: ../output.py:297
+#: ../output.py:429
 #, python-format
 msgid "Version    : %s"
 msgstr "Verzija    : %s"
 
-#: ../output.py:298
+#: ../output.py:430
 #, python-format
 msgid "Release    : %s"
-msgstr "Izdanje     : %s"
+msgstr "Izdanje    : %s"
 
-#: ../output.py:299
+#: ../output.py:431
 #, python-format
 msgid "Size       : %s"
 msgstr "Veličina   : %s"
 
-#: ../output.py:300
+#: ../output.py:432
 #, python-format
 msgid "Repo       : %s"
 msgstr "Riznica    : %s"
 
-#: ../output.py:302
+#: ../output.py:434
 #, python-format
 msgid "Committer  : %s"
+msgstr "Objavljivač: %s"
+
+#: ../output.py:435
+#, fuzzy, python-format
+msgid "Committime : %s"
+msgstr "Objavljivač : %s"
+
+#: ../output.py:436
+#, fuzzy, python-format
+msgid "Buildtime  : %s"
 msgstr "Objavljivač : %s"
 
-#: ../output.py:303
+#: ../output.py:438
+#, fuzzy, python-format
+msgid "Installtime: %s"
+msgstr "Instalirani"
+
+#: ../output.py:439
 msgid "Summary    : "
 msgstr "Sažetak    :"
 
-#: ../output.py:305
+#: ../output.py:441
 #, python-format
 msgid "URL        : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:306
+#: ../output.py:442
 #, python-format
 msgid "License    : %s"
 msgstr "Licenca    : %s"
 
-#: ../output.py:307
+#: ../output.py:443
 msgid "Description: "
 msgstr "Opis       : "
 
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "Da li je ovo u redu [d/N]: "
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
 msgid "y"
 msgstr "d"
 
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
 msgid "yes"
 msgstr "da"
 
-#: ../output.py:357
+#: ../output.py:501
+msgid "n"
+msgstr "n"
+
+#: ../output.py:501
 msgid "no"
 msgstr "ne"
 
-#: ../output.py:367
+#: ../output.py:505
+msgid "Is this ok [y/N]: "
+msgstr "Da li je ovo u redu [d/N]: "
+
+#: ../output.py:587
 #, python-format
 msgid ""
 "\n"
@@ -556,96 +620,123 @@ msgstr ""
 "\n"
 "Grupa: %s"
 
-#: ../output.py:369
+#: ../output.py:594
 #, python-format
 msgid " Description: %s"
 msgstr " Opis: %s"
 
-#: ../output.py:371
+#: ../output.py:596
 msgid " Mandatory Packages:"
 msgstr " Obavezni paketi:"
 
-#: ../output.py:376
+#: ../output.py:597
 msgid " Default Packages:"
 msgstr " Podrazumevani paketi:"
 
-#: ../output.py:381
+#: ../output.py:598
 msgid " Optional Packages:"
 msgstr " Izborni paketi:"
 
-#: ../output.py:386
+#: ../output.py:599
 msgid " Conditional Packages:"
 msgstr " Uslovljeni paketi:"
 
-#: ../output.py:394
+#: ../output.py:619
 #, python-format
 msgid "package: %s"
 msgstr "paket: %s"
 
-#: ../output.py:396
+#: ../output.py:621
 msgid "  No dependencies for this package"
 msgstr "  Ne postoje zavisnosti ovog paketa"
 
-#: ../output.py:401
+#: ../output.py:626
 #, python-format
 msgid "  dependency: %s"
 msgstr "  zavisnost: %s"
 
-#: ../output.py:403
+#: ../output.py:628
 msgid "   Unsatisfied dependency"
 msgstr "   Nezadovoljena zavisnost"
 
-#: ../output.py:461
+#: ../output.py:700
 msgid "Matched from:"
 msgstr "Povezan iz:"
 
-#: ../output.py:487
+#: ../output.py:708
+msgid "Description : "
+msgstr "Opis        : "
+
+#: ../output.py:711
+#, python-format
+msgid "URL         : %s"
+msgstr "URL         : %s"
+
+#: ../output.py:714
+#, python-format
+msgid "License     : %s"
+msgstr "Licenca     : %s"
+
+#: ../output.py:717
+#, python-format
+msgid "Filename    : %s"
+msgstr "Ime datoteke: %s"
+
+#: ../output.py:721
+msgid "Other       : "
+msgstr "Ostalo      : "
+
+#: ../output.py:753
 msgid "There was an error calculating total download size"
 msgstr "Dogodila se greška pri računanju ukupne veličine za preuzimanje"
 
-#: ../output.py:492
+#: ../output.py:758
 #, python-format
 msgid "Total size: %s"
 msgstr "Ukupna veličina: %s"
 
-#: ../output.py:495
+#: ../output.py:761
 #, python-format
 msgid "Total download size: %s"
 msgstr "Ukupna veličina za preuzimanje: %s"
 
-#: ../output.py:507
+#: ../output.py:779
+msgid "Installing for dependencies"
+msgstr "Instaliram zbog zavisnosti"
+
+#: ../output.py:780
+msgid "Updating for dependencies"
+msgstr "Ažuriram zbog zavisnosti"
+
+#: ../output.py:781
+msgid "Removing for dependencies"
+msgstr "Uklanjam zbog zavisnosti"
+
+#: ../output.py:782 ../output.py:893
+msgid "Skipped (dependency problems)"
+msgstr "Preskočeno (problemi sa zavisnostima)"
+
+#: ../output.py:818
 msgid "Package"
 msgstr "Paket"
 
-#: ../output.py:507
+#: ../output.py:818
 msgid "Arch"
 msgstr "Arhitektura"
 
-#: ../output.py:507
+#: ../output.py:819
 msgid "Version"
 msgstr "Verzija"
 
-#: ../output.py:507
+#: ../output.py:819
 msgid "Repository"
 msgstr "Riznica"
 
-#: ../output.py:507
+#: ../output.py:820
 msgid "Size"
 msgstr "Veličina"
 
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "Instaliram zbog zavisnosti"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "Ažuriram zbog zavisnosti"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "Uklanjam zbog zavisnosti"
-
-#: ../output.py:528
+#: ../output.py:831
 #, python-format
 msgid ""
 "     replacing  %s.%s %s\n"
@@ -654,44 +745,44 @@ msgstr ""
 "     uklanjam  %s.%s %s\n"
 "\n"
 
-#: ../output.py:536
+#: ../output.py:839
 #, python-format
 msgid ""
 "\n"
 "Transaction Summary\n"
-"=============================================================================\n"
+"%s\n"
 "Install  %5.5s Package(s)         \n"
 "Update   %5.5s Package(s)         \n"
 "Remove   %5.5s Package(s)         \n"
 msgstr ""
 "\n"
 "Sažetak transakcije\n"
-"=============================================================================\n"
-"instaliranje  %5.5s paket(a)       \n"
-"ažuriranje    %5.5s paket(a)       \n"
-"uklanjanje     %5.5s paket(a)       \n"
+"%s\n"
+"Instalacija  %5.5s paket(a)       \n"
+"Ažuriranje   %5.5s paket(a)       \n"
+"Uklanjanje   %5.5s paket(a)       \n"
 
-#: ../output.py:554
+#: ../output.py:887
 msgid "Removed"
 msgstr "Uklonjeno"
 
-#: ../output.py:555
+#: ../output.py:888
 msgid "Dependency Removed"
 msgstr "Zavisnost uklonjena"
 
-#: ../output.py:557
+#: ../output.py:890
 msgid "Dependency Installed"
 msgstr "Zavisnost instalirana"
 
-#: ../output.py:559
+#: ../output.py:892
 msgid "Dependency Updated"
 msgstr "Zavisnost ažurirana"
 
-#: ../output.py:560
+#: ../output.py:894
 msgid "Replaced"
 msgstr "Zamenjeno"
 
-#: ../output.py:618
+#: ../output.py:967
 #, python-format
 msgid ""
 "\n"
@@ -702,73 +793,77 @@ msgstr ""
 " Trenutno preuzimanje je obustavljeno, %sinterrupt (ctrl-c) još jednom%s u "
 "toku %s%s%s sekundi da biste izašli.\n"
 
-#: ../output.py:628
+#: ../output.py:977
 msgid "user interrupt"
 msgstr "prekid od strane korisnika"
 
-#: ../output.py:639
+#: ../output.py:993
+msgid "Total"
+msgstr "Ukupno"
+
+#: ../output.py:1007
 msgid "installed"
 msgstr "instaliran"
 
-#: ../output.py:640
+#: ../output.py:1008
 msgid "updated"
 msgstr "ažuriran"
 
-#: ../output.py:641
+#: ../output.py:1009
 msgid "obsoleted"
 msgstr "prevaziđen"
 
-#: ../output.py:642
+#: ../output.py:1010
 msgid "erased"
 msgstr "obrisan"
 
-#: ../output.py:646
+#: ../output.py:1014
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Paket %s.%s %s:%s-%s postavljen da bude %s"
 
-#: ../output.py:653
+#: ../output.py:1021
 msgid "--> Running transaction check"
 msgstr "--> Izvršava se provera transakcije"
 
-#: ../output.py:658
+#: ../output.py:1026
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Ponovno pokretanje razrešavanja zavisnosti sa novim promenama."
 
-#: ../output.py:663
+#: ../output.py:1031
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Završeno je razrešavanje zavisnosti"
 
-#: ../output.py:668
+#: ../output.py:1036
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Obrađujem zavisnost: %s za paket: %s"
 
-#: ../output.py:673
+#: ../output.py:1041
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Nerazrešena zavisnost: %s"
 
-#: ../output.py:679
+#: ../output.py:1047
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Sukob pri obradi: %s se sukobi sa %s"
 
-#: ../output.py:682
+#: ../output.py:1050
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr ""
 "--> Popunjavam skup transakcije sa izabranim paketima. Molim vas, sačekajte."
 
-#: ../output.py:686
+#: ../output.py:1054
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Preuzimam zaglavlje za %s radi pakovanja u skup transakcije."
 
-#: ../yumcommands.py:36
+#: ../yumcommands.py:40
 msgid "You need to be root to perform this command."
 msgstr "Morate biti root korisnik da biste izvršili ovu komandu."
 
-#: ../yumcommands.py:43
+#: ../yumcommands.py:47
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -799,252 +894,313 @@ msgstr ""
 "\n"
 "Za više informacija kontaktirajte dobavljača vaše distribucije ili paketa.\n"
 
-#: ../yumcommands.py:63
+#: ../yumcommands.py:67
 #, python-format
 msgid "Error: Need to pass a list of pkgs to %s"
 msgstr "Greška: potrebno je da dodate spisak paketa %s-u"
 
-#: ../yumcommands.py:69
+#: ../yumcommands.py:73
 msgid "Error: Need an item to match"
 msgstr "Greška: potrebno je pridružiti stavku"
 
-#: ../yumcommands.py:75
+#: ../yumcommands.py:79
 msgid "Error: Need a group or list of groups"
 msgstr "Greška: potrebna je grupa ili spisak grupa"
 
-#: ../yumcommands.py:84
+#: ../yumcommands.py:88
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "Greška: clean zahteva opciju: %s"
 
-#: ../yumcommands.py:89
+#: ../yumcommands.py:93
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "Greška: pogrešan clean argument:%r"
 
-#: ../yumcommands.py:102
+#: ../yumcommands.py:106
 msgid "No argument to shell"
 msgstr "Ne postoji argument za komandno okruženje"
 
-#: ../yumcommands.py:105
+#: ../yumcommands.py:109
 #, python-format
 msgid "Filename passed to shell: %s"
 msgstr "Ime datoteke je prosleđeno komandnom okruženju: %s"
 
-#: ../yumcommands.py:109
+#: ../yumcommands.py:113
 #, python-format
 msgid "File %s given as argument to shell does not exist."
 msgstr ""
-"Ne postoji datoteka %s, koja je prosleđena kao argument komadnom okruženju."
+"Ne postoji datoteka %s, koja je prosleđena kao argument komandnom okruženju."
 
-#: ../yumcommands.py:115
+#: ../yumcommands.py:119
 msgid "Error: more than one file given as argument to shell."
 msgstr ""
 "Greška: više od jedne datoteke je prosleđeno kao argument komandnom "
 "okruženju."
 
-#: ../yumcommands.py:156
+#: ../yumcommands.py:160
 msgid "PACKAGE..."
 msgstr "PAKET..."
 
-#: ../yumcommands.py:159
+#: ../yumcommands.py:163
 msgid "Install a package or packages on your system"
 msgstr "Instalirajte paket ili pakete na vaš sistem"
 
-#: ../yumcommands.py:168
+#: ../yumcommands.py:172
 msgid "Setting up Install Process"
 msgstr "Postavljam proces instalacije"
 
-#: ../yumcommands.py:179
+#: ../yumcommands.py:183
 msgid "[PACKAGE...]"
 msgstr "[PAKET...]"
 
-#: ../yumcommands.py:182
+#: ../yumcommands.py:186
 msgid "Update a package or packages on your system"
 msgstr "Ažuriraj paket ili pakete na vašem sistemu"
 
-#: ../yumcommands.py:190
+#: ../yumcommands.py:194
 msgid "Setting up Update Process"
 msgstr "Postavljam proces ažuriranja"
 
-#: ../yumcommands.py:204
+#: ../yumcommands.py:236
 msgid "Display details about a package or group of packages"
 msgstr "Prikaži detalje o svakom paketu ili grupi paketa"
 
-#: ../yumcommands.py:212
+#. Output the packages:
+#: ../yumcommands.py:261
 msgid "Installed Packages"
 msgstr "Instalirani paketi"
 
-#: ../yumcommands.py:213
+#: ../yumcommands.py:263
 msgid "Available Packages"
 msgstr "Dostupni paketi"
 
-#: ../yumcommands.py:214
+#: ../yumcommands.py:265
 msgid "Extra Packages"
 msgstr "Dodatni paketi"
 
-#: ../yumcommands.py:215
+#: ../yumcommands.py:267
 msgid "Updated Packages"
 msgstr "Ažurirani paketi"
 
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:274 ../yumcommands.py:281
 msgid "Obsoleting Packages"
 msgstr "Prevaziđeni paketi"
 
-#: ../yumcommands.py:226
+#: ../yumcommands.py:283
 msgid "Recently Added Packages"
 msgstr "Nedavno dodati paketi"
 
-#: ../yumcommands.py:232
+#: ../yumcommands.py:290
 msgid "No matching Packages to list"
 msgstr "Ne postoje odgovarajući paketi za izlistavanje"
 
-#: ../yumcommands.py:246
+#: ../yumcommands.py:304
 msgid "List a package or groups of packages"
 msgstr "Izlistaj pakete ili grupe paketa"
 
-#: ../yumcommands.py:258
+#: ../yumcommands.py:316
 msgid "Remove a package or packages from your system"
 msgstr "Uklonite paket ili pakete sa vašeg sistema"
 
-#: ../yumcommands.py:266
+#: ../yumcommands.py:324
 msgid "Setting up Remove Process"
 msgstr "Postavljam proces uklanjanja"
 
-#: ../yumcommands.py:278
+#: ../yumcommands.py:339
 msgid "Setting up Group Process"
 msgstr "Postavljam proces za grupe"
 
-#: ../yumcommands.py:284
+#: ../yumcommands.py:345
 msgid "No Groups on which to run command"
 msgstr "Ne postoji grupa nad kojom se može izvršiti komanda"
 
-#: ../yumcommands.py:297
+#: ../yumcommands.py:358
 msgid "List available package groups"
 msgstr "Izlistaj dostupne grupe paketa"
 
-#: ../yumcommands.py:314
+#: ../yumcommands.py:375
 msgid "Install the packages in a group on your system"
 msgstr "Instalirajte pakete u grupi na vašem sistemu"
 
-#: ../yumcommands.py:336
+#: ../yumcommands.py:397
 msgid "Remove the packages in a group from your system"
 msgstr "Uklonite pakete u grupi sa vašeg sistema"
 
-#: ../yumcommands.py:360
+#: ../yumcommands.py:424
 msgid "Display details about a package group"
 msgstr "Prikaži detalje o grupi paketa"
 
-#: ../yumcommands.py:384
+#: ../yumcommands.py:448
 msgid "Generate the metadata cache"
 msgstr "Napravi keš sa metapodacima"
 
-#: ../yumcommands.py:390
+#: ../yumcommands.py:454
 msgid "Making cache files for all metadata files."
 msgstr "Pravim keš datoteke za sve datoteke sa metapodacima."
 
-#: ../yumcommands.py:391
+#: ../yumcommands.py:455
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Ovo može da potraje u zavisnosti od brzine vašeg računara"
 
-#: ../yumcommands.py:412
+#: ../yumcommands.py:476
 msgid "Metadata Cache Created"
 msgstr "Napravljen je keš sa metapodacima"
 
-#: ../yumcommands.py:426
+#: ../yumcommands.py:490
 msgid "Remove cached data"
 msgstr "Ukloni keširane podatke"
 
-#: ../yumcommands.py:447
+#: ../yumcommands.py:511
 msgid "Find what package provides the given value"
 msgstr "Pronađi koji paket pruža datu vrednost"
 
-#: ../yumcommands.py:467
+#: ../yumcommands.py:531
 msgid "Check for available package updates"
 msgstr "Proverite da li su dostupna ažuriranja paketa"
 
-#: ../yumcommands.py:490
+#: ../yumcommands.py:556
 msgid "Search package details for the given string"
 msgstr "Pretražite detalje o paketu za zadatu nisku"
 
-#: ../yumcommands.py:496
+#: ../yumcommands.py:562
 msgid "Searching Packages: "
 msgstr "Pretražujem pakete: "
 
-#: ../yumcommands.py:513
+#: ../yumcommands.py:579
 msgid "Update packages taking obsoletes into account"
 msgstr "Ažurirajte pakete uzimajući prevaziđene u obzir"
 
-#: ../yumcommands.py:522
+#: ../yumcommands.py:588
 msgid "Setting up Upgrade Process"
 msgstr "Postavljam proces nadgradnje"
 
-#: ../yumcommands.py:536
+#: ../yumcommands.py:602
 msgid "Install a local RPM"
 msgstr "Instaliraj lokalni RPM"
 
-#: ../yumcommands.py:545
+#: ../yumcommands.py:611
 msgid "Setting up Local Package Process"
 msgstr "Postavljam proces lokalnih paketa"
 
-#: ../yumcommands.py:564
+#: ../yumcommands.py:630
 msgid "Determine which package provides the given dependency"
 msgstr "Odredi koji paketi pružaju datu zavisnost"
 
-#: ../yumcommands.py:567
+#: ../yumcommands.py:633
 msgid "Searching Packages for Dependency:"
 msgstr "Pretražujem pakete u potrazi za zavisnostima:"
 
-#: ../yumcommands.py:581
+#: ../yumcommands.py:647
 msgid "Run an interactive yum shell"
 msgstr "Izvršavaj interaktivno komandno okruženje yum-a"
 
-#: ../yumcommands.py:587
+#: ../yumcommands.py:653
 msgid "Setting up Yum Shell"
 msgstr "Postavljam Yum komandno okruženje"
 
-#: ../yumcommands.py:605
+#: ../yumcommands.py:671
 msgid "List a package's dependencies"
 msgstr "Izlistaj zavisnosti paketa"
 
-#: ../yumcommands.py:611
+#: ../yumcommands.py:677
 msgid "Finding dependencies: "
 msgstr "Tražim zavisnosti: "
 
-#: ../yumcommands.py:627
+#: ../yumcommands.py:693
 msgid "Display the configured software repositories"
 msgstr "Prikaži podešene softverske riznice"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:742
+msgid "enabled"
+msgstr "uključena"
+
+#: ../yumcommands.py:751
+msgid "disabled"
+msgstr "isključena"
+
+#: ../yumcommands.py:760
 msgid "repo id"
 msgstr "repo id"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
 msgid "repo name"
 msgstr "repo ime"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
 msgid "status"
 msgstr "status"
 
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "uključena"
+#: ../yumcommands.py:765
+msgid "Repo-id     : "
+msgstr "IB riznice         : "
 
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "isključena"
+#: ../yumcommands.py:766
+msgid "Repo-name   : "
+msgstr "Ime riznice        : "
 
-#: ../yumcommands.py:671
+#: ../yumcommands.py:767
+msgid "Repo-status : "
+msgstr "Status riznice     : "
+
+#: ../yumcommands.py:769
+#, fuzzy
+msgid "Repo-revision: "
+msgstr "Veličina riznice   : "
+
+#: ../yumcommands.py:773
+#, fuzzy
+msgid "Repo-tags   : "
+msgstr "Paketi riznice     : "
+
+#: ../yumcommands.py:779
+#, fuzzy
+msgid "Repo-distro-tags: "
+msgstr "Status riznice     : "
+
+#: ../yumcommands.py:784
+msgid "Repo-updated: "
+msgstr "Riznica ažurirana  : "
+
+#: ../yumcommands.py:786
+msgid "Repo-pkgs   : "
+msgstr "Paketi riznice     : "
+
+#: ../yumcommands.py:787
+msgid "Repo-size   : "
+msgstr "Veličina riznice   : "
+
+#: ../yumcommands.py:794
+msgid "Repo-baseurl: "
+msgstr "Osnovni URL riznice: "
+
+#: ../yumcommands.py:798
+#, fuzzy
+msgid "Repo-metalink: "
+msgstr "Ime riznice        : "
+
+#: ../yumcommands.py:801
+msgid "Repo-mirrors: "
+msgstr "Odrazi riznice     : "
+
+#: ../yumcommands.py:805
+msgid "Repo-exclude: "
+msgstr "Riznica isključena : "
+
+#: ../yumcommands.py:809
+msgid "Repo-include: "
+msgstr "Riznica uključena  : "
+
+#: ../yumcommands.py:835
 msgid "Display a helpful usage message"
 msgstr "Prikaži korisnu poruku o upotrebi"
 
-#: ../yumcommands.py:705
+#: ../yumcommands.py:869
 #, python-format
 msgid "No help available for %s"
 msgstr "Nije dostupna pomoć za %s"
 
-#: ../yumcommands.py:710
+#: ../yumcommands.py:874
 msgid ""
 "\n"
 "\n"
@@ -1052,9 +1208,9 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"alijasi: "
+"pseudonimi: "
 
-#: ../yumcommands.py:712
+#: ../yumcommands.py:876
 msgid ""
 "\n"
 "\n"
@@ -1062,13 +1218,13 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"alijas: "
+"pseudonim: "
 
-#: ../yumcommands.py:741
+#: ../yumcommands.py:905
 msgid "Setting up Reinstall Process"
 msgstr "Postavljam proces ponovne instalacije"
 
-#: ../yumcommands.py:755
+#: ../yumcommands.py:919
 msgid "reinstall a package"
 msgstr "ponovno instaliram paket"
 
@@ -1092,29 +1248,29 @@ msgstr ""
 "\n"
 "Izlazim kada se slomi cev"
 
-#: ../yummain.py:105
+#: ../yummain.py:98
 msgid ""
 "Another app is currently holding the yum lock; waiting for it to exit..."
 msgstr ""
-"Neki drugi program trenutno drži yum zaključavanje, čekam da se taj program "
-"isključi..."
+"Neki drugi program trenutno drži yum zaključanim; čekam da taj program "
+"izađe..."
 
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:125 ../yummain.py:164
 #, python-format
 msgid "Error: %s"
 msgstr "Greška: %s"
 
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:135 ../yummain.py:171
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Nepoznata greška(e): izlazni kod: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:142
 msgid "Resolving Dependencies"
 msgstr "Razrešavam zavisnosti"
 
-#: ../yummain.py:184
+#: ../yummain.py:177
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1122,11 +1278,11 @@ msgstr ""
 "\n"
 "Zavisnosti su razrešene"
 
-#: ../yummain.py:198
+#: ../yummain.py:191
 msgid "Complete!"
 msgstr "Završeno!"
 
-#: ../yummain.py:245
+#: ../yummain.py:238
 msgid ""
 "\n"
 "\n"
@@ -1136,318 +1292,315 @@ msgstr ""
 "\n"
 "Izlazim kada korisnik otkaže."
 
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:84
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() neće biti prisutna u budućim verzijama Yum-a.\n"
 
-#: ../yum/depsolve.py:95
+#: ../yum/depsolve.py:97
 msgid "Setting up TransactionSets before config class is up"
 msgstr "Postavljam TransactionSets pre nego što se podigne klasa podešavanja"
 
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:148
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "Pogrešan tsflag u datoteci podešavanja: %s"
 
-#: ../yum/depsolve.py:147
+#: ../yum/depsolve.py:159
 #, fuzzy, python-format
 msgid "Searching pkgSack for dep: %s"
 msgstr "tražim paket %s"
 
-#: ../yum/depsolve.py:170
+#: ../yum/depsolve.py:182
 #, fuzzy, python-format
 msgid "Potential match for %s from %s"
 msgstr "Postoji više od jednog identičnog slaganja u grupi za %s"
 
-#: ../yum/depsolve.py:178
+#: ../yum/depsolve.py:190
 #, fuzzy, python-format
 msgid "Matched %s to require for %s"
 msgstr "%s zahteva: %s"
 
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:231
 #, python-format
 msgid "Member: %s"
 msgstr "ÄŒlan: %s"
 
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:245 ../yum/depsolve.py:732
 #, python-format
 msgid "%s converted to install"
 msgstr "%s prebačen za instalaciju"
 
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:252
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "Dodajem paket %s u načinu rada %s"
 
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:262
 #, python-format
 msgid "Removing Package %s"
 msgstr "Uklanjam paket %s"
 
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:273
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s zahteva: %s"
 
-#: ../yum/depsolve.py:312
+#: ../yum/depsolve.py:331
 msgid "Needed Require has already been looked up, cheating"
-msgstr ""
+msgstr "Potreban zahtev je već potražen, obmanjujem"
 
-#: ../yum/depsolve.py:322
+#: ../yum/depsolve.py:341
 #, python-format
 msgid "Needed Require is not a package name. Looking up: %s"
-msgstr ""
+msgstr "Potreban zahtev nije ime paketa. Tražim: %s"
 
-#: ../yum/depsolve.py:329
-#, fuzzy, python-format
+#: ../yum/depsolve.py:348
+#, python-format
 msgid "Potential Provider: %s"
-msgstr "Ukupna veličina: %s"
+msgstr "Mogući snabdevač: %s"
 
-#: ../yum/depsolve.py:352
+#: ../yum/depsolve.py:371
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
-msgstr ""
+msgstr "Režim je %s za snabdevača %s: %s"
 
-#: ../yum/depsolve.py:356
+#: ../yum/depsolve.py:375
 #, python-format
 msgid "Mode for pkg providing %s: %s"
-msgstr ""
+msgstr "Režim za paket koji snabdeva %s: %s"
 
-#: ../yum/depsolve.py:360
+#: ../yum/depsolve.py:379
 #, python-format
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr "TSINFO: %s paket zahteva da %s bude označen za brisanje"
 
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:391
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: menjam %s sa %s da bih razrešio zavisnost."
+msgstr "TSINFO: menjam %s sa %s radi razrešavanja zavisnosti."
 
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:394
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: ažuriram %s da bih razrešio zavisnost."
+msgstr "TSINFO: ažuriram %s radi razrešavanja zavisnosti."
 
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:402
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Ne mogu da pronađem putanju ažuriranja za zavisnost za: %s"
 
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:412
 #, python-format
 msgid "Unresolvable requirement %s for %s"
-msgstr ""
+msgstr "Nerazrešiv zahtev paketa %s za %s"
+
+#: ../yum/depsolve.py:435
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "Brzo povezivanje paketa %s kao zahteva za %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:434
+#: ../yum/depsolve.py:477
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s je u pruženim paketa ali je već instaliran, uklanjam ga."
+msgstr "%s je u pruženim paketima ali je već instaliran, uklanjam ga."
 
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:492
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr "Potencijalno razrešavanje paketa %s ima noviji primerak u ts-u."
 
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:503
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
-msgstr "Potencijalno razrešavanje paketa %s ima instaliran novi primerak."
+msgstr "Potencijalno razrešavanje paketa %s ima instaliran noviji primerak."
 
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:511 ../yum/depsolve.py:560
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Nedostaje zavisnost: %s je potreban od strane paketa %s"
 
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:524
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s je već u ts-u, preskačem ga"
 
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:570
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: označavam %s kao ažuriranje za %s"
 
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:578
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: označavam %s kao instalaciju za %s"
 
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:670 ../yum/depsolve.py:750
 msgid "Success - empty transaction"
 msgstr "Uspeh - prazna transakcija"
 
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:709 ../yum/depsolve.py:722
 msgid "Restarting Loop"
 msgstr "Ponovo pokrećem petlju"
 
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:738
 msgid "Dependency Process ending"
 msgstr "Završetak procesa zavisnosti"
 
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:744
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s iz %s ima problema sa razrešavanjem zavisnosti"
 
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:751
 msgid "Success - deps resolved"
 msgstr "Uspeh - zavisnosti su razrešene"
 
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:765
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Proveravam zavisnosti za %s"
 
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:848
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "tražim %s kao zahtev za %s"
 
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr ""
-
-#: ../yum/depsolve.py:937
+#: ../yum/depsolve.py:988
 #, python-format
-msgid "Same: best %s == po: %s"
-msgstr ""
+msgid "Running compare_providers() for %s"
+msgstr "Pokrećem compare_providers() za %s"
 
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#: ../yum/depsolve.py:1016 ../yum/depsolve.py:1022
 #, fuzzy, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "%s prevazilazi %s"
-
-#: ../yum/depsolve.py:955
-#, fuzzy, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "%s prevazilazi %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
-#, python-format
 msgid "better arch in po %s"
 msgstr "bolja arhitektura u po %s"
 
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:1061
 #, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr ""
+msgid "%s obsoletes %s"
+msgstr "%s prevazilazi %s"
 
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:1077
 #, python-format
-msgid "best %s shares a sourcerpm with %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+"  Winner: %s"
 msgstr ""
+"archdist uporedio %s sa %s na %s\n"
+"  Pobednik: %s"
 
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:1084
 #, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr ""
+msgid "common sourcerpm %s and %s"
+msgstr "zajednički izvorni rpm %s i %s"
 
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1090
 #, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr ""
+msgid "common prefix of %s between %s and %s"
+msgstr "zajednički prefiks %s između %s i %s"
 
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:1098
 #, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr ""
+msgid "Best Order: %s"
+msgstr "Najbolji redosled: %s"
 
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:135
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() neće biti prisutna u budućim verzijama Yum-a.\n"
 
-#: ../yum/__init__.py:296
+#: ../yum/__init__.py:315
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "Riznici %r nedostaje ime u podešavanjima, koristim id"
 
-#: ../yum/__init__.py:332
+#: ../yum/__init__.py:353
 msgid "plugins already initialised"
 msgstr "već inicijalizovani dodaci"
 
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:360
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRpmDBSetup() neće biti prisutna u budućim verzijama Yum-a.\n"
 
-#: ../yum/__init__.py:349
+#: ../yum/__init__.py:370
 msgid "Reading Local RPMDB"
 msgstr "ÄŒitam lokalni RPMDB"
 
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:388
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() neće biti prisutna u budućim verzijama Yum-a.\n"
 
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:408
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() neće biti prisutna u budućim verzijama Yum-a.\n"
 
-#: ../yum/__init__.py:404
+#: ../yum/__init__.py:425
 msgid "Setting up Package Sacks"
 msgstr "Postavljam grupe paketa"
 
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:468
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "repo objektu za repo %s nedostaje a _resetSack metoda\n"
 
-#: ../yum/__init__.py:448
+#: ../yum/__init__.py:469
 msgid "therefore this repo cannot be reset.\n"
 msgstr "zbog toga se ovaj repo ne može vratiti na početnu postavku.\n"
 
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:474
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() neće biti prisutna u budućim verzijama Yum-a.\n"
 
-#: ../yum/__init__.py:465
+#: ../yum/__init__.py:486
 msgid "Building updates object"
-msgstr "Izgrađujem objekat ažurirnja"
+msgstr "Izgrađujem objekat ažuriranja"
 
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:517
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() neće biti prisutna u budućim verzijama Yum-a.\n"
 
-#: ../yum/__init__.py:520
+#: ../yum/__init__.py:541
 msgid "Getting group metadata"
 msgstr "Dobavljam metapodatke grupe"
 
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:567
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Dodajem datoteku grupe iz riznice: %s"
 
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:576
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
-msgstr "Nisam uspeo da dodam datoteku grupe za riznicu: %s - %s"
+msgstr "Nije uspelo dodavanje datoteke grupe za riznicu: %s - %s"
 
-#: ../yum/__init__.py:561
+#: ../yum/__init__.py:582
 msgid "No Groups Available in any repository"
 msgstr "Ne postoji grupa koja je dostupna u bilo kojoj riznici"
 
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:632
 msgid "Importing additional filelist information"
 msgstr "Uvozim dodatne informacije o spiskovima datoteka"
 
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:641
+#, fuzzy
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr ""
+"Ostale su nedovršene transakcije. Možda bi trebalo da izvršite yum-complete-"
+"transaction da biste ih završili."
+
+#: ../yum/__init__.py:698
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Skip-broken etapa %i"
 
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:724
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "Skip-broken je završen u %i etapa "
 
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:725
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1455,96 +1608,108 @@ msgstr ""
 "\n"
 "Paketi su preskočeni zbog problema sa zavisnostima:"
 
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:729
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s iz %s"
 
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:816
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+"Upozorenje: došlo je do greške u skriptici ili neke druge nekritične greške "
+"tokom transakcije."
+
+#: ../yum/__init__.py:832
 #, python-format
 msgid "Failed to remove transaction file %s"
-msgstr "Nisam uspeo da uklonim datoteku transakcije %s"
+msgstr "Nije uspelo uklanjanje datoteke transakcije %s"
 
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:873
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "izuzimam iz troška: %s iz %s"
 
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:904
 msgid "Excluding Packages in global exclude list"
 msgstr "Izuzimam pakete u globalnom spisku za izuzimanje"
 
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:906
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "Izuzimam pakete iz %s"
 
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:933
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Sažimam %s samo u sadržane pakete"
 
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:939
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Zadržavam sadržani paket %s"
 
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:945
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Uklanjam nepovezani paket %s"
 
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:948
 msgid "Finished"
 msgstr "Završio"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:978
 #, python-format
 msgid "Unable to check if PID %s is active"
-msgstr "Nisam u mogućnisti da proverim da li je PID %s aktivan"
+msgstr "Nisam u mogućnosti da proverim da li je PID %s aktivan"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:923
+#: ../yum/__init__.py:982
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Postoji zaključavanje %s: druga kopija se izvršava kao pid %s."
 
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1053
 msgid "Package does not match intended download"
 msgstr "Paket nije odgovarajući za nameravano preuzimanje"
 
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1068
 msgid "Could not perform checksum"
 msgstr "Ne mogu da izvršim kontrolu sume"
 
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1071
 msgid "Package does not match checksum"
 msgstr "Paket nema odgovarajući kontrolnu sumu"
 
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1114
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr ""
 "paket nema odgovarajuću vrednost kontrolne sume ili je za %s uključeno "
 "keširanje"
 
-#: ../yum/__init__.py:1042
+#: ../yum/__init__.py:1117 ../yum/__init__.py:1145
 #, python-format
 msgid "using local copy of %s"
 msgstr "koristim lokalni umnožak %s-a"
 
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1159
 #, python-format
-msgid "Insufficient space in download directory %s to download"
+msgid ""
+"Insufficient space in download directory %s\n"
+"    * free   %s\n"
+"    * needed %s"
 msgstr ""
-"Nedovoljna količina prostora u direktorijumu %s namenjenog za preuzimanje"
+"Nedovoljna količina prostora u direktorijumu %s za preuzimanje\n"
+"    * slobodno je %s\n"
+"    * potrebno je %s"
 
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1206
 msgid "Header is not complete."
 msgstr "Zaglavlje nije potpuno."
 
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1246
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1552,204 +1717,240 @@ msgstr ""
 "Zaglavlje nije u lokalnom kešu i samo način rada sa keširanjem je uključen. "
 "Ne mogu da preuzmem %s"
 
-#: ../yum/__init__.py:1189
+#: ../yum/__init__.py:1301
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Javni ključ za %s nije instaliran"
 
-#: ../yum/__init__.py:1193
+#: ../yum/__init__.py:1305
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Problem sa otvaranjem paketa %s"
 
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1313
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Javni ključ za %s nije poverljiv"
 
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1317
 #, python-format
 msgid "Package %s is not signed"
 msgstr "Paket %s nije potpisan"
 
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1355
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Ne mogu da uklonim %s"
 
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1359
 #, python-format
 msgid "%s removed"
 msgstr "%s je uklonjen"
 
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1396
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Ne mogu da uklonim %s datoteku %s"
 
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1400
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s datoteka %s je uklonjena"
 
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1402
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s datoteke su uklonjene"
 
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1464
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Postoji više od jednog identičnog slaganja u grupi za %s"
 
-#: ../yum/__init__.py:1335
+#: ../yum/__init__.py:1470
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Ništa se ne slaže sa %s.%s %s:%s-%s iz ažuriranja"
 
-#: ../yum/__init__.py:1543
+#: ../yum/__init__.py:1678
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
 msgstr ""
-"searchPackages() neće biti prisutna u budućim verzijama Yum-"
-"a.                      Umesto nje koristite searchGenerator(). \n"
+"searchPackages() neće biti prisutna u budućim Yum "
+"verzijama.                      Umesto nje koristite searchGenerator(). \n"
 
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1716
 #, python-format
 msgid "Searching %d packages"
 msgstr "Pretražujem %d pakete"
 
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1720
 #, python-format
 msgid "searching package %s"
 msgstr "tražim paket %s"
 
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1732
 msgid "searching in file entries"
 msgstr "tražim u unosima datoteka"
 
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1739
 msgid "searching in provides entries"
 msgstr "tražim u unosima dostavljača"
 
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1772
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Dostavlja-slaganje: %s"
 
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1821
+msgid "No group data available for configured repositories"
+msgstr "Nema dostupnih podataka o grupama za podešene riznice"
+
+#: ../yum/__init__.py:1847 ../yum/__init__.py:1866 ../yum/__init__.py:1897
+#: ../yum/__init__.py:1903 ../yum/__init__.py:1976 ../yum/__init__.py:1980
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Ne postoji grupa pod imenom %s"
 
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1878 ../yum/__init__.py:1993
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "paket %s nije označen u grupi %s"
 
-#: ../yum/__init__.py:1770
+#: ../yum/__init__.py:1925
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Dodajem paket %s iz grupe %s"
 
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1929
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Nijedan paket pod imenom %s nije dostupan za instalaciju"
 
-#: ../yum/__init__.py:1849
-#, python-format
+#: ../yum/__init__.py:2018
+#, fuzzy, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Grupa paketa %s nije nađena u packagesack-u"
 
-#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:2033
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr ""
+"getInstalledPackageObject() će nestati, koristite self.rpmdb.searchPkgTuple"
+"().\n"
+
+#: ../yum/__init__.py:2085 ../yum/__init__.py:2128
 msgid "Invalid versioned dependency string, try quoting it."
 msgstr ""
 "Neispravna niska zavisnosti sa verzijom, pokušajte da je obeležite "
 "navodnicima."
 
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:2087 ../yum/__init__.py:2130
 msgid "Invalid version flag"
 msgstr "Pogrešna oznaka verzije"
 
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:2102 ../yum/__init__.py:2106
 #, python-format
 msgid "No Package found for %s"
 msgstr "Nema pronađenih paketa za %s"
 
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2305
 msgid "Package Object was not a package object instance"
 msgstr "Objekat paketa nije bio primerak objekta paketa"
 
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2309
 msgid "Nothing specified to install"
 msgstr "Nije određeno ništa za instalaciju"
 
 #. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2327
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Proveravam virtuelnu dostavu ili dostavu datoteke za %s"
 
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2333 ../yum/__init__.py:2715
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Ne postoji slaganje za argument: %s"
 
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2399
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Paket %s je instaliran i nije dostupan"
+
+#: ../yum/__init__.py:2402
 msgid "No package(s) available to install"
 msgstr "Nema paketa dostupnih za instalaciju"
 
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2414
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Paket: %s  - već je u skupu transakcije"
 
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2427
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "Već je instalirana najnovija verzija paketa %s"
 
-#: ../yum/__init__.py:2178
+#: ../yum/__init__.py:2434
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr ""
 "Paket koji se poklapa sa %s je već instaliran. Proveravam za noviju verziju."
 
+#: ../yum/__init__.py:2444
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "Paket %s je zamenjen paketom %s, pokušavam da namesto instaliram %s"
+
 #. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2514
 msgid "Updating Everything"
 msgstr "Ažuriram sve"
 
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2526 ../yum/__init__.py:2631 ../yum/__init__.py:2642
+#: ../yum/__init__.py:2664
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Ne ažuriram pakete koji su već prevaziđeni: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2622
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Paket je već prevaziđen: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2377
+#: ../yum/__init__.py:2645 ../yum/__init__.py:2667
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Ne ažuriram pakete koji su već ažurirani: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2712
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2392
+#: ../yum/__init__.py:2728
 msgid "No package matched to remove"
 msgstr "Nijedan paket nije određen za uklanjanje"
 
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2762
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Ne mogu da otvorim datoteku: %s. Preskačem je."
 
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2765
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Ispitujem %s: %s"
 
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2773
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr ""
+"Ne mogu da dodam paket %s u transakciju. Arhitektura nije usaglašena: %s"
+
+#: ../yum/__init__.py:2781
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -1758,136 +1959,157 @@ msgstr ""
 "Paket %s nije instaliran, ne mogu da ga ažuriram. Izvršite yum instalaciju "
 "da biste ga instalirali."
 
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2814
 #, python-format
 msgid "Excluding %s"
 msgstr "Izuzimam %s"
 
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2819
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Označavam %s za instalaciju"
 
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2825
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Označavam %s kao ažuriranje za %s"
 
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2832
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: ne ažurira instalirani paket."
 
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2850
 msgid "Problem in reinstall: no package matched to remove"
 msgstr ""
 "Problem pri ponovnoj instalaciji: nijedan paket nije određen za uklanjanje"
 
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2861
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Paketu %s su dozvoljene mnogostruke instalacije, preskačem ga"
 
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2868
 msgid "Problem in reinstall: no package matched to install"
 msgstr ""
 "Problem pri ponovnoj instalaciji: nijedan paket nije određen za instalaciju"
 
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2903
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Dobavljam GPG ključ sa %s"
 
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2923
 msgid "GPG key retrieval failed: "
 msgstr "Dobavljanje GPG ključa nije uspelo: "
 
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "Raščlanjivanje GPG ključa nije uspelo: "
+#: ../yum/__init__.py:2934
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "Raščlanjivanje GPG ključa nije uspelo: ključ nema vrednost %s"
 
-#: ../yum/__init__.py:2593
+#: ../yum/__init__.py:2966
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "GPG ključ na %s (0x%s) je već instaliran"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:2598
+#: ../yum/__init__.py:2971 ../yum/__init__.py:3033
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Uvozim GPG ključ 0x%s „%s“ iz %s"
 
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2988
 msgid "Not installing key"
 msgstr "Ne instaliram ključ"
 
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2994
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Nije uspeo uvoz ključa (kod %d)"
 
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2995 ../yum/__init__.py:3054
 msgid "Key imported successfully"
 msgstr "Ključ je uspešno uvezen"
 
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:3000 ../yum/__init__.py:3059
 #, 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 ključevi izlistani za „%s“ riznicu su već istalirani ali nisu "
+"GPG ključevi izlistani za „%s“ riznicu su već instalirani ali nisu "
 "odgovarajući za ovaj paket.\n"
 "Proverite da li su podešeni odgovarajući URL-ovi ključeva za ovu riznicu."
 
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:3009
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Uvoz ključa(ključeva) nije pomogao, pogrešan ključ(ključevi)?"
 
-#: ../yum/__init__.py:2707
+#: ../yum/__init__.py:3028
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG ključ na %s (0x%s) je već uvezen"
+
+#: ../yum/__init__.py:3048
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "Ne instaliram ključ za riznicu %s"
+
+#: ../yum/__init__.py:3053
+msgid "Key import failed"
+msgstr "Nije uspeo uvoz ključa"
+
+#: ../yum/__init__.py:3144
 msgid "Unable to find a suitable mirror."
 msgstr "Ne mogu da pronađem odgovarajući odraz."
 
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:3146
 msgid "Errors were encountered while downloading packages."
 msgstr "Pojavile su se greške za vreme preuzimanja paketa."
 
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:3210
 msgid "Test Transaction Errors: "
 msgstr "Greške pri proveri transakcije: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:199
 msgid "Loaded plugins: "
 msgstr "Učitani dodaci: "
 
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:213 ../yum/plugins.py:219
 #, python-format
 msgid "No plugin match for: %s"
 msgstr "Ne postoji slaganje za dodatak: %s"
 
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:249
 #, python-format
 msgid "\"%s\" plugin is disabled"
 msgstr "„%s“ dodatak je isključen"
 
-#: ../yum/plugins.py:231
+#. Give full backtrace:
+#: ../yum/plugins.py:261
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "Dodatak „%s“ ne može da bude uvezen"
+
+#: ../yum/plugins.py:268
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "Dodatak „%s“ ne određuje verziju zahtevanog API-a"
 
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:273
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "Dodatak „%s“ zahteva API %s. Podržani API je %s."
 
-#: ../yum/plugins.py:264
+#: ../yum/plugins.py:306
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Učitavam „%s“ dodatak"
 
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:313
 #, python-format
 msgid ""
 "Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -1895,22 +2117,26 @@ msgstr ""
 "U putanji za pretraživanje dodataka postoje dva ili više dodataka pod imenom "
 "„%s“"
 
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:333
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Datoteka podešavanja %s nije pronađena"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
+#: ../yum/plugins.py:336
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Ne mogu da pronađem datoteku podešavanja za dodatak %s"
 
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:490
 msgid "registration of commands not supported"
 msgstr "registracija komandi nije podržana"
 
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Ponovno pakovanje"
+
 #: ../rpmUtils/oldUtils.py:26
 #, python-format
 msgid "Header cannot be opened or does not match %s, %s."
@@ -1929,7 +2155,7 @@ msgstr ""
 
 #: ../rpmUtils/oldUtils.py:174
 msgid "Got an empty Header, something has gone wrong"
-msgstr "Dobio sam prazno zaglavlje, nešto je pošlo naopako"
+msgstr "Primljeno je prazno zaglavlje, nešto je pošlo naopako"
 
 #: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
 #: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
@@ -1941,64 +2167,3 @@ msgstr "Oštećeno zaglavlje %s"
 #, python-format
 msgid "Error opening rpm %s - error %s"
 msgstr "Greška pri otvaranju rpm-a %s - greška %s"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s option requires an argument"
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s opcija zahteva argument"
-
-#~ msgid "show this help message and exit"
-#~ msgstr "prikaži ovu pomoćnu poruku i izađi"
-
-#~ msgid "verbose operation"
-#~ msgstr "opširna radnja"
-
-#~ msgid "Repo-id     : "
-#~ msgstr "IB riznice      : "
-
-#~ msgid "Repo-name   : "
-#~ msgstr "Ime riznice     : "
-
-#~ msgid "Repo-enabled: "
-#~ msgstr "Riznica uključena: "
-
-#~ msgid "Repo-size   : "
-#~ msgstr "Veličina riznice: "
-
-#~ msgid "Running compare_providers() for %s"
-#~ msgstr "Pokrećem compare_providers() za %s"
-
-#~ msgid ""
-#~ "archdist compared %s to %s on %s\n"
-#~ "  Winner: %s"
-#~ msgstr ""
-#~ "archdist uporedio %s sa %s na %s\n"
-#~ "  Pobednik: %s"
-
-#~ msgid "common sourcerpm %s and %s"
-#~ msgstr "zajednički izvorni rpm %s i %s"
-
-#~ msgid "common prefix of %s between %s and %s"
-#~ msgstr "zajednički prefiks %s između %s i %s"
-
-#~ msgid "Best Order: %s"
-#~ msgstr "Najbolji redosled: %s"
-
-#~ msgid ""
-#~ "Warning: scriptlet or other non-fatal errors occurred during transaction."
-#~ msgstr ""
-#~ "Upozorenje: došlo je do greške u skriptici ili neke druge nekritične "
-#~ "greške tokom transkacije."
-
-#~ msgid "Package %s is obsoleted by %s, trying to install %s instead"
-#~ msgstr "Paket %s je zamenjen paketom %s, pokušavam da namesto instaliram %s"
-
-#~ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-#~ msgstr "Ne ažuriram pakete koji su već ažurirani: %s.%s %s:%s-%s"
-
-#~ msgid "Repackaging"
-#~ msgstr "Ponovno pakovanje"
commit 380d93005d83fad19d8e793096cac8d7190a5175
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Sat Nov 1 10:22:27 2008 +0100

    Updated Brazilian Portuguese translation by Igor Pires Soares

diff --git a/po/pt_BR.po b/po/pt_BR.po
index 919c002..8f8c0fb 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -2,12 +2,13 @@
 # This file is distributed under the same license as the Yum package.
 # Igor Pires Soares <igor at projetofedora.org>, 2007,2008.
 #
+
 msgid ""
 msgstr ""
 "Project-Id-Version: Yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-04-12 00:41-0300\n"
+"POT-Creation-Date: 2008-10-23 01:29+0000\n"
+"PO-Revision-Date: 2008-10-25 14:56-0300\n"
 "Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -17,23 +18,36 @@ msgstr ""
 "X-Poedit-Language: Portuguese\n"
 "X-Poedit-Country: BRAZIL\n"
 
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48
+#: ../output.py:777
+#: ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Atualizando"
 
 #: ../callback.py:49
+#: ../yum/rpmtrans.py:72
 msgid "Erasing"
 msgstr "Apagando"
 
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#. Arch can't get "that big" ... so always use the max.
+#: ../callback.py:50
+#: ../callback.py:51
+#: ../callback.py:53
+#: ../output.py:776
+#: ../yum/rpmtrans.py:73
+#: ../yum/rpmtrans.py:74
+#: ../yum/rpmtrans.py:76
 msgid "Installing"
 msgstr "Instalando"
 
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52
+#: ../callback.py:58
+#: ../yum/rpmtrans.py:75
 msgid "Obsoleted"
 msgstr "Obsoletos"
 
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54
+#: ../output.py:890
 msgid "Updated"
 msgstr "Atualizados"
 
@@ -41,7 +55,10 @@ msgstr "Atualizados"
 msgid "Erased"
 msgstr "Removidos"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56
+#: ../callback.py:57
+#: ../callback.py:59
+#: ../output.py:888
 msgid "Installed"
 msgstr "Instalados"
 
@@ -51,7 +68,7 @@ msgstr "Sem cabeçalho - huh?"
 
 #: ../callback.py:168
 msgid "Repackage"
-msgstr "Reempacotados"
+msgstr "Reempacotar"
 
 #: ../callback.py:189
 #, python-format
@@ -63,491 +80,564 @@ msgstr "Erro: estado de saída inválido: %s de %s"
 msgid "Erased: %s"
 msgstr "Removidos: %s"
 
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217
+#: ../output.py:778
 msgid "Removing"
 msgstr "Removendo"
 
 #: ../callback.py:219
+#: ../yum/rpmtrans.py:77
 msgid "Cleanup"
 msgstr "Limpeza"
 
-#: ../cli.py:103
+#: ../cli.py:105
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "Comando \"%s\" já definido"
 
-#: ../cli.py:115
+#: ../cli.py:117
 msgid "Setting up repositories"
 msgstr "Configurando repositórios"
 
-#: ../cli.py:126
+#: ../cli.py:128
 msgid "Reading repository metadata in from local files"
 msgstr "Lendo metadados do repositório a partir dos arquivos locais"
 
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:187
+#: ../utils.py:71
 #, python-format
 msgid "Config Error: %s"
-msgstr "Erro de Configuração: %s"
+msgstr "Erro de configuração: %s"
 
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:190
+#: ../cli.py:1128
+#: ../utils.py:74
 #, python-format
 msgid "Options Error: %s"
-msgstr "Erro nas Opções: %s"
+msgstr "Erro nas opções: %s"
+
+#: ../cli.py:218
+#, python-format
+msgid "  Installed: %s-%s at %s"
+msgstr "  Instalados: %s-%s em %s"
+
+#: ../cli.py:220
+#, python-format
+msgid "  Built    : %s at %s"
+msgstr "  Construídos    : %s em %s"
 
-#: ../cli.py:229
+#: ../cli.py:222
+#, python-format
+msgid "  Committed: %s at %s"
+msgstr "  Enviados: %s em %s"
+
+#: ../cli.py:259
 msgid "You need to give some command"
 msgstr "Você precisa dar algum comando"
 
-#: ../cli.py:271
+#: ../cli.py:301
 msgid "Disk Requirements:\n"
-msgstr "Requerimentos de Disco:\n"
+msgstr "Requisitos de disco:\n"
 
-#: ../cli.py:273
+#: ../cli.py:303
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Pelo menos %d MB são necessários no sistema de arquivos %s.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:308
 msgid ""
 "Error Summary\n"
 "-------------\n"
 msgstr ""
-"Sumário de Erros\n"
+"Sumário de erros\n"
 "-------------\n"
 
-#: ../cli.py:317
+#: ../cli.py:351
 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:347
+#: ../cli.py:381
 msgid "Exiting on user Command"
 msgstr "Saindo pelo comando do usuário"
 
-#: ../cli.py:351
+#: ../cli.py:385
 msgid "Downloading Packages:"
-msgstr "Baixando Pacotes:"
+msgstr "Baixando pacotes:"
 
-#: ../cli.py:356
+#: ../cli.py:390
 msgid "Error Downloading Packages:\n"
-msgstr "Erro ao Baixar Pacotes:\n"
+msgstr "Erro ao baixar pacotes:\n"
 
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:404
+#: ../yum/__init__.py:3134
 msgid "Running rpm_check_debug"
 msgstr "Executando o rpm_check_debug"
 
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:407
+#: ../yum/__init__.py:3137
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "Erro com o rpm_check_debug vs depsolve:"
 
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:411
+#: ../yum/__init__.py:3139
 msgid "Please report this error in bugzilla"
 msgstr "Por favor, reporte esse erro ao bugzilla"
 
-#: ../cli.py:383
+#: ../cli.py:417
 msgid "Running Transaction Test"
-msgstr "Executando Teste de Transação"
+msgstr "Executando teste de transação"
 
-#: ../cli.py:399
+#: ../cli.py:433
 msgid "Finished Transaction Test"
-msgstr "Teste de Transação Finalizado"
+msgstr "Teste de transação finalizado"
 
-#: ../cli.py:401
+#: ../cli.py:435
 msgid "Transaction Check Error:\n"
-msgstr "Erro na Verificação da Transação:\n"
+msgstr "Erro na verificação da transação:\n"
 
-#: ../cli.py:408
+#: ../cli.py:442
 msgid "Transaction Test Succeeded"
-msgstr "Teste de Transação Completo"
+msgstr "Teste de transação completo"
 
-#: ../cli.py:429
+#: ../cli.py:463
 msgid "Running Transaction"
-msgstr "Executando a Transação"
+msgstr "Executando a transação"
 
-#: ../cli.py:459
+#: ../cli.py:493
 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:491
-msgid "Parsing package install arguments"
-msgstr "Analisando argumentos da instalação de pacotes"
+#: ../cli.py:512
+#: ../cli.py:545
+msgid "  * Maybe you meant: "
+msgstr "  * Talvez você queira dizer: "
+
+#: ../cli.py:528
+#: ../cli.py:536
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "Pacotes %s%s%s disponíveis, mas já instalados."
 
-#: ../cli.py:501
+#: ../cli.py:542
+#: ../cli.py:577
 #, python-format
-msgid "No package %s available."
-msgstr "Nenhum pacote %s disponível."
+msgid "No package %s%s%s available."
+msgstr "Nenhum pacote %s%s%s disponível."
+
+#: ../cli.py:567
+msgid "Parsing package install arguments"
+msgstr "Analisando argumentos da instalação de pacotes"
 
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:582
+#: ../cli.py:657
+#: ../yumcommands.py:912
 msgid "Package(s) to install"
 msgstr "Pacotes a serem instalados"
 
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:583
+#: ../cli.py:658
+#: ../yumcommands.py:150
+#: ../yumcommands.py:913
 msgid "Nothing to do"
 msgstr "Nada a ser feito"
 
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, 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"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "Não foi possível encontrar uma atualização correspondente ao %s"
-
-#: ../cli.py:580
+#: ../cli.py:616
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d pacotes marcados para atualização"
 
-#: ../cli.py:583
+#: ../cli.py:619
 msgid "No Packages marked for Update"
 msgstr "Nenhum pacote marcado para atualização"
 
-#: ../cli.py:599
+#: ../cli.py:633
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d pacotes marcados para remoção"
 
-#: ../cli.py:602
+#: ../cli.py:636
 msgid "No Packages marked for removal"
 msgstr "Nenhum pacote marcado para remoção"
 
-#: ../cli.py:614
+#: ../cli.py:648
 msgid "No Packages Provided"
-msgstr "Nenhum Pacote Fornecido"
+msgstr "Nenhum pacote fornecido"
 
-#: ../cli.py:654
+#: ../cli.py:689
 msgid "Matching packages for package list to user args"
-msgstr ""
-"Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
+msgstr "Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
 
-#: ../cli.py:701
+#: ../cli.py:731
 #, python-format
 msgid "Warning: No matches found for: %s"
-msgstr "Aviso: Nenhum resultado para: %s"
+msgstr "Aviso: nenhum resultado para: %s"
 
-#: ../cli.py:704
+#: ../cli.py:734
 msgid "No Matches found"
-msgstr "Nenhum pacote encontrado"
+msgstr "Nenhum pacote localizado"
 
-#: ../cli.py:745
+#: ../cli.py:773
+#, python-format
+msgid ""
+"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+" You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+msgstr ""
+"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:789
 #, python-format
 msgid "No Package Found for %s"
-msgstr "Nenhum Pacote Encontrado para %s"
+msgstr "Nenhum pacote localizado para %s"
 
-#: ../cli.py:757
+#: ../cli.py:801
 msgid "Cleaning up Everything"
-msgstr "Limpando Tudo"
+msgstr "Limpando tudo"
 
-#: ../cli.py:771
+#: ../cli.py:815
 msgid "Cleaning up Headers"
-msgstr "Limpando Cabeçalhos"
+msgstr "Limpando cabeçalhos"
 
-#: ../cli.py:774
+#: ../cli.py:818
 msgid "Cleaning up Packages"
-msgstr "Limpando Pacotes"
+msgstr "Limpando pacotes"
 
-#: ../cli.py:777
+#: ../cli.py:821
 msgid "Cleaning up xml metadata"
 msgstr "Limpando metadados em xml"
 
-#: ../cli.py:780
+#: ../cli.py:824
 msgid "Cleaning up database cache"
 msgstr "Limpando cache do banco de dados"
 
-#: ../cli.py:783
+#: ../cli.py:827
 msgid "Cleaning up expire-cache metadata"
 msgstr "Limpando metadados expirados do cache"
 
-#: ../cli.py:786
+#: ../cli.py:830
 msgid "Cleaning up plugins"
 msgstr "Limpando plugins"
 
-#: ../cli.py:807
+#: ../cli.py:851
 msgid "Installed Groups:"
-msgstr "Grupos Instalados:"
+msgstr "Grupos instalados:"
 
-#: ../cli.py:814
+#: ../cli.py:858
 msgid "Available Groups:"
-msgstr "Grupos Disponíveis:"
+msgstr "Grupos disponíveis:"
 
-#: ../cli.py:820
+#: ../cli.py:864
 msgid "Done"
 msgstr "Concluído"
 
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:875
+#: ../cli.py:893
+#: ../cli.py:899
+#: ../yum/__init__.py:2246
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Aviso: O grupo %s não existe."
 
-#: ../cli.py:853
+#: ../cli.py:903
 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:855
+#: ../cli.py:905
 #, python-format
 msgid "%d Package(s) to Install"
-msgstr "%d Pacote(s) a Ser(em) Instalado(s)"
+msgstr "%d pacote(s) a ser(em) instalado(s)"
 
-#: ../cli.py:865
+#: ../cli.py:915
+#: ../yum/__init__.py:2258
 #, python-format
 msgid "No group named %s exists"
 msgstr "Nenhum grupo de nome %s existe"
 
-#: ../cli.py:871
+#: ../cli.py:921
 msgid "No packages to remove from groups"
 msgstr "Nenhum pacote a ser removido a partir dos grupos"
 
-#: ../cli.py:873
+#: ../cli.py:923
 #, python-format
 msgid "%d Package(s) to remove"
-msgstr "%d Pacote(s) a Ser(em) Removido(s)"
+msgstr "%d pacote(s) a ser(em) removido(s)"
 
-#: ../cli.py:915
+#: ../cli.py:965
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "O pacote %s já está instalado, ignorando"
 
-#: ../cli.py:926
+#: ../cli.py:976
 #, 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:952
+#: ../cli.py:1002
 #, 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:971
+#: ../cli.py:1021
 #, python-format
 msgid "Command line error: %s"
 msgstr "Erro na linha de comando: %s"
 
-#: ../cli.py:1101
+#: ../cli.py:1034
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: a opção %s requer um argumento"
+
+#: ../cli.py:1170
+msgid "show this help message and exit"
+msgstr "mostrar essa mensagem ajuda e sai"
+
+#: ../cli.py:1174
 msgid "be tolerant of errors"
 msgstr "ser tolerante com os erros"
 
-#: ../cli.py:1103
+#: ../cli.py:1176
 msgid "run entirely from cache, don't update cache"
 msgstr "executar por completo a partir do cache, não atualiza o cache"
 
-#: ../cli.py:1105
+#: ../cli.py:1178
 msgid "config file location"
 msgstr "configurar localização do arquivo"
 
-#: ../cli.py:1107
+#: ../cli.py:1180
 msgid "maximum command wait time"
 msgstr "Tempo máximo de espera do comando"
 
-#: ../cli.py:1109
+#: ../cli.py:1182
 msgid "debugging output level"
 msgstr "nível de depuração na saída"
 
-#: ../cli.py:1113
+#: ../cli.py:1186
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "mostrar duplicados em repos e em comandos de pesquisa/listagem"
 
-#: ../cli.py:1115
+#: ../cli.py:1188
 msgid "error output level"
 msgstr "nível de erro na saída"
 
-#: ../cli.py:1118
+#: ../cli.py:1191
 msgid "quiet operation"
 msgstr "operação discreta"
 
-#: ../cli.py:1122
+#: ../cli.py:1193
+msgid "verbose operation"
+msgstr "operação detalhada"
+
+#: ../cli.py:1195
 msgid "answer yes for all questions"
 msgstr "responder sim para todas as perguntas"
 
-#: ../cli.py:1124
+#: ../cli.py:1197
 msgid "show Yum version and exit"
 msgstr "mostrar versão do Yum ao sair"
 
-#: ../cli.py:1125
+#: ../cli.py:1198
 msgid "set install root"
 msgstr "definir raiz de instalação"
 
-#: ../cli.py:1129
+#: ../cli.py:1202
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "habilitar um ou mais repositórios (curingas são permitidos)"
 
-#: ../cli.py:1133
+#: ../cli.py:1206
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "desabilitar um ou mais repositórios (curingas são permitidos)"
 
-#: ../cli.py:1136
+#: ../cli.py:1209
 msgid "exclude package(s) by name or glob"
 msgstr "excluir pacote(s) por nome ou glob"
 
-#: ../cli.py:1138
+#: ../cli.py:1211
 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:1141
+#: ../cli.py:1214
 msgid "enable obsoletes processing during updates"
 msgstr "Habilitar processo de obsolescência durante as atualizações"
 
-#: ../cli.py:1143
+#: ../cli.py:1216
 msgid "disable Yum plugins"
 msgstr "desabilitar plugins do Yum"
 
-#: ../cli.py:1145
+#: ../cli.py:1218
 msgid "disable gpg signature checking"
 msgstr "desabilitar verificação de assinaturas gpg"
 
-#: ../cli.py:1147
+#: ../cli.py:1220
 msgid "disable plugins by name"
 msgstr "desabilitar plugins pelo nome"
 
-#: ../cli.py:1150
+#: ../cli.py:1223
+msgid "enable plugins by name"
+msgstr "habilita plugins pelo nome"
+
+#: ../cli.py:1226
 msgid "skip packages with depsolving problems"
 msgstr "ignorar pacotes com problemas de solução de dependências"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Jan"
 msgstr "Jan"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Feb"
 msgstr "Fev"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Mar"
 msgstr "Mar"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Apr"
 msgstr "Abr"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "May"
 msgstr "Mai"
 
-#: ../output.py:229
+#: ../output.py:236
 msgid "Jun"
 msgstr "Jun"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Jul"
 msgstr "Jul"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Aug"
 msgstr "Ago"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Sep"
 msgstr "Set"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Oct"
 msgstr "Out"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Nov"
 msgstr "Nov"
 
-#: ../output.py:230
+#: ../output.py:237
 msgid "Dec"
 msgstr "Dez"
 
-#: ../output.py:240
+#: ../output.py:247
 msgid "Trying other mirror."
 msgstr "Tentando outro espelho."
 
-#: ../output.py:293
+#: ../output.py:425
 #, python-format
-msgid "Name       : %s"
-msgstr "Nome       : %s"
+msgid "Name       : %s%s%s"
+msgstr "Nome       : %s%s%s"
 
-#: ../output.py:294
+#: ../output.py:426
 #, python-format
 msgid "Arch       : %s"
 msgstr "Arq.   : %s"
 
-#: ../output.py:296
+#: ../output.py:428
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Período      : %s"
 
-#: ../output.py:297
+#: ../output.py:429
 #, python-format
 msgid "Version    : %s"
 msgstr "Versão    : %s"
 
-#: ../output.py:298
+#: ../output.py:430
 #, python-format
 msgid "Release    : %s"
 msgstr "Lançamento  : %s"
 
-#: ../output.py:299
+#: ../output.py:431
 #, python-format
 msgid "Size       : %s"
 msgstr "Tamanho   : %s"
 
-#: ../output.py:300
+#: ../output.py:432
 #, python-format
 msgid "Repo       : %s"
 msgstr "Repo       : %s"
 
-#: ../output.py:302
+#: ../output.py:434
 #, python-format
 msgid "Committer  : %s"
 msgstr "Enviado por  : %s"
 
-#: ../output.py:303
+#: ../output.py:435
+#, python-format
+msgid "Committime : %s"
+msgstr "Horário do envio : %s"
+
+#: ../output.py:436
+#, python-format
+msgid "Buildtime  : %s"
+msgstr "Horário da construção  : %s"
+
+#: ../output.py:438
+#, python-format
+msgid "Installtime: %s"
+msgstr "Horário da instalação: %s"
+
+#: ../output.py:439
 msgid "Summary    : "
 msgstr "Sumário    : "
 
-#: ../output.py:305
+#: ../output.py:441
 #, python-format
 msgid "URL        : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:306
+#: ../output.py:442
 #, python-format
 msgid "License    : %s"
 msgstr "Licença   : %s"
 
-#: ../output.py:307
+#: ../output.py:443
 msgid "Description: "
 msgstr "Descrição: "
 
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "Correto? [s/N]:"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
 msgid "y"
 msgstr "s"
 
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
 msgid "yes"
 msgstr "sim"
 
-#: ../output.py:357
+#: ../output.py:501
+msgid "n"
+msgstr "n"
+
+#: ../output.py:501
 msgid "no"
 msgstr "não"
 
-#: ../output.py:367
+#: ../output.py:505
+msgid "Is this ok [y/N]: "
+msgstr "Correto? [s/N]:"
+
+#: ../output.py:587
 #, python-format
 msgid ""
 "\n"
@@ -556,96 +646,119 @@ msgstr ""
 "\n"
 "Grupo: %s"
 
-#: ../output.py:369
+#: ../output.py:594
 #, python-format
 msgid " Description: %s"
 msgstr " Descrição: %s"
 
-#: ../output.py:371
+#: ../output.py:596
 msgid " Mandatory Packages:"
-msgstr " Pacotes Obrigatórios:"
+msgstr " Pacotes obrigatórios:"
 
-#: ../output.py:376
+#: ../output.py:597
 msgid " Default Packages:"
-msgstr " Pacotes Padrão:"
+msgstr " Pacotes padrão:"
 
-#: ../output.py:381
+#: ../output.py:598
 msgid " Optional Packages:"
-msgstr " Pacotes Opcionais:"
+msgstr " Pacotes opcionais:"
 
-#: ../output.py:386
+#: ../output.py:599
 msgid " Conditional Packages:"
-msgstr " Pacotes Condicionais:"
+msgstr " Pacotes condicionais:"
 
-#: ../output.py:394
+#: ../output.py:619
 #, python-format
 msgid "package: %s"
 msgstr "pacote: %s"
 
-#: ../output.py:396
+#: ../output.py:621
 msgid "  No dependencies for this package"
 msgstr "  Nenhuma dependência para este pacote"
 
-#: ../output.py:401
+#: ../output.py:626
 #, python-format
 msgid "  dependency: %s"
 msgstr "  dependência: %s"
 
-#: ../output.py:403
+#: ../output.py:628
 msgid "   Unsatisfied dependency"
 msgstr "   Dependência não satisfeita"
 
-#: ../output.py:461
+#: ../output.py:700
 msgid "Matched from:"
 msgstr "Resultado a partir de:"
 
-#: ../output.py:487
+#: ../output.py:708
+msgid "Description : "
+msgstr "Descrição : "
+
+#: ../output.py:711
+#, python-format
+msgid "URL         : %s"
+msgstr "URL         : %s"
+
+#: ../output.py:714
+#, python-format
+msgid "License     : %s"
+msgstr "Licença     : %s"
+
+#: ../output.py:717
+#, python-format
+msgid "Filename    : %s"
+msgstr "Nome de arquivo    : %s"
+
+#: ../output.py:721
+msgid "Other       : "
+msgstr "Outro       : "
+
+#: ../output.py:753
 msgid "There was an error calculating total download size"
 msgstr "Houve um erro no cálculo do tamanho total do download"
 
-#: ../output.py:492
+#: ../output.py:758
 #, python-format
 msgid "Total size: %s"
 msgstr "Tamanho total: %s"
 
-#: ../output.py:495
+#: ../output.py:761
 #, python-format
 msgid "Total download size: %s"
 msgstr "Tamanho total do download: %s"
 
-#: ../output.py:507
+#: ../output.py:779
+msgid "Installing for dependencies"
+msgstr "Instalando para as dependências"
+
+#: ../output.py:780
+msgid "Updating for dependencies"
+msgstr "Atualizando para as dependências"
+
+#: ../output.py:781
+msgid "Removing for dependencies"
+msgstr "Removendo para as dependências"
+
+#: ../output.py:817
 msgid "Package"
 msgstr "Pacote"
 
-#: ../output.py:507
+#: ../output.py:817
 msgid "Arch"
 msgstr "Arq."
 
-#: ../output.py:507
+#: ../output.py:818
 msgid "Version"
 msgstr "Versão"
 
-#: ../output.py:507
+#: ../output.py:818
 msgid "Repository"
-msgstr "Repositório"
+msgstr "Repo"
 
-#: ../output.py:507
+#: ../output.py:819
 msgid "Size"
 msgstr "Tamanho"
 
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "Instalando para as dependências"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "Atualizando para as dependências"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "Removendo para as dependências"
-
-#: ../output.py:528
+#: ../output.py:830
 #, python-format
 msgid ""
 "     replacing  %s.%s %s\n"
@@ -654,127 +767,126 @@ msgstr ""
 "     substituindo  %s.%s %s\n"
 "\n"
 
-#: ../output.py:536
+#: ../output.py:838
 #, python-format
 msgid ""
 "\n"
 "Transaction Summary\n"
-"=============================================================================\n"
+"%s\n"
 "Install  %5.5s Package(s)         \n"
 "Update   %5.5s Package(s)         \n"
 "Remove   %5.5s Package(s)         \n"
 msgstr ""
 "\n"
-"Sumário da Transação\n"
-"=============================================================================\n"
-"Instalar  %5.5s Pacote(s)         \n"
-"Atualizar   %5.5s Pacote(s)         \n"
-"Remover   %5.5s Pacote(s)         \n"
+"Sumário da transação\n"
+"%s\n"
+"Instalar  %5.5s pacote(s)         \n"
+"Atualizar   %5.5s pacote(s)         \n"
+"Remover   %5.5s pacote(s)         \n"
 
-#: ../output.py:554
+#: ../output.py:886
 msgid "Removed"
-msgstr "Removidos"
+msgstr "Removido(s)"
 
-#: ../output.py:555
+#: ../output.py:887
 msgid "Dependency Removed"
-msgstr "Dependência Removida"
+msgstr "Dependência(s) removida(s)"
 
-#: ../output.py:557
+#: ../output.py:889
 msgid "Dependency Installed"
-msgstr "Dependência Instalada"
+msgstr "Dependência(s) instalada(s)"
 
-#: ../output.py:559
+#: ../output.py:891
 msgid "Dependency Updated"
-msgstr "Dependência Atualizada"
+msgstr "Dependência(s) atualizada(s)"
 
-#: ../output.py:560
+#: ../output.py:892
 msgid "Replaced"
 msgstr "Substituído(s)"
 
-#: ../output.py:618
+#: ../output.py:965
 #, python-format
 msgid ""
 "\n"
-" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-"seconds to exit.\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n"
 msgstr ""
 "\n"
-" Download atual cancelado, interrupção %s, (ctrl-c) novamente %s com %s%s%s "
-"segundos até sair.\n"
+" Download atual cancelado, interrupção %s, (ctrl-c) novamente %s com %s%s%s segundos até sair.\n"
 
-#: ../output.py:628
+#: ../output.py:975
 msgid "user interrupt"
-msgstr "interrupção pelo usuário"
+msgstr "interrupção do usuário"
+
+#: ../output.py:991
+msgid "Total"
+msgstr "Total"
 
-#: ../output.py:639
+#: ../output.py:1005
 msgid "installed"
 msgstr "instalado"
 
-#: ../output.py:640
+#: ../output.py:1006
 msgid "updated"
 msgstr "atualizado"
 
-#: ../output.py:641
+#: ../output.py:1007
 msgid "obsoleted"
 msgstr "obsoleto"
 
-#: ../output.py:642
+#: ../output.py:1008
 msgid "erased"
 msgstr "removido"
 
-#: ../output.py:646
+#: ../output.py:1012
 #, 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:653
+#: ../output.py:1019
 msgid "--> Running transaction check"
 msgstr "--> Executando verificação da transação"
 
-#: ../output.py:658
+#: ../output.py:1024
 msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Reiniciando Resolução de Dependências com as novas alterações."
+msgstr "--> Reiniciando resolução de dependências com as novas alterações."
 
-#: ../output.py:663
+#: ../output.py:1029
 msgid "--> Finished Dependency Resolution"
-msgstr "--> Resolução de Dependências Finalizada"
+msgstr "--> Resolução de dependências finalizada"
 
-#: ../output.py:668
+#: ../output.py:1034
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
-msgstr "--> Processando Dependência: %s para o pacote: %s"
+msgstr "--> Processando dependência: %s para o pacote: %s"
 
-#: ../output.py:673
+#: ../output.py:1039
 #, python-format
 msgid "--> Unresolved Dependency: %s"
-msgstr "--> Dependência Não Resolvida: %s"
+msgstr "--> Dependência não resolvida: %s"
 
-#: ../output.py:679
+#: ../output.py:1045
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
-msgstr "--> Processando Conflito: %s conflita com %s"
+msgstr "--> Processando conflito: %s conflita com %s"
 
-#: ../output.py:682
+#: ../output.py:1048
 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:686
+#: ../output.py:1052
 #, 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."
 
-#: ../yumcommands.py:36
+#: ../yumcommands.py:40
 msgid "You need to be root to perform this command."
 msgstr "Você precisa ser root para executar este comando."
 
-#: ../yumcommands.py:43
+#: ../yumcommands.py:47
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
-"However, you do not have any GPG public keys installed. You need to "
-"download\n"
+"However, you do not have any GPG public keys installed. You need to download\n"
 "the keys for packages you wish to install and install them.\n"
 "You can do that by running the command:\n"
 "    rpm --import public.gpg.key\n"
@@ -787,10 +899,8 @@ 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"
@@ -800,252 +910,309 @@ 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:63
+#: ../yumcommands.py:67
 #, 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:69
+#: ../yumcommands.py:73
 msgid "Error: Need an item to match"
 msgstr "Erro: É necessário um item para corresponder"
 
-#: ../yumcommands.py:75
+#: ../yumcommands.py:79
 msgid "Error: Need a group or list of groups"
 msgstr "Erro: É necessário um grupo ou uma lista de grupos"
 
-#: ../yumcommands.py:84
+#: ../yumcommands.py:88
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "Erro: a limpeza requer uma opção: %s"
 
-#: ../yumcommands.py:89
+#: ../yumcommands.py:93
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "Erro: argumento de limpeza inválido: %r"
 
-#: ../yumcommands.py:102
+#: ../yumcommands.py:106
 msgid "No argument to shell"
 msgstr "Nenhum argumento para o shell"
 
-#: ../yumcommands.py:105
+#: ../yumcommands.py:109
 #, python-format
 msgid "Filename passed to shell: %s"
 msgstr "Nome de arquivo passado para o shell: %s"
 
-#: ../yumcommands.py:109
+#: ../yumcommands.py:113
 #, 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:115
+#: ../yumcommands.py:119
 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:156
+#: ../yumcommands.py:160
 msgid "PACKAGE..."
 msgstr "PACOTE..."
 
-#: ../yumcommands.py:159
+#: ../yumcommands.py:163
 msgid "Install a package or packages on your system"
 msgstr "Instala um ou mais pacotes no seu sistema"
 
-#: ../yumcommands.py:168
+#: ../yumcommands.py:172
 msgid "Setting up Install Process"
-msgstr "Configurando o Processo de Instalação"
+msgstr "Configurando o processo de instalação"
 
-#: ../yumcommands.py:179
+#: ../yumcommands.py:183
 msgid "[PACKAGE...]"
 msgstr "[PACOTE...]"
 
-#: ../yumcommands.py:182
+#: ../yumcommands.py:186
 msgid "Update a package or packages on your system"
 msgstr "Atualiza um ou mais pacotes do seu sistema"
 
-#: ../yumcommands.py:190
+#: ../yumcommands.py:194
 msgid "Setting up Update Process"
-msgstr "Configurando o Processo de Atualização"
+msgstr "Configurando o processo de atualização"
 
-#: ../yumcommands.py:204
+#: ../yumcommands.py:236
 msgid "Display details about a package or group of packages"
 msgstr "Mostra detalhes sobre um pacote ou grupos de pacotes"
 
-#: ../yumcommands.py:212
+#. Output the packages:
+#: ../yumcommands.py:261
 msgid "Installed Packages"
-msgstr "Pacotes Instalados"
+msgstr "Pacotes instalados"
 
-#: ../yumcommands.py:213
+#: ../yumcommands.py:263
 msgid "Available Packages"
-msgstr "Pacotes Disponíveis"
+msgstr "Pacotes disponíveis"
 
-#: ../yumcommands.py:214
+#: ../yumcommands.py:265
 msgid "Extra Packages"
-msgstr "Pacotes Extras"
+msgstr "Pacotes extras"
 
-#: ../yumcommands.py:215
+#: ../yumcommands.py:267
 msgid "Updated Packages"
-msgstr "Pacotes Atualizados"
+msgstr "Pacotes atualizados"
 
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:274
+#: ../yumcommands.py:281
 msgid "Obsoleting Packages"
-msgstr "Tornando Pacotes Obsoletos"
+msgstr "Tornando pacotes obsoletos"
 
-#: ../yumcommands.py:226
+#: ../yumcommands.py:283
 msgid "Recently Added Packages"
-msgstr "Pacotes Adicionados Recentemente"
+msgstr "Pacotes adicionados recentemente"
 
-#: ../yumcommands.py:232
+#: ../yumcommands.py:290
 msgid "No matching Packages to list"
-msgstr "Nenhum Pacote Correspondente para Listar"
+msgstr "Nenhum pacote correspondente a ser listado"
 
-#: ../yumcommands.py:246
+#: ../yumcommands.py:304
 msgid "List a package or groups of packages"
 msgstr "Lista um pacote ou grupos de pacotes"
 
-#: ../yumcommands.py:258
+#: ../yumcommands.py:316
 msgid "Remove a package or packages from your system"
 msgstr "Remove um ou mais pacotes do seu sistema"
 
-#: ../yumcommands.py:266
+#: ../yumcommands.py:324
 msgid "Setting up Remove Process"
-msgstr "Configurando o Processo de Remoção"
+msgstr "Configurando o processo de remoção"
 
-#: ../yumcommands.py:278
+#: ../yumcommands.py:339
 msgid "Setting up Group Process"
-msgstr "Configurando Processo de Grupos"
+msgstr "Configurando o processo de grupos"
 
-#: ../yumcommands.py:284
+#: ../yumcommands.py:345
 msgid "No Groups on which to run command"
 msgstr "Não há grupos nos quais executar o comando"
 
-#: ../yumcommands.py:297
+#: ../yumcommands.py:358
 msgid "List available package groups"
 msgstr "Lista os grupos de pacotes disponíveis"
 
-#: ../yumcommands.py:314
+#: ../yumcommands.py:375
 msgid "Install the packages in a group on your system"
 msgstr "Instala pacotes em um grupo ou no seu sistema"
 
-#: ../yumcommands.py:336
+#: ../yumcommands.py:397
 msgid "Remove the packages in a group from your system"
 msgstr "Remove pacotes de um grupo ou do seu sistema"
 
-#: ../yumcommands.py:360
+#: ../yumcommands.py:424
 msgid "Display details about a package group"
 msgstr "Mostra detalhes sobre um grupo de pacotes"
 
-#: ../yumcommands.py:384
+#: ../yumcommands.py:448
 msgid "Generate the metadata cache"
 msgstr "Gera o cache de metadados"
 
-#: ../yumcommands.py:390
+#: ../yumcommands.py:454
 msgid "Making cache files for all metadata files."
 msgstr "Realizando cache de arquivos para todos os metadados."
 
-#: ../yumcommands.py:391
+#: ../yumcommands.py:455
 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:412
+#: ../yumcommands.py:476
 msgid "Metadata Cache Created"
-msgstr "Cache de Metadados Criado"
+msgstr "Cache de metadados criado"
 
-#: ../yumcommands.py:426
+#: ../yumcommands.py:490
 msgid "Remove cached data"
 msgstr "Remove os dados do cache"
 
-#: ../yumcommands.py:447
+#: ../yumcommands.py:511
 msgid "Find what package provides the given value"
 msgstr "Localiza qual pacote fornece o valor dado"
 
-#: ../yumcommands.py:467
+#: ../yumcommands.py:531
 msgid "Check for available package updates"
 msgstr "Verifica por atualizações de pacotes disponíveis"
 
-#: ../yumcommands.py:490
+#: ../yumcommands.py:556
 msgid "Search package details for the given string"
 msgstr "Pesquisa detalhes do pacote para a string fornecida"
 
-#: ../yumcommands.py:496
+#: ../yumcommands.py:562
 msgid "Searching Packages: "
-msgstr "Pesquisando por Pacotes:"
+msgstr "Pesquisando por pacotes:"
 
-#: ../yumcommands.py:513
+#: ../yumcommands.py:579
 msgid "Update packages taking obsoletes into account"
 msgstr "Atualiza pacotes levando em conta os obsoletos"
 
-#: ../yumcommands.py:522
+#: ../yumcommands.py:588
 msgid "Setting up Upgrade Process"
-msgstr "Configurando o Processo de Atualização"
+msgstr "Configurando o processo de atualização"
 
-#: ../yumcommands.py:536
+#: ../yumcommands.py:602
 msgid "Install a local RPM"
 msgstr "Instala um RPM local"
 
-#: ../yumcommands.py:545
+#: ../yumcommands.py:611
 msgid "Setting up Local Package Process"
-msgstr "Configurando o Processo de Pacote Local"
+msgstr "Configurando o processo de pacote local"
 
-#: ../yumcommands.py:564
+#: ../yumcommands.py:630
 msgid "Determine which package provides the given dependency"
 msgstr "Determina qual pacote fornece a dependência dada"
 
-#: ../yumcommands.py:567
+#: ../yumcommands.py:633
 msgid "Searching Packages for Dependency:"
-msgstr "Pesquisando Pacotes por Dependência:"
+msgstr "Pesquisando pacotes por dependência:"
 
-#: ../yumcommands.py:581
+#: ../yumcommands.py:647
 msgid "Run an interactive yum shell"
 msgstr "Executa um shell interativo do yum"
 
-#: ../yumcommands.py:587
+#: ../yumcommands.py:653
 msgid "Setting up Yum Shell"
-msgstr "Configurando o Shell do Yum"
+msgstr "Configurando o shell do Yum"
 
-#: ../yumcommands.py:605
+#: ../yumcommands.py:671
 msgid "List a package's dependencies"
 msgstr "Lista as dependências de um pacote"
 
-#: ../yumcommands.py:611
+#: ../yumcommands.py:677
 msgid "Finding dependencies: "
 msgstr "Localizando dependências:"
 
-#: ../yumcommands.py:627
+#: ../yumcommands.py:693
 msgid "Display the configured software repositories"
 msgstr "Exibe os repositórios de software configurados"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:742
+msgid "enabled"
+msgstr "habilitado"
+
+#: ../yumcommands.py:751
+msgid "disabled"
+msgstr "desabilitado"
+
+#: ../yumcommands.py:760
 msgid "repo id"
 msgstr "id do repo"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
 msgid "repo name"
 msgstr "nome do repo"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
 msgid "status"
 msgstr "status"
 
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "habilitado"
+#: ../yumcommands.py:765
+msgid "Repo-id     : "
+msgstr "Repo-id     : "
 
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "desabilitado"
+#: ../yumcommands.py:766
+msgid "Repo-name   : "
+msgstr "Repo-name   : "
 
-#: ../yumcommands.py:671
+#: ../yumcommands.py:767
+msgid "Repo-status : "
+msgstr "Repo-status : "
+
+#: ../yumcommands.py:769
+msgid "Repo-revision: "
+msgstr "Repo-revision: "
+
+#: ../yumcommands.py:773
+msgid "Repo-tags   : "
+msgstr "Repo-tags   : "
+
+#: ../yumcommands.py:779
+msgid "Repo-distro-tags: "
+msgstr "Repo-distro-tags: "
+
+#: ../yumcommands.py:784
+msgid "Repo-updated: "
+msgstr "Repo-updated: "
+
+#: ../yumcommands.py:786
+msgid "Repo-pkgs   : "
+msgstr "Repo-pkgs   : "
+
+#: ../yumcommands.py:787
+msgid "Repo-size   : "
+msgstr "Repo-size   : "
+
+#: ../yumcommands.py:794
+msgid "Repo-baseurl: "
+msgstr "Repo-baseurl: "
+
+#: ../yumcommands.py:798
+msgid "Repo-metalink: "
+msgstr "Repo-metalink: "
+
+#: ../yumcommands.py:801
+msgid "Repo-mirrors: "
+msgstr "Repo-mirrors: "
+
+#: ../yumcommands.py:805
+msgid "Repo-exclude: "
+msgstr "Repo-exclude: "
+
+#: ../yumcommands.py:809
+msgid "Repo-include: "
+msgstr "Repo-include: "
+
+#: ../yumcommands.py:835
 msgid "Display a helpful usage message"
 msgstr "Exibe uma mensagem de uso para ajuda"
 
-#: ../yumcommands.py:705
+#: ../yumcommands.py:869
 #, python-format
 msgid "No help available for %s"
 msgstr "Nenhuma ajuda disponível para %s"
 
-#: ../yumcommands.py:710
+#: ../yumcommands.py:874
 msgid ""
 "\n"
 "\n"
@@ -1055,7 +1222,7 @@ msgstr ""
 "\n"
 "apelidos: "
 
-#: ../yumcommands.py:712
+#: ../yumcommands.py:876
 msgid ""
 "\n"
 "\n"
@@ -1065,11 +1232,11 @@ msgstr ""
 "\n"
 "apelido: "
 
-#: ../yumcommands.py:741
+#: ../yumcommands.py:905
 msgid "Setting up Reinstall Process"
-msgstr "Configurando o Processo de Reinstalação"
+msgstr "Configurando o processo de reinstalação"
 
-#: ../yumcommands.py:755
+#: ../yumcommands.py:919
 msgid "reinstall a package"
 msgstr "reinstala um pacote"
 
@@ -1091,43 +1258,42 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"Saindo por um Pipe Defeituoso"
+"Saindo por um pipe defeituoso"
 
-#: ../yummain.py:105
-msgid ""
-"Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr ""
-"Outra aplicação está retendo o bloqueio do yum; esperando por ele para "
-"sair..."
+#: ../yummain.py:98
+msgid "Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "Outra aplicação está retendo o bloqueio do yum; esperando por ele para sair..."
 
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:125
+#: ../yummain.py:164
 #, python-format
 msgid "Error: %s"
 msgstr "Error: %s"
 
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:135
+#: ../yummain.py:171
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "Erro(s) Desconhecido(s): Código de Saída: %d:"
+msgstr "Erro(s) desconhecido(s): código de saída: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:142
 msgid "Resolving Dependencies"
-msgstr "Resolvendo Dependências"
+msgstr "Resolvendo dependências"
 
-#: ../yummain.py:184
+#: ../yummain.py:177
 msgid ""
 "\n"
 "Dependencies Resolved"
 msgstr ""
 "\n"
-"Dependências Resolvidas"
+"Dependências resolvidas"
 
-#: ../yummain.py:198
+#: ../yummain.py:191
 msgid "Complete!"
 msgstr "Concluído!"
 
-#: ../yummain.py:245
+#: ../yummain.py:238
 msgid ""
 "\n"
 "\n"
@@ -1137,323 +1303,315 @@ msgstr ""
 "\n"
 "Saindo pelo cancelamento do usuário."
 
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:84
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/depsolve.py:95
+#: ../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:136
+#: ../yum/depsolve.py:148
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "tsflag inválido no arquivo de configuração: %s"
 
-#: ../yum/depsolve.py:147
+#: ../yum/depsolve.py:159
 #, python-format
 msgid "Searching pkgSack for dep: %s"
 msgstr "Pesquisando pkgSack para a dep.: %s"
 
-#: ../yum/depsolve.py:170
+#: ../yum/depsolve.py:182
 #, python-format
 msgid "Potential match for %s from %s"
 msgstr "Correspondência potencial para o %s a partir de %s"
 
-#: ../yum/depsolve.py:178
+#: ../yum/depsolve.py:190
 #, python-format
 msgid "Matched %s to require for %s"
 msgstr "%s encontrado para solicitar o %s"
 
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:231
 #, python-format
 msgid "Member: %s"
 msgstr "Membro: %s"
 
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:245
+#: ../yum/depsolve.py:732
 #, python-format
 msgid "%s converted to install"
 msgstr "%s convertido para instalar"
 
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:252
 #, python-format
 msgid "Adding Package %s in mode %s"
-msgstr "Adicionando Pacote %s ao modo %s"
+msgstr "Adicionando pacote %s no modo %s"
 
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:262
 #, python-format
 msgid "Removing Package %s"
-msgstr "Removendo Pacote %s"
+msgstr "Removendo pacote %s"
 
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:273
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s requer: %s"
 
-#: ../yum/depsolve.py:312
+#: ../yum/depsolve.py:331
 msgid "Needed Require has already been looked up, cheating"
 msgstr "O requerimento necessário já foi localizado, enganando"
 
-#: ../yum/depsolve.py:322
+#: ../yum/depsolve.py:341
 #, 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:329
+#: ../yum/depsolve.py:348
 #, python-format
 msgid "Potential Provider: %s"
 msgstr "Fornecedor em potencial: %s"
 
-#: ../yum/depsolve.py:352
+#: ../yum/depsolve.py:371
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
 msgstr "O modo é %s para o fornecedor do %s: %s"
 
-#: ../yum/depsolve.py:356
+#: ../yum/depsolve.py:375
 #, python-format
 msgid "Mode for pkg providing %s: %s"
 msgstr "Modo para o pacote que fornece o %s: %s"
 
-#: ../yum/depsolve.py:360
+#: ../yum/depsolve.py:379
 #, 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:372
+#: ../yum/depsolve.py:391
 #, 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:375
+#: ../yum/depsolve.py:394
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: Atualizando %s para resolver a dependência."
 
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:402
 #, 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"
+msgstr "Não foi possível encontrar um caminho de atualização para a dep. para: %s"
 
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:412
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "Requerimento %s insolúvel para o %s"
 
+#: ../yum/depsolve.py:435
+#, 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:434
+#: ../yum/depsolve.py:477
 #, 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:449
+#: ../yum/depsolve.py:492
 #, 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:460
+#: ../yum/depsolve.py:503
 #, 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."
+msgstr "O pacote de solução em potencial %s tem uma instância mais nova instalada."
 
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:511
+#: ../yum/depsolve.py:560
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
-msgstr "Dependência Faltando: %s é requerido pelo pacote %s"
+msgstr "Dependência faltando: %s é requerido pelo pacote %s"
 
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:524
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s já está no ct, pulando esse"
 
-#: ../yum/depsolve.py:510
-#, python-format
-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"
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:570
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Marcando %s como uma atualização para o %s"
 
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:578
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: Marcando %s como uma instalação para o %s"
 
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:670
+#: ../yum/depsolve.py:750
 msgid "Success - empty transaction"
 msgstr "Sucesso - transação vazia"
 
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:709
+#: ../yum/depsolve.py:722
 msgid "Restarting Loop"
-msgstr "Reiniciando o Loop"
+msgstr "Reiniciando o loop"
 
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:738
 msgid "Dependency Process ending"
-msgstr "Término do Processo de Dependências"
+msgstr "Término do processo de dependências"
 
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:744
 #, 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:715
+#: ../yum/depsolve.py:751
 msgid "Success - deps resolved"
 msgstr "Sucesso - dependências resolvidas"
 
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:765
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Verificando dependências para %s"
 
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:848
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "procurando por %s como um requerimento do %s"
 
-#: ../yum/depsolve.py:933
+#: ../yum/depsolve.py:988
 #, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr "Comparando melhor: %s para po: %s"
+msgid "Running compare_providers() for %s"
+msgstr "Executando compare_providers() para %s"
 
-#: ../yum/depsolve.py:937
-#, python-format
-msgid "Same: best %s == po: %s"
-msgstr "Igual: melhor %s == po: %s"
-
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
-#, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "melhor %s torna po obsoleto: %s"
-
-#: ../yum/depsolve.py:955
-#, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "po %s torna melhor obsoleto: %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
+#: ../yum/depsolve.py:1016
+#: ../yum/depsolve.py:1022
 #, python-format
 msgid "better arch in po %s"
 msgstr "melhor arquitetura no po %s"
 
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:1061
 #, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr "po %s compartilha um sourcerpm com %s"
+msgid "%s obsoletes %s"
+msgstr "%s torna %s obsoleto"
 
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:1077
 #, python-format
-msgid "best %s shares a sourcerpm with %s"
-msgstr "melhor %s compartilha um sourcerpm com %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+"  Winner: %s"
+msgstr ""
+"archdist comparou %s com %s em %s\n"
+"  Vencedor: %s"
 
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:1084
 #, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr "po %s compartilha mais do prefixo do nome com %s"
+msgid "common sourcerpm %s and %s"
+msgstr "Sourcerpm comum %s e %s"
 
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1090
 #, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr "po %s tem um nome mais curto do que o melhor %s"
+msgid "common prefix of %s between %s and %s"
+msgstr "prefixo comum de %s entre %s e %s"
 
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:1098
 #, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "bestpkg %s compartilha mais do prefixo do nome com %s"
+msgid "Best Order: %s"
+msgstr "Melhor ordem: %s"
 
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:134
 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:296
+#: ../yum/__init__.py:314
 #, 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:332
+#: ../yum/__init__.py:352
 msgid "plugins already initialised"
 msgstr "plugins já inicializados"
 
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:359
 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:349
+#: ../yum/__init__.py:369
 msgid "Reading Local RPMDB"
-msgstr "Lendo RPMDB Local"
+msgstr "Lendo RPMDB local"
 
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:387
 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:387
+#: ../yum/__init__.py:407
 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:404
+#: ../yum/__init__.py:424
 msgid "Setting up Package Sacks"
-msgstr "Configurando Sacos de Pacotes"
+msgstr "Configurando sacos de pacotes"
 
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:467
 #, 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:448
+#: ../yum/__init__.py:468
 msgid "therefore this repo cannot be reset.\n"
 msgstr "conseqüentemente este repo não pode ser restaurado.\n"
 
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:473
 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:465
+#: ../yum/__init__.py:485
 msgid "Building updates object"
 msgstr "Construindo objeto de atualizações"
 
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:516
 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:520
+#: ../yum/__init__.py:540
 msgid "Getting group metadata"
 msgstr "Obtendo metadados do grupo"
 
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:566
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Adicionando arquivo de grupo a partir do repositório: %s"
 
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:575
 #, 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:561
+#: ../yum/__init__.py:581
 msgid "No Groups Available in any repository"
 msgstr "Nenhum grupo disponível em nenhum repositório"
 
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:631
 msgid "Importing additional filelist information"
 msgstr "Importando informações adicionais da lista de arquivos"
 
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:640
+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:690
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Rodada de ignoração de dependências quebradas %i"
 
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:713
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "A ignoração de dependências quebradas levou %i rodadas"
 
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:714
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1461,455 +1619,521 @@ msgstr ""
 "\n"
 "Pacotes ignorados devido a problemas de dependências:"
 
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:718
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s a partir de %s"
 
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:803
+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:819
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Falha ao remover o arquivo de transação %s"
 
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:860
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "excluindo para custo: %s a partir de %s"
 
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:891
 msgid "Excluding Packages in global exclude list"
 msgstr "Excluindo pacotes na lista global de excluídos"
 
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:893
 #, python-format
 msgid "Excluding Packages from %s"
-msgstr "Excluindo Pacotes de %s"
+msgstr "Excluindo pacotes de %s"
 
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:920
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Reduzindo %s apenas aos pacotes inclusos"
 
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:926
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Mantendo o pacote incluso %s"
 
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:932
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Removendo pacote não encontrado %s"
 
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:935
 msgid "Finished"
 msgstr "Concluído"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:965
 #, 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:923
+#: ../yum/__init__.py:969
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Bloqueio existente em %s: outra cópia está em execução com o pid %s."
 
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1040
 msgid "Package does not match intended download"
 msgstr "O pacote não corresponde ao download pretendido"
 
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1055
 msgid "Could not perform checksum"
 msgstr "Não foi possível realizar a soma de verificação"
 
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1058
 msgid "Package does not match checksum"
 msgstr "O pacote não corresponde à soma de verificação"
 
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1101
 #, 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:1042
+#: ../yum/__init__.py:1104
 #, python-format
 msgid "using local copy of %s"
 msgstr "usando cópia local do %s"
 
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1131
 #, python-format
-msgid "Insufficient space in download directory %s to download"
-msgstr "Espaço insuficiente no diretório de download %s para baixar o arquivo"
+msgid ""
+"Insufficient space in download directory %s\n"
+"    * free   %s\n"
+"    * needed %s"
+msgstr ""
+"Espaço insuficiente no diretório de download %s\n"
+"    * livre   %s\n"
+"    * necessário %s"
 
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1178
 msgid "Header is not complete."
 msgstr "O cabeçalho não está completo."
 
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1218
 #, 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:1189
+#: ../yum/__init__.py:1273
 #, 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:1193
+#: ../yum/__init__.py:1277
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Problema ao abrir o pacote %s"
 
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1285
 #, 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:1205
+#: ../yum/__init__.py:1289
 #, python-format
 msgid "Package %s is not signed"
 msgstr "O pacote %s não está assinado"
 
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1327
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Não foi possível remover %s"
 
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1331
 #, python-format
 msgid "%s removed"
 msgstr "%s removido"
 
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1368
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Não foi possível remover %s arquivo %s"
 
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1372
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s arquivo %s removido"
 
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1374
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s arquivos removidos"
 
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1436
 #, 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:1335
+#: ../yum/__init__.py:1442
 #, 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:1543
-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:1650
+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:1580
+#: ../yum/__init__.py:1688
 #, python-format
 msgid "Searching %d packages"
 msgstr "Pesquisando por %d pacotes"
 
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1692
 #, python-format
 msgid "searching package %s"
 msgstr "pesquisando pelo pacote %s"
 
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1704
 msgid "searching in file entries"
 msgstr "pesquisando nas entradas do arquivo"
 
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1711
 msgid "searching in provides entries"
 msgstr "pesquisando nas entradas dos fornecimentos"
 
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1744
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Fornecimento combina com: %s"
 
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1793
+msgid "No group data available for configured repositories"
+msgstr "Nenhum dado de grupos disponível para os repositório configurados"
+
+#: ../yum/__init__.py:1819
+#: ../yum/__init__.py:1838
+#: ../yum/__init__.py:1869
+#: ../yum/__init__.py:1875
+#: ../yum/__init__.py:1948
+#: ../yum/__init__.py:1952
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Não existe nenhum grupo de nome %s"
 
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1850
+#: ../yum/__init__.py:1965
 #, 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:1770
+#: ../yum/__init__.py:1897
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Adicionando o pacote %s do grupo %s"
 
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1901
 #, 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:1849
+#: ../yum/__init__.py:1990
 #, 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:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:2005
+msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr "getInstalledPackageObject() será deixada de lado, use a self.rpmdb.searchPkgTuple().\n"
+
+#: ../yum/__init__.py:2057
+#: ../yum/__init__.py:2100
 msgid "Invalid versioned dependency string, try quoting it."
 msgstr "String de dependência versionada inválida, tente citá-la."
 
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:2059
+#: ../yum/__init__.py:2102
 msgid "Invalid version flag"
 msgstr "Sinalizador de versão inválido"
 
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:2074
+#: ../yum/__init__.py:2078
 #, python-format
 msgid "No Package found for %s"
 msgstr "Nenhum pacote encontrado para %s"
 
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2277
 msgid "Package Object was not a package object instance"
-msgstr "O Pacote de Objeto não era uma instância de pacote de objeto"
+msgstr "O pacote de objeto não era uma instância de pacote de objeto"
 
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2281
 msgid "Nothing specified to install"
 msgstr "Nada especificado para instalar"
 
 #. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2299
 #, 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:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2305
+#: ../yum/__init__.py:2681
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Nenhuma correspondência para o argumento: %s"
 
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2371
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Pacote %s instalado, mas não disponível"
+
+#: ../yum/__init__.py:2374
 msgid "No package(s) available to install"
 msgstr "Nenhum pacote disponível para instalar"
 
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2386
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Pacote: %s - já está no conjunto de transações"
 
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2399
 #, 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:2178
+#: ../yum/__init__.py:2406
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr "O pacote %s já está instalado. Verificando por uma atualização."
 
+#: ../yum/__init__.py:2416
+#, 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"
+
 #. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2486
 msgid "Updating Everything"
-msgstr "Atualizando Tudo"
+msgstr "Atualizando tudo"
+
+#: ../yum/__init__.py:2498
+#: ../yum/__init__.py:2603
+#: ../yum/__init__.py:2614
+#: ../yum/__init__.py:2636
+#, 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:2304
+#: ../yum/__init__.py:2594
 #, 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:2377
+#: ../yum/__init__.py:2617
+#: ../yum/__init__.py:2639
+#, 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:2678
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2392
+#: ../yum/__init__.py:2694
 msgid "No package matched to remove"
 msgstr "Nenhum pacote encontrado para remoção"
 
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2728
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Não foi possível abrir o arquivo: %s. Ignorando."
 
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2731
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Examinando %s: %s"
 
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2739
 #, 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 "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr "Não foi possível adicionar o pacote %s à transação. %s não é uma arquitetura compatível."
 
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2747
+#, python-format
+msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
+msgstr "O pacote %s não está instalado, não é possível atualizá-lo. Execute o yum install para instalá-lo."
+
+#: ../yum/__init__.py:2780
 #, python-format
 msgid "Excluding %s"
 msgstr "Excluindo %s"
 
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2785
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Marcando %s para ser instalado"
 
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2791
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Marcando %s como uma atualização do %s"
 
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2798
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: não atualiza o pacote instalado."
 
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2816
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Problema na reinstalação: nenhum pacote encontrado para remoção"
 
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2827
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "O pacote %s permite múltiplas instalações, ignorando"
 
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2834
 msgid "Problem in reinstall: no package matched to install"
 msgstr "Problema na reinstalação: nenhum pacote encontrado para instalação"
 
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2869
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Obtendo a chave GPG a partir de %s"
 
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2875
 msgid "GPG key retrieval failed: "
 msgstr "A obtenção da chave GPG falhou:"
 
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "A análise da chave GPG falhou:"
+#: ../yum/__init__.py:2886
+#, 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:2593
+#: ../yum/__init__.py:2918
 #, 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:2598
+#: ../yum/__init__.py:2923
+#: ../yum/__init__.py:2985
 #, 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:2610
+#: ../yum/__init__.py:2940
 msgid "Not installing key"
 msgstr "Não está instalando a chave"
 
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2946
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Falha na importação da chave (código %d)"
 
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2947
+#: ../yum/__init__.py:3006
 msgid "Key imported successfully"
 msgstr "Chave importada com sucesso"
 
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:2952
+#: ../yum/__init__.py:3011
 #, 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:2633
+#: ../yum/__init__.py:2961
 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:2707
+#: ../yum/__init__.py:2980
+#, 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:3000
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "A chave para o repositório %s não será instalada"
+
+#: ../yum/__init__.py:3005
+msgid "Key import failed"
+msgstr "Falha na importação da chave"
+
+#: ../yum/__init__.py:3096
 msgid "Unable to find a suitable mirror."
 msgstr "Não foi possível encontrar um espelho apropriado."
 
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:3098
 msgid "Errors were encountered while downloading packages."
 msgstr "Foram encontrados erros ao baixar os pacotes."
 
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:3162
 msgid "Test Transaction Errors: "
-msgstr "Erros do Teste de Transação:"
+msgstr "Erros do teste de transação:"
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:199
 msgid "Loaded plugins: "
 msgstr "Plugins carregados: "
 
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:213
+#: ../yum/plugins.py:219
 #, python-format
 msgid "No plugin match for: %s"
-msgstr "Nenhum plugin correspondente com: %s"
+msgstr "Nenhum plugin correspondente para: %s"
 
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:249
 #, python-format
 msgid "\"%s\" plugin is disabled"
 msgstr "O plugin \"%s\" está desabilitado"
 
-#: ../yum/plugins.py:231
+#. Give full backtrace:
+#: ../yum/plugins.py:261
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "O plugin \"%s\" não pôde ser importado"
+
+#: ../yum/plugins.py:268
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "O plugin \"%s\" não especifica a versão requerida da API"
 
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:273
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "O plugin \"%s\" requer a API %s. A API suportada é a %s."
 
-#: ../yum/plugins.py:264
+#: ../yum/plugins.py:306
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Carregando o plugin \"%s\""
 
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:313
 #, 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:291
+#: ../yum/plugins.py:333
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Arquivos de configuração %s não encontrado"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
+#: ../yum/plugins.py:336
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Não foi possível encontrar o arquivo de configuração para o plugin %s"
 
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:490
 msgid "registration of commands not supported"
 msgstr "O registro de comandos não é suportado"
 
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Reempacotando"
+
 #: ../rpmUtils/oldUtils.py:26
 #, python-format
 msgid "Header cannot be opened or does not match %s, %s."
@@ -1922,58 +2146,68 @@ msgstr "O RPM %s não passou na verificação md5"
 
 #: ../rpmUtils/oldUtils.py:144
 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:174
 msgid "Got an empty Header, something has gone wrong"
 msgstr "Um cabeçalho vazio foi obtido, algo deu errado"
 
-#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
+#: ../rpmUtils/oldUtils.py:244
+#: ../rpmUtils/oldUtils.py:251
+#: ../rpmUtils/oldUtils.py:254
+#: ../rpmUtils/oldUtils.py:257
 #, python-format
 msgid "Damaged Header %s"
-msgstr "Cabeçalho %s Danificado"
+msgstr "Cabeçalho %s danificado"
 
 #: ../rpmUtils/oldUtils.py:272
 #, python-format
 msgid "Error opening rpm %s - error %s"
 msgstr "Erro ao abrir o rpm %s - erro %s"
 
+#~ msgid "Could not find update match for %s"
+#~ msgstr "Não foi possível encontrar uma atualização correspondente ao %s"
+#~ 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: %s"
 #~ msgstr "%s conflita com: %s"
-
 #~ msgid "%s conflicts with %s"
 #~ msgstr "%s conflita com %s"
-
-#~ msgid "Package %s needs %s, this is not available."
-#~ msgstr "O pacote %s necessita do %s, que não está disponível."
-
 #~ 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"
@@ -1984,13 +2218,10 @@ 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"
@@ -1999,16 +2230,12 @@ 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"
@@ -2016,13 +2243,10 @@ 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"
@@ -2031,117 +2255,86 @@ 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"
@@ -2152,69 +2345,50 @@ 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 | "
@@ -2260,102 +2434,76 @@ 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 "
@@ -2385,77 +2533,54 @@ 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 "[install: %s]"
-#~ msgstr "[instalar: %s]"
-
 #~ 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"
+
commit e8e26704dc5803dc259929b747a43bd59e08b747
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Sat Nov 1 09:18:40 2008 +0100

    added updated Norsk translation by Kjartan Maraas

diff --git a/po/nb.po b/po/nb.po
index a4214b1..512a227 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -3,36 +3,39 @@
 # Copyright (C) 2008 Terje Røsten
 # This file is distributed under the same license as the yum package.
 # Terje Røsten <terje.rosten at ntnu.no>, 2008.
-#, fuzzy
+# Kjartan Maraas <kmaraas at broadpark.no>, 2008.
+#
+
 msgid ""
 msgstr ""
 "Project-Id-Version: yum 3.2.10\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-02-12 11:16+0100\n"
-"Last-Translator: Terje Røsten <terje.rosten at ntnu.no>\n"
-"Language-Team: Norwegian (bokmål) <i18n-no at lister.ping.uio.no>\n"
+"POT-Creation-Date: 2008-10-31 13:29+0000\n"
+"PO-Revision-Date: 2008-10-31 20:25+0100\n"
+"Last-Translator: Kjartan Maraas <kmaraas at broadpark.no>\n"
+"Language-Team: Norwegian bokmål <i18n-nb at lister.ping.uio.no>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Oppdaterer"
 
-#: ../callback.py:49
+#: ../callback.py:49 ../yum/rpmtrans.py:72
 msgid "Erasing"
 msgstr "Fjerner"
 
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
 msgid "Installing"
 msgstr "Legger inn"
 
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
 msgid "Obsoleted"
 msgstr "Er utgått"
 
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54 ../output.py:562
 msgid "Updated"
 msgstr "Oppdatert"
 
@@ -40,7 +43,7 @@ msgstr "Oppdatert"
 msgid "Erased"
 msgstr "Fjernet"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
 msgid "Installed"
 msgstr "Lagt inn"
 
@@ -50,7 +53,7 @@ msgstr "Intet hode - merksnodig?!"
 
 #: ../callback.py:168
 msgid "Repackage"
-msgstr "Pakker på nytt"
+msgstr "Pakk på nytt"
 
 #: ../callback.py:189
 #, python-format
@@ -62,405 +65,425 @@ msgstr "Feil: ugyldig tilstand ut: %s for %s"
 msgid "Erased: %s"
 msgstr "Fjernet: %s"
 
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217 ../output.py:517
 msgid "Removing"
 msgstr "Fjerner"
 
-#: ../callback.py:219
+#: ../callback.py:219 ../yum/rpmtrans.py:77
 msgid "Cleanup"
 msgstr "Rydder opp"
 
-#: ../cli.py:103
+#: ../cli.py:105
 #, python-format
 msgid "Command \"%s\" already defined"
-msgstr "Kommando \"%s\" er allerede definert"
+msgstr "Kommando «%s» er allerede definert"
 
-#: ../cli.py:115
+#: ../cli.py:117
 msgid "Setting up repositories"
-msgstr "Lager pakkeoversikt"
+msgstr "Konfigurerer lagre"
 
-#: ../cli.py:126
+#: ../cli.py:128
 msgid "Reading repository metadata in from local files"
-msgstr "Leser inn data om pakker fra lokale filer"
+msgstr "Leser inn data om lager fra lokale filer"
 
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:186 ../utils.py:71
 #, python-format
 msgid "Config Error: %s"
-msgstr "Feil ved konfigurasjon: %s"
+msgstr "Feil i konfigurasjon: %s"
 
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:189 ../cli.py:1081 ../utils.py:74
 #, python-format
 msgid "Options Error: %s"
-msgstr "Feil med opsjoner: %s"
+msgstr "Feil i flagg: %s"
 
-#: ../cli.py:229
+#: ../cli.py:232
 msgid "You need to give some command"
-msgstr "Vennligst oppgi minst en kommando"
+msgstr "Du må oppgi en kommando"
 
-#: ../cli.py:271
+#: ../cli.py:274
 msgid "Disk Requirements:\n"
-msgstr "Krav til ledig diskplass\n"
+msgstr "Krav til ledig diskplass:\n"
 
-#: ../cli.py:273
+#: ../cli.py:276
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
-msgstr "Minst %dMB er nødvendig i filsystemet %s.\n"
+msgstr "Minst %dMB kreves på filsystem %s.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:281
 msgid ""
 "Error Summary\n"
 "-------------\n"
 msgstr ""
-"Oversikt over feil\n"
-"------------------\n"
+"Sammendrag for feil\n"
+"---------------------\n"
 
-#: ../cli.py:317
+#: ../cli.py:320
 msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "Prøver og fullføre transaksjonen, men den er tom. Avslutter."
+msgstr "Prøver å kjøre transaksjonen, men den er tom. Avslutter."
 
-#: ../cli.py:347
+#: ../cli.py:350
 msgid "Exiting on user Command"
 msgstr "Avslutter på grunn av kommando fra bruker"
 
-#: ../cli.py:351
+#: ../cli.py:354
 msgid "Downloading Packages:"
 msgstr "Laster ned pakker:"
 
-#: ../cli.py:356
+#: ../cli.py:359
 msgid "Error Downloading Packages:\n"
 msgstr "Kunne ikke laste ned pakkene:\n"
 
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:373 ../yum/__init__.py:2826
 msgid "Running rpm_check_debug"
-msgstr "Kjører rpm-sjekker"
+msgstr "Kjører rpm_check_debug"
 
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:376 ../yum/__init__.py:2829
 msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "Feil: en forskjell mellom rpm-sjekker og yum har oppstått"
+msgstr "FEIL med rpm_check_debug i forhold til løsing av avhengigheter:"
 
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:380 ../yum/__init__.py:2831
 msgid "Please report this error in bugzilla"
 msgstr "Vennligst send en feilrapport til bugzilla"
 
-#: ../cli.py:383
+#: ../cli.py:386
 msgid "Running Transaction Test"
-msgstr "Gjennomfører en test av transaksjonen"
+msgstr "Gjennomfører test av transaksjonen"
 
-#: ../cli.py:399
+#: ../cli.py:402
 msgid "Finished Transaction Test"
 msgstr "Transaksjonstesten er fullført"
 
-#: ../cli.py:401
+#: ../cli.py:404
 msgid "Transaction Check Error:\n"
-msgstr "Feil ved sjekk av transaksjonen:\n"
+msgstr "Feil ved test av transaksjonen:\n"
 
-#: ../cli.py:408
+#: ../cli.py:411
 msgid "Transaction Test Succeeded"
 msgstr "Test av transaksjonen var vellykket"
 
-#: ../cli.py:429
+#: ../cli.py:432
 msgid "Running Transaction"
 msgstr "Utfører transaksjonen"
 
-#: ../cli.py:459
+#: ../cli.py:462
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
 msgstr ""
-"Nekter og automatisk importere nøkler når man kjører uten oppsyn.\n"
-"Bruk \"-y\" for uansett å godta import."
+"Nekter å importere nøkler automatisk ved kjøring uten oppsyn.\n"
+"Bruk «-y» for å overstyre."
 
-#: ../cli.py:491
+#: ../cli.py:494
 msgid "Parsing package install arguments"
 msgstr "Analyserer argumentene for pakkeinstallasjon"
 
-#: ../cli.py:501
+#: ../cli.py:504
 #, python-format
 msgid "No package %s available."
-msgstr "Ingen pakke: %s er tilgjengelig."
+msgstr "Pakke: %s er ikke tilgjengelig."
 
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:790
 msgid "Package(s) to install"
-msgstr "Pakker som legges"
+msgstr "Pakke(r) som skal legges inn"
 
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:509 ../cli.py:627 ../yumcommands.py:147 ../yumcommands.py:791
 msgid "Nothing to do"
-msgstr "Ingenting og gjøre"
+msgstr "Ingenting å gjøre"
 
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
+#: ../cli.py:539 ../yum/__init__.py:2275 ../yum/__init__.py:2375
+#: ../yum/__init__.py:2387
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
 
-#: ../cli.py:568
+#: ../cli.py:571
 #, python-format
 msgid "Could not find update match for %s"
 msgstr "Kunne ikke finne oppdatering som passet for %s"
 
-#: ../cli.py:580
+#: ../cli.py:583
 #, python-format
 msgid "%d packages marked for Update"
-msgstr "%d pakker er vil bli oppdatert"
+msgstr "%d pakker merket for oppdatering"
 
-#: ../cli.py:583
+#: ../cli.py:586
 msgid "No Packages marked for Update"
-msgstr "Ingen pakker vil bli oppdatert"
+msgstr "Ingen pakker merket for oppdatering"
 
-#: ../cli.py:599
+#: ../cli.py:602
 #, python-format
 msgid "%d packages marked for removal"
-msgstr "%d pakker vil bli fjernet"
+msgstr "%d pakker merket for fjerning"
 
-#: ../cli.py:602
+#: ../cli.py:605
 msgid "No Packages marked for removal"
-msgstr "Ingen pakker vil bli fjernet"
+msgstr "Ingen pakker merket for fjerning"
 
-#: ../cli.py:614
+#: ../cli.py:617
 msgid "No Packages Provided"
 msgstr "Ingen pakker ble tilbudt"
 
-#: ../cli.py:654
+#: ../cli.py:657
 msgid "Matching packages for package list to user args"
 msgstr "Tilpasser pakkeliste etter brukers ønske"
 
-#: ../cli.py:701
-#, fuzzy, python-format
+#: ../cli.py:705
+#, python-format
 msgid "Warning: No matches found for: %s"
-msgstr "Ingen pakke for %s er funnet"
+msgstr "Advarsel: Ingen treff funnet for: %s"
 
-#: ../cli.py:704
+#: ../cli.py:708
 msgid "No Matches found"
-msgstr "Ingen passende pakker ble funnet"
+msgstr "Fant ingen treff"
 
-#: ../cli.py:745
+#: ../cli.py:749
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Ingen pakke ble funnet for %s"
 
-#: ../cli.py:757
+#: ../cli.py:761
 msgid "Cleaning up Everything"
 msgstr "Rydder opp alt"
 
-#: ../cli.py:771
+#: ../cli.py:775
 msgid "Cleaning up Headers"
-msgstr "Rydder opp metadata"
+msgstr "Rydder opp pakkehoder"
 
-#: ../cli.py:774
+#: ../cli.py:778
 msgid "Cleaning up Packages"
-msgstr "Fjerner lagrede pakker"
+msgstr "Rydder opp pakker"
 
-#: ../cli.py:777
+#: ../cli.py:781
 msgid "Cleaning up xml metadata"
 msgstr "Rydder opp i XML-metadata"
 
-#: ../cli.py:780
+#: ../cli.py:784
 msgid "Cleaning up database cache"
-msgstr "Rydder opp i databasen"
+msgstr "Rydder opp i mellomlager for database"
 
-#: ../cli.py:783
-#, fuzzy
+#: ../cli.py:787
 msgid "Cleaning up expire-cache metadata"
-msgstr "Rydder opp i XML-metadata"
+msgstr "Rydder opp i metadata for expire-cache"
 
-#: ../cli.py:786
+#: ../cli.py:790
 msgid "Cleaning up plugins"
 msgstr "Rydder opp i tillegg"
 
-#: ../cli.py:807
+#: ../cli.py:812
 msgid "Installed Groups:"
 msgstr "Installerte grupper:"
 
-#: ../cli.py:814
+#: ../cli.py:819
 msgid "Available Groups:"
 msgstr "Tilgjengelig grupper:"
 
-#: ../cli.py:820
+#: ../cli.py:825
 msgid "Done"
 msgstr "Ferdig"
 
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:836 ../cli.py:854 ../cli.py:860
 #, python-format
 msgid "Warning: Group %s does not exist."
-msgstr "Advarsel: gruppe %s eksisterer ikke."
+msgstr "Advarsel: Gruppe %s eksisterer ikke."
 
-#: ../cli.py:853
+#: ../cli.py:864
 msgid "No packages in any requested group available to install or update"
-msgstr "Ingen pakker i aktuelle grupper er tilgjengelig"
+msgstr ""
+"Ingen pakker tilgjengelig for installering eller oppdatering i aktuelle "
+"grupper"
 
-#: ../cli.py:855
+#: ../cli.py:866
 #, python-format
 msgid "%d Package(s) to Install"
-msgstr "%d pakker vil bli installert"
+msgstr "%d pakke(r) vil bli installert"
 
-#: ../cli.py:865
+#: ../cli.py:876
 #, python-format
 msgid "No group named %s exists"
-msgstr "Ingen gruppe med navn %s er tilgjengelig"
+msgstr "Det finnes ingen gruppe med navn %s"
 
-#: ../cli.py:871
+#: ../cli.py:882
 msgid "No packages to remove from groups"
-msgstr "Ingen pakker og fjerne fra gruppe"
+msgstr "Ingen pakker å fjerne fra grupper"
 
-#: ../cli.py:873
+#: ../cli.py:884
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d pakker vil bli fjernet"
 
-#: ../cli.py:915
+#: ../cli.py:926
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Pakke %s er allerede lagt inn, hopper over"
 
-#: ../cli.py:926
+#: ../cli.py:937
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
-msgstr "Vraker pakke som ikke sammenlignes %s.%s"
+msgstr "Vraker pakke som ikke kan sammenlignes %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:952
+#: ../cli.py:963
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr ""
-"Ingen annen pakke %s er lagt inn, legger til pakke til liste over "
-"potensielle pakker"
+"Ingen annen %s er lagt inn, legger til pakke til liste over potensielle "
+"pakker"
 
-#: ../cli.py:971
+#: ../cli.py:982
 #, python-format
 msgid "Command line error: %s"
-msgstr "Feil ved kommandolinje: %s"
+msgstr "Feil med kommandolinje: %s"
+
+#: ../cli.py:994
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: flagg %s krever et argument"
 
-#: ../cli.py:1101
+#: ../cli.py:1123
+msgid "show this help message and exit"
+msgstr "vis denne hjelpteksten og avslutt"
+
+#: ../cli.py:1127
 msgid "be tolerant of errors"
 msgstr "vær tolerant ved feil"
 
-#: ../cli.py:1103
+#: ../cli.py:1129
 msgid "run entirely from cache, don't update cache"
 msgstr "bruk kun lagrede filer ved kjøring, ikke oppdater lagrede filer"
 
-#: ../cli.py:1105
+#: ../cli.py:1131
 msgid "config file location"
 msgstr "plassering av konfigurasjonsfil"
 
-#: ../cli.py:1107
+#: ../cli.py:1133
 msgid "maximum command wait time"
 msgstr "maksimaltid for å vente på kommando"
 
-#: ../cli.py:1109
+#: ../cli.py:1135
 msgid "debugging output level"
-msgstr "mengde tilbakemelding ved avlusing"
+msgstr "nivå for tilbakemeldinger ved avlusing"
 
-#: ../cli.py:1113
+#: ../cli.py:1139
 msgid "show duplicates, in repos, in list/search commands"
-msgstr ""
+msgstr "vis duplikater i lager og i kommandoer for å liste/søke i pakker"
 
-#: ../cli.py:1115
+#: ../cli.py:1141
 msgid "error output level"
 msgstr "mengde tilbakemelding ved feil"
 
-#: ../cli.py:1118
+#: ../cli.py:1144
 msgid "quiet operation"
-msgstr "utfører med minimalt av tilbakemelding"
+msgstr "stille operasjon"
+
+#: ../cli.py:1146
+msgid "verbose operation"
+msgstr "vis ekstra informasjon"
 
-#: ../cli.py:1122
+#: ../cli.py:1148
 msgid "answer yes for all questions"
-msgstr "svar Ja til alle eventuelle spørsmål som kan oppstå"
+msgstr "svar Ja til alle spørsmål"
 
-#: ../cli.py:1124
+#: ../cli.py:1150
 msgid "show Yum version and exit"
-msgstr "vis versjon til Yum og avslutt deretter"
+msgstr "vis Yum-versjon og avslutt"
 
-#: ../cli.py:1125
+#: ../cli.py:1151
 msgid "set install root"
-msgstr "setter laveste filtre-nivå for intallering (standard er /)"
+msgstr "sett rot for installasjonen"
 
-#: ../cli.py:1129
+#: ../cli.py:1155
 msgid "enable one or more repositories (wildcards allowed)"
-msgstr "legger til en eller flere pakkeoversikter (jokertegn er tillatt)"
+msgstr "legger til et eller flere lager (jokertegn er tillatt)"
 
-#: ../cli.py:1133
+#: ../cli.py:1159
 msgid "disable one or more repositories (wildcards allowed)"
-msgstr "fjernet en eller flere pakkeoversikter (jokertegn er tillatt)"
+msgstr "slå av et eller flere lager (jokertegn er tillatt)"
 
-#: ../cli.py:1136
+#: ../cli.py:1162
 msgid "exclude package(s) by name or glob"
-msgstr "overse pakke(r) ved navn eller glob"
+msgstr "overse pakke(r) ved navn eller mønster"
 
-#: ../cli.py:1138
+#: ../cli.py:1164
 msgid "disable exclude from main, for a repo or for everything"
-msgstr "fjerner ekskludering av pakker, for en pakkeoversikt eller fullstendig"
+msgstr "fjerner ekskludering av pakker, for et lager eller alle pakker"
 
-#: ../cli.py:1141
+#: ../cli.py:1167
 msgid "enable obsoletes processing during updates"
 msgstr "ta med foreldede pakker i beregningen ved oppdatering"
 
-#: ../cli.py:1143
+#: ../cli.py:1169
 msgid "disable Yum plugins"
 msgstr "ikke bruk tillegg til Yum"
 
-#: ../cli.py:1145
+#: ../cli.py:1171
 msgid "disable gpg signature checking"
-msgstr "ikke gjennomfør sjekk av GPG-signaturer"
+msgstr "ikke sjekk GPG-signaturer"
 
-#: ../cli.py:1147
+#: ../cli.py:1173
 msgid "disable plugins by name"
-msgstr "ikke bruk tillegg til yum ved navn"
+msgstr "slå av tillegg til yum etter navn"
 
-#: ../cli.py:1150
+#: ../cli.py:1176
 msgid "skip packages with depsolving problems"
-msgstr "hoppe over pakker som har problemer med avhengigheter"
+msgstr "hopp over pakker som har problemer med avhengigheter"
 
-#: ../output.py:229
+#: ../output.py:228
 msgid "Jan"
 msgstr "jan"
 
-#: ../output.py:229
+#: ../output.py:228
 msgid "Feb"
 msgstr "feb"
 
-#: ../output.py:229
+#: ../output.py:228
 msgid "Mar"
 msgstr "mar"
 
-#: ../output.py:229
+#: ../output.py:228
 msgid "Apr"
 msgstr "apr"
 
-#: ../output.py:229
+#: ../output.py:228
 msgid "May"
 msgstr "mai"
 
-#: ../output.py:229
+#: ../output.py:228
 msgid "Jun"
 msgstr "jun"
 
-#: ../output.py:230
+#: ../output.py:229
 msgid "Jul"
 msgstr "jul"
 
-#: ../output.py:230
+#: ../output.py:229
 msgid "Aug"
 msgstr "aug"
 
-#: ../output.py:230
+#: ../output.py:229
 msgid "Sep"
 msgstr "sep"
 
-#: ../output.py:230
+#: ../output.py:229
 msgid "Oct"
 msgstr "okt"
 
-#: ../output.py:230
+#: ../output.py:229
 msgid "Nov"
 msgstr "nov"
 
-#: ../output.py:230
+#: ../output.py:229
 msgid "Dec"
 msgstr "des"
 
-#: ../output.py:240
+#: ../output.py:239
 msgid "Trying other mirror."
 msgstr "Prøver et annet speil."
 
@@ -524,25 +547,25 @@ msgstr "Beskrivelse:"
 
 #: ../output.py:351
 msgid "Is this ok [y/N]: "
-msgstr "Er dette greit [y/N]:"
+msgstr "Er dette ok [j/N]:"
 
-#: ../output.py:357 ../output.py:360
+#: ../output.py:359 ../output.py:362
 msgid "y"
-msgstr ""
+msgstr "j"
 
-#: ../output.py:357
+#: ../output.py:359
 msgid "n"
-msgstr ""
+msgstr "n"
 
-#: ../output.py:357 ../output.py:360
+#: ../output.py:359 ../output.py:362
 msgid "yes"
-msgstr ""
+msgstr "ja"
 
-#: ../output.py:357
+#: ../output.py:359
 msgid "no"
-msgstr ""
+msgstr "nei"
 
-#: ../output.py:367
+#: ../output.py:370
 #, python-format
 msgid ""
 "\n"
@@ -551,96 +574,96 @@ msgstr ""
 "\n"
 "Gruppe:%s"
 
-#: ../output.py:369
+#: ../output.py:372
 #, python-format
 msgid " Description: %s"
 msgstr " Beskrivelse: %s"
 
-#: ../output.py:371
+#: ../output.py:374
 msgid " Mandatory Packages:"
 msgstr "Obligatoriske pakker:"
 
-#: ../output.py:376
+#: ../output.py:379
 msgid " Default Packages:"
 msgstr "Standard pakker:"
 
-#: ../output.py:381
+#: ../output.py:384
 msgid " Optional Packages:"
 msgstr "Valgfrie pakker:"
 
-#: ../output.py:386
+#: ../output.py:389
 msgid " Conditional Packages:"
 msgstr "Betingede pakker:"
 
-#: ../output.py:394
+#: ../output.py:398
 #, python-format
 msgid "package: %s"
 msgstr "pakke: %s"
 
-#: ../output.py:396
+#: ../output.py:400
 msgid "  No dependencies for this package"
 msgstr " Ingen avhengigheter for denne pakka"
 
-#: ../output.py:401
+#: ../output.py:405
 #, python-format
 msgid "  dependency: %s"
 msgstr " avhengighet: %s"
 
-#: ../output.py:403
+#: ../output.py:407
 msgid "   Unsatisfied dependency"
 msgstr " avhengighet som ikke kunne tilfredstilles"
 
-#: ../output.py:461
+#: ../output.py:465
 msgid "Matched from:"
 msgstr "Treff fra:"
 
-#: ../output.py:487
+#: ../output.py:491
 msgid "There was an error calculating total download size"
 msgstr "Kunne ikke finne ut størrelse på det som skal hentes ned"
 
-#: ../output.py:492
+#: ../output.py:496
 #, python-format
 msgid "Total size: %s"
 msgstr "Totale størrelse: %s"
 
-#: ../output.py:495
+#: ../output.py:499
 #, python-format
 msgid "Total download size: %s"
 msgstr "Totale størrelse på pakker som hentes: %s"
 
-#: ../output.py:507
+#: ../output.py:511
 msgid "Package"
 msgstr "Pakke"
 
-#: ../output.py:507
+#: ../output.py:511
 msgid "Arch"
 msgstr "Arkitektur"
 
-#: ../output.py:507
+#: ../output.py:511
 msgid "Version"
 msgstr "Versjon"
 
-#: ../output.py:507
+#: ../output.py:511
 msgid "Repository"
 msgstr "Pakkeoversikt"
 
-#: ../output.py:507
+#: ../output.py:511
 msgid "Size"
 msgstr "Størrelse"
 
-#: ../output.py:514
+#: ../output.py:518
 msgid "Installing for dependencies"
 msgstr "Legges inn på grunn avhengigheter"
 
-#: ../output.py:515
+#: ../output.py:519
 msgid "Updating for dependencies"
 msgstr "Oppdateres på grunn avhengigheter"
 
-#: ../output.py:516
+#: ../output.py:520
 msgid "Removing for dependencies"
 msgstr "Fjernes på grunn avhengigheter"
 
-#: ../output.py:528
+#: ../output.py:532
 #, python-format
 msgid ""
 "     replacing  %s.%s %s\n"
@@ -649,7 +672,7 @@ msgstr ""
 "     erstatter   %s.%s %s\"\n"
 "\n"
 
-#: ../output.py:536
+#: ../output.py:540
 #, python-format
 msgid ""
 "\n"
@@ -666,27 +689,27 @@ msgstr ""
 "Oppdaterer %5.5s pakker\n"
 "Fjerner    %5.5s pakker\n"
 
-#: ../output.py:554
+#: ../output.py:558
 msgid "Removed"
 msgstr "Fjernet"
 
-#: ../output.py:555
+#: ../output.py:559
 msgid "Dependency Removed"
 msgstr "Fjernet på grunn avhengighet"
 
-#: ../output.py:557
+#: ../output.py:561
 msgid "Dependency Installed"
 msgstr "Lagt inn på grunn av avhengighet"
 
-#: ../output.py:559
+#: ../output.py:563
 msgid "Dependency Updated"
 msgstr "Oppdatert på grunn avhengighet"
 
-#: ../output.py:560
+#: ../output.py:564
 msgid "Replaced"
 msgstr "Erstattet"
 
-#: ../output.py:618
+#: ../output.py:622
 #, python-format
 msgid ""
 "\n"
@@ -697,72 +720,72 @@ msgstr ""
 " Pågående nedlastning er avbrutt, %s avbryt (ved å trykke Ctrl-C) %s ganger "
 "til innen %s%s%s sekunder for å avslutte helt.\n"
 
-#: ../output.py:628
+#: ../output.py:632
 msgid "user interrupt"
-msgstr "avbryt av bruker"
+msgstr "avbrutt av bruker"
 
-#: ../output.py:639
+#: ../output.py:643
 msgid "installed"
 msgstr "lagt inn"
 
-#: ../output.py:640
+#: ../output.py:644
 msgid "updated"
 msgstr "oppdatert"
 
-#: ../output.py:641
+#: ../output.py:645
 msgid "obsoleted"
 msgstr "foreldet"
 
-#: ../output.py:642
+#: ../output.py:646
 msgid "erased"
 msgstr "fjernet"
 
-#: ../output.py:646
+#: ../output.py:650
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> pakke %s.%s %s:%s-%s er satt til %s"
 
-#: ../output.py:653
+#: ../output.py:657
 msgid "--> Running transaction check"
 msgstr "--> Utfører sjekk av transaksjonen"
 
-#: ../output.py:658
+#: ../output.py:662
 msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Starter løsning av avhengigheter på nytt"
+msgstr "--> Starter løsing av avhengigheter på nytt med endringer"
 
-#: ../output.py:663
+#: ../output.py:667
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Alle avhengigheter er løst"
 
-#: ../output.py:668
+#: ../output.py:672
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Beregner avhengighet: %s for pakke: %s"
 
-#: ../output.py:673
+#: ../output.py:677
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Avhengigheter som ikke kunne bli tilfredstilt: %s"
 
-#: ../output.py:679
+#: ../output.py:683
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Beregner konflikter: %s er i konflikt med %s"
 
-#: ../output.py:682
+#: ../output.py:686
 msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> Fyller transaksjonen med valgt pakker. Vennligst vent."
+msgstr "--> Fyller transaksjonen med valgte pakker. Vennligst vent."
 
-#: ../output.py:686
+#: ../output.py:690
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Henter ned filhode for pakke %s for å fylle transaksjonen."
 
-#: ../yumcommands.py:36
+#: ../yumcommands.py:37
 msgid "You need to be root to perform this command."
 msgstr "Du må være rootbruker for å utføre denne kommandoen."
 
-#: ../yumcommands.py:43
+#: ../yumcommands.py:44
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -780,261 +803,277 @@ msgid ""
 "For more information contact your distribution or package provider.\n"
 msgstr ""
 "\n"
-"Du har valgt og sjekk pakkene ved hjelp av GPG-nøkler. Det er fornufting.\n"
+"Du har valgt å sjekke pakkene ved hjelp av GPG-nøkler. Det er fornuftig.\n"
 "Du har imidlertid ingen offentlige GPG-nøkler installert\n"
-"Du må hente ned og legge inn nøklene. Du kan legge de inn med kommandoen:\n"
+"Du må hente ned og legge inn nøklene. Du kan legge dem inn med kommandoen:\n"
 "\n"
 "  rpm --import public.gpg.key\n"
 "\n"
-"Et annet og bedre alternativ er og oppgi URL til de nøklene du vil bruke.\n"
-"Bruk opsjonen 'gpgkey' for hver pakkeoversikt for å ta dette i bruk.\n"
-"\n"
+"Et annet og bedre alternativ er å oppgi URL til de nøklene du vil bruke.\n"
+"Bruk opsjonen 'gpgkey' for hvert lager for å ta dette i bruk.\n"
 "\n"
+"Kontakt din distribusjon eller pakkeansvarlig for mer informasjon.\n"
 
-#: ../yumcommands.py:63
+#: ../yumcommands.py:64
 #, python-format
 msgid "Error: Need to pass a list of pkgs to %s"
-msgstr "Feil: du må oppgi ei liste over pakker som skal %s"
+msgstr "Feil: du må oppgi en liste med pakker som skal %s"
 
-#: ../yumcommands.py:69
+#: ../yumcommands.py:70
 msgid "Error: Need an item to match"
-msgstr "Feil: trenger noe og sammenligne med"
+msgstr "Feil: trenger noe å sammenligne med"
 
-#: ../yumcommands.py:75
+#: ../yumcommands.py:76
 msgid "Error: Need a group or list of groups"
-msgstr "Feil: trenger ei gruppe eller ei liste med grupper"
+msgstr "Feil: trenger en gruppe eller en liste med grupper"
 
-#: ../yumcommands.py:84
+#: ../yumcommands.py:85
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "Feil: clean trenger minst et argument: %s"
 
-#: ../yumcommands.py:89
+#: ../yumcommands.py:90
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "Feil: ugyldig argument gitt til kommandoen clean: %r"
 
-#: ../yumcommands.py:102
+#: ../yumcommands.py:103
 msgid "No argument to shell"
 msgstr "Ingen argumenter ble gitt til kommandoen shell"
 
-#: ../yumcommands.py:105
+#: ../yumcommands.py:106
 #, python-format
 msgid "Filename passed to shell: %s"
-msgstr "Følgende filnavn ble som argument til shell: %s"
+msgstr "Følgende filnavn ble sendt til skallet: %s"
 
-#: ../yumcommands.py:109
+#: ../yumcommands.py:110
 #, python-format
 msgid "File %s given as argument to shell does not exist."
 msgstr ""
 "Filen %s som ble gitt som argument til kommandoen shell eksisterer ikke."
 
-#: ../yumcommands.py:115
+#: ../yumcommands.py:116
 msgid "Error: more than one file given as argument to shell."
-msgstr "Feil: mer enn ei fil ble gitt som argument til kommandoen shell."
+msgstr "Feil: mer enn en fil ble gitt som argument til kommandoen shell."
 
-#: ../yumcommands.py:156
+#: ../yumcommands.py:157
 msgid "PACKAGE..."
-msgstr "Pakke..."
+msgstr "PAKKE..."
 
-#: ../yumcommands.py:159
+#: ../yumcommands.py:160
 msgid "Install a package or packages on your system"
-msgstr "Legger inn pakke(r) på ditt system"
+msgstr "Legg inn en eller flere pakker på systemet"
 
-#: ../yumcommands.py:168
+#: ../yumcommands.py:169
 msgid "Setting up Install Process"
 msgstr "Forberedelser for installasjon"
 
-#: ../yumcommands.py:179
+#: ../yumcommands.py:180
 msgid "[PACKAGE...]"
-msgstr "[Pakke...}"
+msgstr "[PAKKE...]"
 
-#: ../yumcommands.py:182
+#: ../yumcommands.py:183
 msgid "Update a package or packages on your system"
-msgstr "Oppdaterer pakke(r) på ditt system"
+msgstr "Oppdater en eller flere pakker på systemet"
 
-#: ../yumcommands.py:190
+#: ../yumcommands.py:191
 msgid "Setting up Update Process"
 msgstr "Forberedelser for oppdatering"
 
-#: ../yumcommands.py:204
+#: ../yumcommands.py:205
 msgid "Display details about a package or group of packages"
 msgstr "Viser detaljer om en pakke eller en gruppe av grupper"
 
-#: ../yumcommands.py:212
+#: ../yumcommands.py:213
 msgid "Installed Packages"
 msgstr "Pakker som er installert"
 
-#: ../yumcommands.py:213
+#: ../yumcommands.py:214
 msgid "Available Packages"
-msgstr "Tilgjengelig pakker"
+msgstr "Tilgjengelige pakker"
 
-#: ../yumcommands.py:214
+#: ../yumcommands.py:215
 msgid "Extra Packages"
 msgstr "Tilleggspakker"
 
-#: ../yumcommands.py:215
+#: ../yumcommands.py:216
 msgid "Updated Packages"
 msgstr "Oppdaterte pakker"
 
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:222 ../yumcommands.py:228
 msgid "Obsoleting Packages"
 msgstr "Utdaterte pakker"
 
-#: ../yumcommands.py:226
+#: ../yumcommands.py:229
 msgid "Recently Added Packages"
-msgstr "Pakker som nylig er blitt lagt til"
+msgstr "Pakker som nylig er lagt til"
 
-#: ../yumcommands.py:232
+#: ../yumcommands.py:235
 msgid "No matching Packages to list"
-msgstr "Ingen passende pakker og liste opp"
+msgstr "Ingen passende pakker å liste opp"
 
-#: ../yumcommands.py:246
+#: ../yumcommands.py:249
 msgid "List a package or groups of packages"
-msgstr "Lag en liste over pakker eller gruppe av pakker"
+msgstr "Lag en liste med pakker eller grupper av pakker"
 
-#: ../yumcommands.py:258
+#: ../yumcommands.py:261
 msgid "Remove a package or packages from your system"
-msgstr "Fjerner pakke(r) fra ditt system"
+msgstr "Fjern en eller flere pakker fra systemet"
 
-#: ../yumcommands.py:266
+#: ../yumcommands.py:269
 msgid "Setting up Remove Process"
 msgstr "Klargjør for fjerning av pakker"
 
-#: ../yumcommands.py:278
+#: ../yumcommands.py:281
 msgid "Setting up Group Process"
-msgstr "Klargjør grupper av pakker"
+msgstr "Klargjør grupper med pakker"
 
-#: ../yumcommands.py:284
+#: ../yumcommands.py:287
 msgid "No Groups on which to run command"
-msgstr "Ingen gruppe er valgt for aktuelle kommando"
+msgstr "Ingen gruppe er valgt for aktuell kommando"
 
-#: ../yumcommands.py:297
+#: ../yumcommands.py:300
 msgid "List available package groups"
-msgstr "Lag liste over tilgjengelig grupper"
+msgstr "Lag liste over tilgjengelige pakkegrupper"
 
-#: ../yumcommands.py:314
+#: ../yumcommands.py:317
 msgid "Install the packages in a group on your system"
-msgstr "Legger inn pakkene i gruppe av pakker"
+msgstr "Legger inn pakkene i en gruppe på systemet"
 
-#: ../yumcommands.py:336
+#: ../yumcommands.py:339
 msgid "Remove the packages in a group from your system"
-msgstr "Fjerner alle pakkene i en gruppe av pakker"
+msgstr "Fjern pakkene i en gruppe fra systemet"
 
-#: ../yumcommands.py:360
+#: ../yumcommands.py:363
 msgid "Display details about a package group"
 msgstr "Viser detaljer om en gruppe av pakker"
 
-#: ../yumcommands.py:384
+#: ../yumcommands.py:387
 msgid "Generate the metadata cache"
-msgstr "Generer mellomlager av metadata"
+msgstr "Lag mellomlager med metadata"
 
-#: ../yumcommands.py:390
+#: ../yumcommands.py:393
 msgid "Making cache files for all metadata files."
 msgstr "Lager mellomlager for samtlige filer med metadata."
 
-#: ../yumcommands.py:391
+#: ../yumcommands.py:394
 msgid "This may take a while depending on the speed of this computer"
-msgstr "Dette kan ei stund alt ettersom hvor rask din maskin er"
+msgstr "Dette kan en stund avhengig av hvor rask datamaskinen er"
 
-#: ../yumcommands.py:412
+#: ../yumcommands.py:415
 msgid "Metadata Cache Created"
 msgstr "Mellomlager er ferdig lagd"
 
-#: ../yumcommands.py:426
+#: ../yumcommands.py:429
 msgid "Remove cached data"
 msgstr "Fjern mellomlager med metadata"
 
-#: ../yumcommands.py:447
+#: ../yumcommands.py:450
 msgid "Find what package provides the given value"
-msgstr "Finn hvilken pakke som tilbyr den søkte verdi"
+msgstr "Finn hvilken pakke som inneholder etterspurt verdi"
 
-#: ../yumcommands.py:467
+#: ../yumcommands.py:470
 msgid "Check for available package updates"
-msgstr "Sjekker om det oppdatering tilgjengelig for gruppene av pakker"
+msgstr "Se etter tilgjengelige pakkeoppdateringer"
 
-#: ../yumcommands.py:490
+#: ../yumcommands.py:493
 msgid "Search package details for the given string"
-msgstr "Søker etter detaljer om pakke utenifra den aktuelle strengen"
+msgstr "Søker etter oppgitt streng i pakkedetaljene"
 
-#: ../yumcommands.py:496
+#: ../yumcommands.py:499
 msgid "Searching Packages: "
-msgstr "Søker etter pakker: "
+msgstr "Søker i pakker: "
 
-#: ../yumcommands.py:513
+#: ../yumcommands.py:516
 msgid "Update packages taking obsoletes into account"
-msgstr "Oppdatering pakker og tar samtidig hensyn til pakker som er utdatert"
+msgstr "Oppdater pakker og ta hensyn til pakker som blir utdatert"
 
-#: ../yumcommands.py:522
+#: ../yumcommands.py:525
 msgid "Setting up Upgrade Process"
 msgstr "Klargjør for oppdatering"
 
-#: ../yumcommands.py:536
+#: ../yumcommands.py:539
 msgid "Install a local RPM"
 msgstr "Legger inn en RPM fra filsystemet"
 
-#: ../yumcommands.py:545
+#: ../yumcommands.py:548
 msgid "Setting up Local Package Process"
 msgstr "Klargjøring for pakker på lokalt filsystem"
 
-#: ../yumcommands.py:564
+#: ../yumcommands.py:567
 msgid "Determine which package provides the given dependency"
 msgstr "Finner hvilken pakke som tilbyr den gitte avhengigheten"
 
-#: ../yumcommands.py:567
+#: ../yumcommands.py:570
 msgid "Searching Packages for Dependency:"
-msgstr "Søker etter pakker med avhengighet:"
+msgstr "Søker i pakker etter avhengighet:"
 
-#: ../yumcommands.py:581
+#: ../yumcommands.py:584
 msgid "Run an interactive yum shell"
 msgstr "Kjører det interaktive Yum-skallet"
 
-#: ../yumcommands.py:587
+#: ../yumcommands.py:590
 msgid "Setting up Yum Shell"
 msgstr "Klargjør Yum-skallet"
 
-#: ../yumcommands.py:605
+#: ../yumcommands.py:608
 msgid "List a package's dependencies"
-msgstr "Lister opp avhengighetene til pakka"
+msgstr "Vis avhengigheter for en pakke"
 
-#: ../yumcommands.py:611
+#: ../yumcommands.py:614
 msgid "Finding dependencies: "
 msgstr "Finner avhengigheter: "
 
-#: ../yumcommands.py:627
+#: ../yumcommands.py:630
 msgid "Display the configured software repositories"
 msgstr "Viser de pakkeoversiktene som er satt opp"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:666
+msgid "enabled"
+msgstr "aktiv"
+
+#: ../yumcommands.py:673
+msgid "disabled"
+msgstr "inaktiv"
+
+#: ../yumcommands.py:682
 msgid "repo id"
 msgstr "id"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:683
 msgid "repo name"
 msgstr "navn"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:683
 msgid "status"
 msgstr "status"
 
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "aktiv"
+#: ../yumcommands.py:686
+msgid "Repo-id     : "
+msgstr "ID for lager: "
 
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "inaktiv"
+#: ../yumcommands.py:687
+msgid "Repo-name   : "
+msgstr "Navn på lager : "
+
+#: ../yumcommands.py:688
+msgid "Repo-enabled: "
+msgstr "Lager aktivt: "
+
+#: ../yumcommands.py:689
+msgid "Repo-size   : "
+msgstr "Størrelse på lager : "
 
-#: ../yumcommands.py:671
+#: ../yumcommands.py:713
 msgid "Display a helpful usage message"
 msgstr "Viser en hjelpetekst"
 
-#: ../yumcommands.py:705
+#: ../yumcommands.py:747
 #, python-format
 msgid "No help available for %s"
 msgstr "Ingen hjelp er tilgjengelig for %s"
 
-#: ../yumcommands.py:710
+#: ../yumcommands.py:752
 msgid ""
 "\n"
 "\n"
@@ -1042,9 +1081,9 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"aliaser:"
+"alias:"
 
-#: ../yumcommands.py:712
+#: ../yumcommands.py:754
 msgid ""
 "\n"
 "\n"
@@ -1054,15 +1093,15 @@ msgstr ""
 "\n"
 "alias:"
 
-#: ../yumcommands.py:741
+#: ../yumcommands.py:783
 msgid "Setting up Reinstall Process"
 msgstr "Klargjør for å legge inn pakke(r) på nytt"
 
-#: ../yumcommands.py:755
+#: ../yumcommands.py:797
 msgid "reinstall a package"
-msgstr "Legger inn en pakke på nytt"
+msgstr "legg inn en pakke på nytt"
 
-#: ../yummain.py:41
+#: ../yummain.py:55
 msgid ""
 "\n"
 "\n"
@@ -1072,7 +1111,7 @@ msgstr ""
 "\n"
 "Avslutter etter ønske"
 
-#: ../yummain.py:47
+#: ../yummain.py:61
 msgid ""
 "\n"
 "\n"
@@ -1080,42 +1119,42 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"Avslutter på grunn ødelagt programrør"
+"Avslutter på grunn av brutt rør"
 
-#: ../yummain.py:105
+#: ../yummain.py:112
 msgid ""
 "Another app is currently holding the yum lock; waiting for it to exit..."
 msgstr ""
 "Et annet program holder en fillås for Yum, venter til fillåsen frigjøres..."
 
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:139 ../yummain.py:178
 #, python-format
 msgid "Error: %s"
 msgstr "Feil: %s"
 
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:149 ../yummain.py:185
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "Ukjent feil: feilkode: %d"
+msgstr "Ukjent feil: feilkode: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:156
 msgid "Resolving Dependencies"
-msgstr "Løser opp i avhengigheter"
+msgstr "Løser avhengigheter"
 
-#: ../yummain.py:184
+#: ../yummain.py:191
 msgid ""
 "\n"
 "Dependencies Resolved"
 msgstr ""
 "\n"
-"Alle avhengigheter er oppløst"
+"Alle avhengigheter er løst"
 
-#: ../yummain.py:198
+#: ../yummain.py:205
 msgid "Complete!"
 msgstr "Ferdig!"
 
-#: ../yummain.py:245
+#: ../yummain.py:252
 msgid ""
 "\n"
 "\n"
@@ -1125,319 +1164,258 @@ msgstr ""
 "\n"
 "Avslutter etter ønske"
 
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:78
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/depsolve.py:95
+#: ../yum/depsolve.py:91
 msgid "Setting up TransactionSets before config class is up"
 msgstr "Setter opp transaksjons-sett før config klassen er klar"
 
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:132
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "Ugyldig tsflag in konfigurasjonsfil: %s"
 
-#: ../yum/depsolve.py:147
-#, python-format
-msgid "Searching pkgSack for dep: %s"
-msgstr "Søker i pkgSack etter avhengighet: %s"
-
-#: ../yum/depsolve.py:170
-#, python-format
-msgid "Potential match for %s from %s"
-msgstr "Potensielt treff for %s i %s"
-
-#: ../yum/depsolve.py:178
-#, python-format
-msgid "Matched %s to require for %s"
-msgstr "Passende %s for å tilfredstille %s"
-
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:176
 #, python-format
 msgid "Member: %s"
 msgstr "Medlem: %s"
 
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:190 ../yum/depsolve.py:592
 #, python-format
 msgid "%s converted to install"
 msgstr "%s ble omdannet til installering"
 
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:197
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "Legger til pakke %s in modus %s"
 
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:207
 #, python-format
 msgid "Removing Package %s"
 msgstr "Fjerner pakke %s"
 
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:218
 #, python-format
 msgid "%s requires: %s"
-msgstr "%s avhenger av: %s"
-
-#: ../yum/depsolve.py:312
-msgid "Needed Require has already been looked up, cheating"
-msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
+msgstr "%s krever: %s"
 
-#: ../yum/depsolve.py:322
-#, python-format
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
-
-#: ../yum/depsolve.py:329
-#, python-format
-msgid "Potential Provider: %s"
-msgstr "Potensiell tilbyder: %s"
-
-#: ../yum/depsolve.py:352
-#, python-format
-msgid "Mode is %s for provider of %s: %s"
-msgstr "Modus er %s for tilbyder av %s: %s"
-
-#: ../yum/depsolve.py:356
-#, python-format
-msgid "Mode for pkg providing %s: %s"
-msgstr "Modus for pakke som tilbyr %s: %s"
-
-#: ../yum/depsolve.py:360
-#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
-
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:273
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr "TSINFO: Bytter ut %s med %s for å løse opp i avhengighet."
 
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:276
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: Oppdaterer %s for å løse opp i avhengighet."
 
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:279
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Kunne ikke finne måte å oppdatere sti for avhengighet: %s."
 
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:283
 #, python-format
-msgid "Unresolvable requirement %s for %s"
-msgstr "Avhengighet %s kan ikke løses opp: %s"
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
 
 #. is it already installed?
-#: ../yum/depsolve.py:434
+#: ../yum/depsolve.py:329
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr "%s tilbyr pakker, men er allerede installert, fjerner denne."
 
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:344
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
-msgstr ""
-"Pakke %s som potensielt tilbyder løsning har allerede nyere instans in ts."
+msgstr "Pakke %s som potensielt løser opp avhengighet har nyere instans in ts."
 
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:355
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "Pakke %s som potensielt løser opp avhengighet er allerde installert."
 
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:363 ../yum/depsolve.py:410
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Uløst avhengighet: %s trengs av pakke %s"
 
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:376
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s er allerde i ts, hopper over denne"
 
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:420
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Setter opp %s som oppdatering av %s"
 
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:427
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: Setter opp %s som pakke for installering av %s"
 
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:518 ../yum/depsolve.py:610
 msgid "Success - empty transaction"
-msgstr "Suksess- transaksjonen er tom"
+msgstr "Suksess - transaksjonen er tom"
 
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:562 ../yum/depsolve.py:582
 msgid "Restarting Loop"
 msgstr "Starter sløyfe på nytt"
 
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:598
 msgid "Dependency Process ending"
 msgstr "Beregning av avhengighet avsluttes"
 
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:604
 #, python-format
 msgid "%s from %s has depsolving problems"
-msgstr "%s to %s har problemer med avhengigheter"
+msgstr "%s fra %s har problemer med avhengigheter"
 
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:611
 msgid "Success - deps resolved"
 msgstr "Suksess - alle avhengigheter er tilfredstilt"
 
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:625
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Sjekker avhengigheter for %s"
 
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:687
 #, python-format
 msgid "looking for %s as a requirement of %s"
-msgstr "leter etter %s som en nødvendighet fra %s"
-
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr ""
+msgstr "leter etter %s som kreves av %s"
 
-#: ../yum/depsolve.py:937
+#: ../yum/depsolve.py:814
 #, python-format
-msgid "Same: best %s == po: %s"
-msgstr ""
-
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
-#, python-format
-msgid "best %s obsoletes po: %s"
-msgstr ""
+msgid "Running compare_providers() for %s"
+msgstr "Kjører compare_providers() for %s"
 
-#: ../yum/depsolve.py:955
+#: ../yum/depsolve.py:842 ../yum/depsolve.py:848
 #, python-format
-msgid "po %s obsoletes best: %s"
-msgstr ""
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
-#, fuzzy, python-format
 msgid "better arch in po %s"
-msgstr "søker etter pakke %s"
+msgstr "bedre arch i po %s"
 
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:887
 #, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr ""
+msgid "%s obsoletes %s"
+msgstr "%s faser ut %s"
 
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:898
 #, python-format
-msgid "best %s shares a sourcerpm with %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+"  Winner: %s"
 msgstr ""
+"archdist sammenlignet %s med %s på %s\n"
+" Vinner: %s"
 
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:905
 #, python-format
-msgid "po %s shares more of the name prefix with %s"
+msgid "common sourcerpm %s and %s"
 msgstr ""
 
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:911
 #, python-format
-msgid "po %s has a shorter name than best %s"
+msgid "common prefix of %s between %s and %s"
 msgstr ""
 
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:919
 #, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr ""
+msgid "Best Order: %s"
+msgstr "Beste rekkefølge: %s"
 
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:148
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:296
+#. FIXME: Use critical? or exception?
+#: ../yum/__init__.py:323
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
-msgstr "Pakkeoversikt %r har intet navn i konfigurasjonsfilen(e), bruker id"
+msgstr "Pakkelager %r mangler navn i konfigurasjonsfilen(e), bruker id"
 
-#: ../yum/__init__.py:332
+#: ../yum/__init__.py:359
 msgid "plugins already initialised"
-msgstr "tillegg til yum er allerede satt opp"
+msgstr "tillegg til yum er allerede initiert"
 
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:366
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:349
+#: ../yum/__init__.py:376
 msgid "Reading Local RPMDB"
-msgstr "Leser inn lokale RPM-database"
+msgstr "Leser inn lokal RPM-database"
 
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:394
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum\n"
 
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:414
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() vil forsvinne i en kommende utgave av Yum\n"
 
-#: ../yum/__init__.py:404
+#: ../yum/__init__.py:431
 msgid "Setting up Package Sacks"
 msgstr "Lager sekker med pakker"
 
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:474
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
-msgstr "objekt for pakkesoversikt %s mangler metoden _resetSack\n"
+msgstr "objekt for pakkelager %s mangler metoden _resetSack\n"
 
-#: ../yum/__init__.py:448
+#: ../yum/__init__.py:475
 msgid "therefore this repo cannot be reset.\n"
-msgstr "derfor kan ikke denne pakkeoversikten bli nullstilt\n"
+msgstr "derfor kan ikke denne pakkeoversikten nullstilles\n"
 
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:480
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:465
+#: ../yum/__init__.py:492
 msgid "Building updates object"
-msgstr "Bygger opp oppdateringobject"
+msgstr "Bygger opp oppdateringsobjekt"
 
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:523
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:520
+#: ../yum/__init__.py:547
 msgid "Getting group metadata"
-msgstr "Henter metadata om grupper"
+msgstr "Henter metadata for grupper"
 
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:572
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Legger til gruppefil fra pakkeoversikt: %s"
 
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:577
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
-msgstr "Kunne ike legge til gruppefil for pakkeoversikt: %s - %s"
+msgstr "Kunne ikke legge til gruppefil for pakkeoversikt: %s - %s"
 
-#: ../yum/__init__.py:561
+#: ../yum/__init__.py:583
 msgid "No Groups Available in any repository"
-msgstr "Ingen grupper overhode tilgjengelig"
+msgstr "Ingen grupper tilgjengelig fra noen lagre"
 
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:633
 msgid "Importing additional filelist information"
-msgstr "Henter ytterligere informasjon om fil-lister"
+msgstr "Henter mer informasjon om fil-lister"
 
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:684
 #, python-format
 msgid "Skip-broken round %i"
-msgstr "Runde %i på grunn av ødelagte avhengigheter."
+msgstr "Runde %i for å hoppe over feil avhengighet"
 
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:707
 #, python-format
 msgid "Skip-broken took %i rounds "
-msgstr "På grunn ødelagte avhengigheter ble det gjennomført %i runder "
+msgstr "På grunn feil i avhengigheter ble det gjennomført %i runder "
 
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:708
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1445,157 +1423,161 @@ msgstr ""
 "\n"
 "Pakker som ble oversett på grunn av problemer med avhengigheter:"
 
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:712
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s fra %s"
 
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:792
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+
+#: ../yum/__init__.py:807
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Kunne ikke fjerne transaksjonsfil %s"
 
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:847
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "ekskluderer på grunn av kostnad: %s fra %s"
 
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:878
 msgid "Excluding Packages in global exclude list"
-msgstr "Ekskluderer pakker som er i global liste av ekskluderte pakker"
+msgstr "Ekskluderer pakker som er i global liste med ekskluderte pakker"
 
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:880
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "Ekskluderer pakker fra %s"
 
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:906
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Reduserer %s til kun inkluderte pakker"
 
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:911
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Tar vare på inkludert pakke %s"
 
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:917
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Fjerner upassende pakke: %s"
 
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:920
 msgid "Finished"
 msgstr "Ferdig"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:950
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "Kunne ikke sjekke om PID %s er aktiv"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:923
+#: ../yum/__init__.py:954
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
-msgstr ""
-"Det fins allerede en låsefil: %s, en annen Yum kjører med PID %s allerede."
+msgstr "Det fins allerede en låsfil %s: en annen Yum kjører med PID %s."
 
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1017
 msgid "Package does not match intended download"
 msgstr "Det er forskjell mellom nedlastet og forventet størrelse"
 
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1032
 msgid "Could not perform checksum"
-msgstr "Kunne ikke beregne tverrsum"
+msgstr "Kunne ikke beregne sjekksum"
 
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1035
 msgid "Package does not match checksum"
-msgstr "Pakka har ikke korrekt tverrsum"
+msgstr "Pakken har ikke korrekt sjekksum"
 
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1079
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
-msgstr "tverrsummen til pakka er feil, men mellomlagring er satt på for %s"
+msgstr "sjekksummen til pakken er feil, men mellomlagring er satt på for %s"
 
-#: ../yum/__init__.py:1042
+#: ../yum/__init__.py:1082
 #, python-format
 msgid "using local copy of %s"
-msgstr "bruker lokal kop av %s"
+msgstr "bruker lokal kopi av %s"
 
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1107
 #, python-format
 msgid "Insufficient space in download directory %s to download"
 msgstr "Det er ikke nok ledig plass i katalogen %s hvor pakkene blir lagret"
 
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1140
 msgid "Header is not complete."
-msgstr "Filhode er ikke komplett."
+msgstr "Filhode er ikke fullstendig."
 
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1180
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
 msgstr ""
-"Filhode er ikke tilgjengelig lokalt og i vi er mellomlager-modes. Kan ikke "
-"hente ned %s"
+"Filhode er ikke tilgjengelig lokalt og mellomlager-modus er aktivert Kan "
+"ikke hente ned %s"
 
-#: ../yum/__init__.py:1189
+#: ../yum/__init__.py:1235
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Offentlig nøkkel for %s er ikke lagt inn"
 
-#: ../yum/__init__.py:1193
+#: ../yum/__init__.py:1239
 #, python-format
 msgid "Problem opening package %s"
-msgstr "Kunne ved åpning av pakke %s"
+msgstr "Problem ved åpning av pakke %s"
 
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1247
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Offentlig nøkkel %s er ikke til å stole på"
 
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1251
 #, python-format
 msgid "Package %s is not signed"
-msgstr "Pakka %s er ikke signert"
+msgstr "Pakken %s er ikke signert"
 
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1289
 #, python-format
 msgid "Cannot remove %s"
-msgstr "Kunne ikke fjern %s"
+msgstr "Kan ikke fjerne %s"
 
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1292
 #, python-format
 msgid "%s removed"
 msgstr "%s fjernet"
 
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1328
 #, python-format
 msgid "Cannot remove %s file %s"
-msgstr "Kan ikke fjerne %s fra fila %s"
+msgstr "Kan ikke fjerne %s fra fil %s"
 
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1331
 #, python-format
 msgid "%s file %s removed"
-msgstr "%s fila %s er fjernet"
+msgstr "%s fil %s er fjernet"
 
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1333
 #, python-format
 msgid "%d %s files removed"
-msgstr "%d %s filer er fjernet"
+msgstr "%d %s filer fjernet"
 
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1386
 #, python-format
 msgid "More than one identical match in sack for %s"
-msgstr "Mer enn en identisk passende treff i sekken %s"
+msgstr "Mer enn ett identisk passende treff i sekken %s"
 
-#: ../yum/__init__.py:1335
+#: ../yum/__init__.py:1391
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Ingenting passer %s.%s %s:%s-%s fra oppdatering"
 
-#: ../yum/__init__.py:1543
+#: ../yum/__init__.py:1585
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
@@ -1603,140 +1585,165 @@ msgstr ""
 "searchPackages() vil forsvinne i en kommende utgave av Yum.\n"
 "Bruk heller searchGenerator()\n"
 
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1621
 #, python-format
 msgid "Searching %d packages"
 msgstr "Søker etter %d pakker"
 
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1624
 #, python-format
 msgid "searching package %s"
 msgstr "søker etter pakke %s"
 
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1635
 msgid "searching in file entries"
 msgstr "søker i filoversikt"
 
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1641
 msgid "searching in provides entries"
-msgstr "søker i oppføringer av tilbydere"
+msgstr "søker i oppføringer av tilbud"
 
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1671
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Tilbyder-treff: %s"
 
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1717
+msgid "No group data available for configured repositories"
+msgstr "Ingen gruppedata tilgjengelig for konfigurerte pakkelager"
+
+#: ../yum/__init__.py:1743 ../yum/__init__.py:1762 ../yum/__init__.py:1788
+#: ../yum/__init__.py:1794 ../yum/__init__.py:1850 ../yum/__init__.py:1854
 #, python-format
 msgid "No Group named %s exists"
-msgstr "Ikke gruppe med navn %s er tilgjengelig"
+msgstr "Det eksisterer ingen gruppe med navn %s "
 
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1773 ../yum/__init__.py:1866
 #, python-format
 msgid "package %s was not marked in group %s"
-msgstr "pakka %s var ikke med i gruppa %s"
+msgstr "pakke %s var ikke med i gruppe %s"
 
-#: ../yum/__init__.py:1770
+#: ../yum/__init__.py:1811
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Legger til pakke %s fra gruppe %s"
 
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1816
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Ingen pakke med navn %s er tilgjendelig for installering"
 
-#: ../yum/__init__.py:1849
+#: ../yum/__init__.py:1891
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Pakke tuppel %s ble ikke funnet i sekken med pakker"
 
-#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:1959 ../yum/__init__.py:1999
 msgid "Invalid versioned dependency string, try quoting it."
 msgstr ""
-"Den versjonerte strengen med avhengigheter er ugyldig, prøv og sette den i "
+"Den versjonerte strengen med avhengigheter er ugyldig, prøv å sette den i "
 "anførelsestegn."
 
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:1961 ../yum/__init__.py:2001
 msgid "Invalid version flag"
 msgstr "Ugyldig versjonsflagg"
 
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:1973 ../yum/__init__.py:1977
 #, python-format
 msgid "No Package found for %s"
 msgstr "Ingen pakke for %s er funnet"
 
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2105
 msgid "Package Object was not a package object instance"
-msgstr "Pakkeobjekt var ikke en pakkeobjekt instans"
+msgstr "Pakkeobjekt var ikke en pakkeobjektinstans"
 
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2109
 msgid "Nothing specified to install"
-msgstr "Det ble ikke bedt om og installere noe som helst"
+msgstr "Ingenting oppgitt for installasjon"
 
 #. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2124
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Sjekker for virtuelle tilbydere eller tilbydere av filer for %s"
 
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2130 ../yum/__init__.py:2446
 #, python-format
 msgid "No Match for argument: %s"
-msgstr "Intet treff for argument: %s"
+msgstr "Ingen treff for argument: %s"
 
 #. FIXME - this is where we could check to see if it already installed
 #. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2185
 msgid "No package(s) available to install"
 msgstr "Ingen pakke(r) er tilgjengelig for installering"
 
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2198
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Pakke: %s - allerede i transaksjonensettet"
 
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2212
 #, python-format
 msgid "Package %s already installed and latest version"
-msgstr "Pakke %s er allerede installert i siste og beste versjon"
+msgstr "Pakke %s er allerede installert i siste versjon"
 
-#: ../yum/__init__.py:2178
-#, fuzzy, python-format
+#: ../yum/__init__.py:2219
+#, python-format
 msgid "Package matching %s already installed. Checking for update."
-msgstr "Pakke %s er allerede lagt inn, hopper over"
+msgstr "Pakke med treff på %s er allerede lagt inn. Ser etter oppdatering"
+
+#: ../yum/__init__.py:2230
+#, fuzzy, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr ""
+"Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
+"install for å legge den inn."
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2263
 msgid "Updating Everything"
 msgstr "Oppdaterer alt"
 
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2366
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Pakka er allerede foreldet:  %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2377
+#: ../yum/__init__.py:2390
+#, fuzzy, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2443
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2392
+#. FIXME we should give the caller some nice way to hush this warning
+#. probably just a kwarg of 'silence_warnings' or something
+#. b/c when this is called from groupRemove() it makes a lot of
+#. garbage noise
+#: ../yum/__init__.py:2462
 msgid "No package matched to remove"
 msgstr "Kunne ikke finne noen passende pakke for fjerning"
 
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2496
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Kunne ikke åpne fil: %s. Hopper over."
 
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2498
 #, python-format
 msgid "Examining %s: %s"
-msgstr "Gransker: %s: %s"
+msgstr "Undersøker: %s: %s"
+
+#: ../yum/__init__.py:2504
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr ""
 
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2512
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -1745,77 +1752,77 @@ msgstr ""
 "Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
 "install for å legge den inn."
 
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2545
 #, python-format
 msgid "Excluding %s"
 msgstr "Ekskluderer %s"
 
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2549
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Setter av %s for kommende installering"
 
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2554
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Setter av %s som en oppdatering av %s"
 
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2559
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: vil ikke oppdatere installert pakke."
 
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2576
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Problem ved reinstall: kunne ikke finne passende pakke og fjerne"
 
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2587
 #, fuzzy, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Pakke %s er allerede lagt inn, hopper over"
 
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2594
 msgid "Problem in reinstall: no package matched to install"
 msgstr "Problem ved reinstall: kunne ikke finne passende pakke og installere "
 
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2641
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Henter GPG-nøkkel fra %s"
 
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2647
 msgid "GPG key retrieval failed: "
 msgstr "Henting av GPG-nøkkel feilet: "
 
-#: ../yum/__init__.py:2589
+#: ../yum/__init__.py:2663
 msgid "GPG key parsing failed: "
 msgstr "Analyse av GPG-nøkkel feilet: "
 
-#: ../yum/__init__.py:2593
+#: ../yum/__init__.py:2667
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "GPG-nøkkel ved %s (0x%s) er allerede lagt inn"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:2598
+#: ../yum/__init__.py:2672
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Legger inn GPG-nøkkel 0x%s \"%s\" fra %s"
 
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2685
 msgid "Not installing key"
 msgstr "Legger ikke inn nøkkel"
 
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2691
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Import av nøkkel feilet (kode %d)"
 
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2694
 msgid "Key imported successfully"
 msgstr "Nøkler ble lagt inn med suksess"
 
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:2699
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1827,74 +1834,79 @@ msgstr ""
 "Sjekk at korrekt URL (gpgkey opsjonen) er oppgitt for denne\n"
 "pakkeoversikten."
 
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:2708
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Import av nøkler hjalp ikke, feil nøkler?"
 
-#: ../yum/__init__.py:2707
+#: ../yum/__init__.py:2789
 msgid "Unable to find a suitable mirror."
 msgstr "Kunne ikke finne passende filspeil"
 
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:2791
 msgid "Errors were encountered while downloading packages."
 msgstr "Det oppstod feil ved nedlastning av pakker."
 
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:2854
 msgid "Test Transaction Errors: "
 msgstr "Feil ved testtransaksjon: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:197
 msgid "Loaded plugins: "
 msgstr "Tillegg som er i bruk:"
 
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:208
 #, fuzzy, python-format
 msgid "No plugin match for: %s"
 msgstr "Intet treff for argument: %s"
 
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:221
 #, python-format
 msgid "\"%s\" plugin is disabled"
 msgstr "Tillegg: %s er ikke aktiv."
 
-#: ../yum/plugins.py:231
+#: ../yum/plugins.py:233
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "Tillegg \"%s\" tilfredstiller ikke versjonskravene fra Yum."
 
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:237
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "Tillegg \"%s\" krever API versjon: %s. Men støttet API versjon er %s."
 
-#: ../yum/plugins.py:264
+#: ../yum/plugins.py:266
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Laster tillegg \"%s\""
 
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:273
 #, python-format
 msgid ""
 "Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr "To eller flere tillegg har samme navn."
+msgstr "Det finnes to eller flere tillegg med navn «%s» i søkestien for tillegg"
 
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:293
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Konfigurasjonsfila %s ble ikke funnet"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
+#: ../yum/plugins.py:296
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Kunne ikke finne konfigurasjon for tillegg %s"
 
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:450
 msgid "registration of commands not supported"
 msgstr "registering av kommandoer er ikke støttet"
 
+#: ../yum/rpmtrans.py:78
+#, fuzzy
+msgid "Repackaging"
+msgstr "Pakker på nytt"
+
 #: ../rpmUtils/oldUtils.py:26
 #, python-format
 msgid "Header cannot be opened or does not match %s, %s."
@@ -1924,6 +1936,33 @@ msgstr "Filhode til %s er ødelagt"
 msgid "Error opening rpm %s - error %s"
 msgstr "Kunne ikke åpen rpm pakke %s - feilen er %s"
 
+#~ msgid "Searching pkgSack for dep: %s"
+#~ msgstr "Søker i pkgSack etter avhengighet: %s"
+
+#~ msgid "Potential match for %s from %s"
+#~ msgstr "Potensielt treff for %s i %s"
+
+#~ msgid "Matched %s to require for %s"
+#~ msgstr "Passende %s for å tilfredstille %s"
+
+#~ msgid "Needed Require has already been looked up, cheating"
+#~ msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
+
+#~ msgid "Needed Require is not a package name. Looking up: %s"
+#~ msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
+
+#~ msgid "Potential Provider: %s"
+#~ msgstr "Potensiell tilbyder: %s"
+
+#~ msgid "Mode is %s for provider of %s: %s"
+#~ msgstr "Modus er %s for tilbyder av %s: %s"
+
+#~ msgid "Mode for pkg providing %s: %s"
+#~ msgstr "Modus for pakke som tilbyr %s: %s"
+
+#~ msgid "Unresolvable requirement %s for %s"
+#~ msgstr "Avhengighet %s kan ikke løses opp: %s"
+
 #~ msgid "Looking for Obsoletes for %s"
 #~ msgstr "Leter opp informasjon utgåtte pakker for %s"
 
commit ad44a577a353580229aac2a857f4c58ac51bcf1d
Merge: f91e0b4... 7ae8c7a...
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Sat Nov 1 09:10:12 2008 +0100

    Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X

commit f91e0b47d2f95ba7fd56da627b7d8cabeda52928
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Sat Nov 1 09:06:05 2008 +0100

    add some extra skip-broken debug output and minor cleanups

diff --git a/yum/__init__.py b/yum/__init__.py
index 784e826..dc50fd7 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -665,7 +665,11 @@ class YumBase(depsolve.Depsolve):
         # Try another depsolve
         if self.conf.skip_broken and rescode==1:
             self.skipped_packages = []    # reset the public list of skipped packages.
+            sb_st = time.time()
+            self._printTransaction()        
             rescode, restring = self._skipPackagesWithProblems(rescode, restring)
+            self._printTransaction()        
+            self.verbose_logger.debug('Skip-Broken time: %0.3f' % (time.time() - sb_st))
 
         self.verbose_logger.debug('Depsolve time: %0.3f' % (time.time() - ds_st))
         return rescode, restring
@@ -698,7 +702,6 @@ class YumBase(depsolve.Depsolve):
             count += 1
             self.verbose_logger.debug(_("Skip-broken round %i"), count)
             depTree = self._buildDepTree()
-            print depTree
             startTs = set(self.tsInfo)
             toRemove = set()
             for po,wpo,err in self.po_with_problems:
@@ -740,7 +743,7 @@ class YumBase(depsolve.Depsolve):
             # can have broken something that passed the tests earliere.
             # FIXME: We need do this in a better way.
             if rescode != 1:
-                self.verbose_logger.debug('SKIPBROKEN: Check the current transaction one last time' )
+                self.verbose_logger.debug('SKIPBROKEN: sanity check the current transaction' )
                 self.tsInfo.resetResolved(hard=True)
                 self._checkMissingObsoleted() # This is totally insane, but needed :(
                 rescode, restring = self.resolveDeps()
@@ -757,7 +760,6 @@ class YumBase(depsolve.Depsolve):
             # If we cant solve the problems the show the original error messages.
             self.verbose_logger.info("Skip-broken could not solve problems")
             return 1, orig_restring
-        
         return rescode, restring
 
     def _checkMissingObsoleted(self):
@@ -766,10 +768,15 @@ class YumBase(depsolve.Depsolve):
         then the TS_OBSOLETED can get removed from the transaction
         so we must make sure that they, exist and else create them
         """
+        added = set()
         for txmbr in self.tsInfo:
             for pkg in txmbr.obsoletes:
                 if not self.tsInfo.exists(pkg.pkgtup):
-                    self.tsInfo.addObsoleted(pkg,txmbr.po)
+                    obs = self.tsInfo.addObsoleted(pkg,txmbr.po)
+                    self.verbose_logger.debug('SKIPBROKEN: Added missing obsoleted %s (%s)' % (pkg,txmbr.po) )
+                    added.add(obs)
+        return added
+                    
 
     def _skipFromTransaction(self,po):
         skipped =  []
@@ -813,6 +820,22 @@ class YumBase(depsolve.Depsolve):
             for p in l:
                 print "\t", p
 
+    def _printTransaction(self):
+        #transaction set states
+        state = { TS_UPDATE     : "update",
+                  TS_INSTALL    : "install",
+                  TS_TRUEINSTALL: "trueinstall",
+                  TS_ERASE      : "erase",
+                  TS_OBSOLETED  : "obsoleted",
+                  TS_OBSOLETING : "obsoleting",
+                  TS_AVAILABLE  : "available",
+                  TS_UPDATED    : "updated"}
+
+        self.verbose_logger.log(logginglevels.DEBUG_2,"TSINFO: Current Transaction : %i member(s) " % len(self.tsInfo))
+        for txmbr in self.tsInfo:
+            msg = "  %-11s : %s" % (state[txmbr.output_state],txmbr.po)
+            self.verbose_logger.log(logginglevels.DEBUG_2, msg)
+                                    
     def _getPackagesToRemove(self,po,deptree,toRemove):
         '''
         get the (related) pos to remove.
commit 7ae8c7a3aafce74b6855a6c86b1459c404b0e0ae
Author: James Antill <james at and.org>
Date:   Sat Nov 1 00:50:55 2008 -0400

    Fix the total download line to use utf8_width_fill too

diff --git a/output.py b/output.py
index 9972d1e..5191b9b 100755
--- a/output.py
+++ b/output.py
@@ -1012,8 +1012,8 @@ Remove   %5.5s Package(s)
         ui_time = tl.add(' %9s' % self.format_time(dl_time))
         ui_end  = tl.add(' ' * 5)
         ui_bs   = tl.add(' %5sB/s' % self.format_number(remote_size / dl_time))
-        msg = "%-*.*s%s%s%s%s" % (tl.rest(), tl.rest(), _("Total"),
-                                  ui_bs, ui_size, ui_time, ui_end)
+        msg = "%s%s%s%s%s" % (utf8_width_fill(_("Total"), tl.rest(), tl.rest()),
+                              ui_bs, ui_size, ui_time, ui_end)
         self.verbose_logger.log(logginglevels.INFO_2, msg)
 
 
commit 713b04ee43f6d718014846e1fbe82556a904c4d1
Author: James Antill <james at and.org>
Date:   Fri Oct 31 13:58:36 2008 -0400

    Fix "Loaded plugins" line to use correct utf8 widths

diff --git a/yum/plugins.py b/yum/plugins.py
index 82efdee..287fba7 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -37,6 +37,8 @@ from weakref import proxy as weakref
 
 from yum import _
 
+from yum.i18n import utf8_width, utf8_width_fill
+
 # TODO: expose rpm package sack objects to plugins (once finished)
 # TODO: allow plugins to use the existing config stuff to define options for
 # their own configuration files (would replace confString() etc).
@@ -198,7 +200,7 @@ class YumPlugins:
             # Mostly copied from YumOutput._outKeyValFill()
             key = _("Loaded plugins: ")
             val = ", ".join(sorted(self._plugins))
-            nxt = ' ' * (len(key) - 2) + ': '
+            nxt = ' ' * (utf8_width(key) - 2) + ': '
             width = 80
             if hasattr(self.base, 'term'):
                 width = self.base.term.columns
commit 2082cb6a16e980fac6e6eedd899858fb167f2b8e
Author: James Antill <james at and.org>
Date:   Fri Oct 31 13:57:25 2008 -0400

    Fix fmtKeyValFill, fmtColumns and progress to work with correct utf8 widths

diff --git a/output.py b/output.py
old mode 100644
new mode 100755
index d98e281..9972d1e
--- a/output.py
+++ b/output.py
@@ -39,6 +39,7 @@ from yum.rpmtrans import RPMBaseCallback
 from yum.packageSack import packagesNewestByNameArch
 
 from textwrap import fill
+from yum.i18n import utf8_width, utf8_width_fill
 
 def _term_width():
     """ Simple terminal width, limit to 20 chars. and make 0 == 80. """
@@ -299,7 +300,7 @@ class YumOutput:
         if columns is None:
             columns = [1] * cols
 
-        total_width -= (sum(columns) + (cols - 1) + len(indent))
+        total_width -= (sum(columns) + (cols - 1) + utf8_width(indent))
         while total_width > 0:
             # Find which field all the spaces left will help best
             helps = 0
@@ -351,8 +352,9 @@ class YumOutput:
                 continue
 
             (align, width) = self._fmt_column_align_width(width)
-            if len(val) <= width:
-                msg += u"%%%s%ds " % (align, width)
+            if utf8_width(val) <= width:
+                msg += u"%s "
+                val = utf8_width_fill(val, width, left=(align == u'-'))
             else:
                 msg += u"%s\n" + " " * (total_width + width + 1)
             total_width += width
@@ -360,7 +362,8 @@ class YumOutput:
             data.append(val)
         (val, width) = columns[-1]
         (align, width) = self._fmt_column_align_width(width)
-        msg += u"%%%s%ds%s" % (align, width, end)
+        val = utf8_width_fill(val, width, left=(align == u'-'))
+        msg += u"%%s%s" % end
         data.append(val)
         return msg % tuple(data)
 
@@ -395,7 +398,7 @@ class YumOutput:
     def fmtKeyValFill(self, key, val):
         """ Return a key value pair in the common two column output format. """
         val = to_str(val)
-        keylen = len(key)
+        keylen = utf8_width(key)
         cols = self.term.columns
         nxt = ' ' * (keylen - 2) + ': '
         ret = fill(val, width=cols,
@@ -572,7 +575,7 @@ class YumOutput:
                 continue
             for (apkg, ipkg) in pkg_names2pkgs[item]:
                 pkg = ipkg or apkg
-                envra = len(str(pkg)) + len(indent)
+                envra = utf8_width(str(pkg)) + utf8_width(indent)
                 rid   = len(pkg.repoid)
                 for (d, v) in (('envra', envra), ('rid', rid)):
                     data[d].setdefault(v, 0)
@@ -1133,10 +1136,10 @@ class YumCliRPMCallBack(RPMBaseCallback):
             percent = (te_current*100L)/te_total
         
         if self.output and (sys.stdout.isatty() or te_current == te_total):
-            fmt = self._makefmt(percent, ts_current, ts_total, pkgname=pkgname)
-            # FIXME: Converting to utf8 here is a HACK ... but it's better
-            # to underflow than overflow, see the i18n-rpm-progress example
-            msg = fmt % (to_utf8(process), pkgname)
+            (fmt, wid1, wid2) = self._makefmt(percent, ts_current, ts_total,
+                                              pkgname=pkgname)
+            msg = fmt % (utf8_width_fill(process, wid1, wid1),
+                         utf8_width_fill(pkgname, wid2, wid2))
             if msg != self.lastmsg:
                 sys.stdout.write(to_unicode(msg))
                 sys.stdout.flush()
@@ -1161,7 +1164,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
         if pkgname is None:
             pnl = 22
         else:
-            pnl = len(pkgname)
+            pnl = utf8_width(pkgname)
 
         overhead  = (2 * l) + 2 # Length of done, above
         overhead += 19          # Length of begining
@@ -1179,20 +1182,23 @@ class YumCliRPMCallBack(RPMBaseCallback):
         width = "%s.%s" % (marks, marks)
         fmt_bar = "[%-" + width + "s]"
         # pnl = str(28 + marks + 1)
-        full_pnl = "%%-%d.%ds" % (pnl + marks + 1, pnl + marks + 1)
-        half_pnl = "%%-%d.%ds" % (pnl, pnl)
+        full_pnl = pnl + marks + 1
 
         if progress and percent == 100: # Don't chop pkg name on 100%
-            fmt = "\r  %-15.15s: " + full_pnl + "   " + done
+            fmt = "\r  %s: %s   " + done
+            wid2 = full_pnl
         elif progress:
             bar = fmt_bar % (self.mark * int(marks * (percent / 100.0)), )
-            fmt = "\r  %-15.15s: " + half_pnl + " " + bar + " " + done
+            fmt = "\r  %s: %s " + bar + " " + done
+            wid2 = pnl
         elif percent == 100:
-            fmt = "  %-15.15s: " + full_pnl + "   " + done
+            fmt = "  %s: %s   " + done
+            wid2 = full_pnl
         else:
             bar = fmt_bar % (self.mark * marks, )
-            fmt = "  %-15.15s: " + half_pnl + " " + bar + " " + done
-        return fmt
+            fmt = "  %s: %s " + bar + " " + done
+            wid2 = pnl
+        return fmt, 15, wid2
 
 
 def progressbar(current, total, name=None):
@@ -1214,8 +1220,6 @@ def progressbar(current, total, name=None):
 
     if name is None and current == total:
         name = '-'
-    if name is not None: # FIXME: This is a hack without utf8_width()
-        width -= len(to_utf8(name)) - len(name)
 
     end = ' %d/%d' % (current, total)
     width -= len(end) + 1
@@ -1228,17 +1232,18 @@ def progressbar(current, total, name=None):
         hashbar = mark * int(width * percent)
         output = '\r[%-*s]%s' % (width, hashbar, end)
     elif current == total: # Don't chop name on 100%
-        output = '\r%-*.*s%s' % (width, width, name, end)
+        output = '\r%s%s' % (utf8_width_fill(name, width, width), end)
     else:
         width -= 4
         if width < 0:
             width = 0
         nwid = width / 2
-        if nwid > len(name):
-            nwid = len(name)
+        if nwid > utf8_width(name):
+            nwid = utf8_width(name)
         width -= nwid
         hashbar = mark * int(width * percent)
-        output = '\r%-*.*s: [%-*s]%s' % (nwid, nwid, name, width, hashbar, end)
+        output = '\r%s: [%-*s]%s' % (utf8_width_fill(name, nwid, nwid), width,
+                                     hashbar, end)
      
     if current <= total:
         sys.stdout.write(output)
commit 7cb7bddd642150b5274772b5cb7b13f7441367c4
Author: James Antill <james at and.org>
Date:   Fri Oct 31 13:56:17 2008 -0400

    Add utf8_width chop/fill as helper functions for printing utf8 stuff

diff --git a/yum/i18n.py b/yum/i18n.py
index ba71e4f..27dcc62 100755
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -211,6 +211,52 @@ def utf8_width(msg):
             ret += __utf8_ucp_width(ucs)
     return ret
 
+def utf8_width_chop(msg, chop=None):
+    """ Return the textual width of a utf8 string, chopping it to a specified
+        value. """
+
+    if chop is None or utf8_width(msg) <= chop:
+        return utf8_width(msg), msg
+
+    ret = 0
+    passed_unicode = isinstance(msg, unicode)
+    msg_bytes = 0
+    msg = to_utf8(msg)
+    for (ucs, bytes) in __utf8_iter_ucs(msg):
+        if ucs is None:
+            width = bytes # Ugly ... should not feed bad utf8
+        else:
+            width = __utf8_ucp_width(ucs)
+
+        if chop is not None and (ret + width) > chop:
+            msg = msg[:msg_bytes]
+            break
+        ret += width
+        msg_bytes += bytes
+
+    if passed_unicode:
+        msg = to_unicode(msg)
+
+    return ret, msg
+
+def utf8_width_fill(msg, fill, chop=None, left=True):
+    """ Expand a utf8 msg to a specified "width" or chop to same.
+        Expansion can be left or right. """
+    passed_msg = msg
+    width, msg = utf8_width_chop(msg, chop)
+
+    if width < fill:
+        extra = " " * (fill - width)
+        if left:
+            msg = ''.join([msg, extra])
+        else:
+            msg = ''.join([extra, msg])
+
+    if isinstance(passed_msg, unicode):
+        return to_unicode(msg)
+
+    return msg
+
 def utf8_valid(msg):
     """ Return True/False is the text is valid utf8. """
     for (ucs, bytes) in __utf8_iter_ucs(msg):
@@ -238,36 +284,45 @@ except:
 if __name__ == "__main__":
     import sys
 
-    print " ---- Arguments/str ---- "
-    for arg in sys.argv[1:]:
+    def out(arg):
         arg = to_utf8(arg)
         print "UTF8 :", arg
         print "len  :", len(arg)
+        arg = to_unicode(arg)
+        print "USC  :", arg
+        print "len  :", len(arg)
         print "valid:", utf8_valid(arg)
         print "width:", utf8_width(arg)
+        print "4.8  :", "%s%s%s" % ('<', utf8_width_fill(arg,  4,  8), '>')
+        print "4.3  :", "%s%s%s" % ('<', utf8_width_fill(arg,  4,  3), '>')
+        print "4.2  :", "%s%s%s" % ('<', utf8_width_fill(arg,  4,  2), '>')
+        print "4.1  :", "%s%s%s" % ('<', utf8_width_fill(arg,  4,  1), '>')
+        print "3.3  :", "%s%s%s" % ('<', utf8_width_fill(arg,  3,  3), '>')
+        print "3.2  :", "%s%s%s" % ('<', utf8_width_fill(arg,  3,  2), '>')
+        print "3.1  :", "%s%s%s" % ('<', utf8_width_fill(arg,  3,  1), '>')
+        print "40.79:", "%s%s%s" % ('<', utf8_width_fill(arg, 40, 79), '>')
+        print "40.20:", "%s%s%s" % ('<', utf8_width_fill(arg, 40, 20), '>')
         print ''
 
+    print " ---- Arguments/str ---- "
+    for arg in sys.argv[1:]:
+        out(arg)
+
     print " ---- Arguments/gettext ---- "
     for arg in sys.argv[1:]:
-        arg = to_utf8(_(arg))
-        print "UTF8 :", arg
-        print "len  :", len(arg)
-        print "valid:", utf8_valid(arg)
-        print "width:", utf8_width(arg)
-        print ''
+        try:
+            arg = _(arg)
+        except UnicodeDecodeError:
+            continue
+        out(arg)
 
     if len(sys.argv) > 2:
         print " ---- Arguments/str/all ---- "
-        arg = to_utf8(sys.argv[1] % sys.argv[2:])
-        print "UTF8 :", arg
-        print "len  :", len(arg)
-        print "valid:", utf8_valid(arg)
-        print "width:", utf8_width(arg)
-        print ''
+        out(sys.argv[1] % sys.argv[2:])
+
         print " ---- Arguments/gettext/all ---- "
-        arg = to_utf8(_(sys.argv[1]) % map(_, sys.argv[2:]))
-        print "UTF8 :", arg
-        print "len  :", len(arg)
-        print "valid:", utf8_valid(arg)
-        print "width:", utf8_width(arg)
-        print ''
+        try:
+            arg = _(sys.argv[1]) % map(_, sys.argv[2:])
+        except UnicodeDecodeError:
+            sys.exit(0)
+        out(arg)
commit fed9a04e3973d4d827092e66b60f48004a28cd46
Author: James Antill <james at and.org>
Date:   Fri Oct 31 11:45:44 2008 -0400

    Add testing code for utf8_width

diff --git a/yum/i18n.py b/yum/i18n.py
old mode 100644
new mode 100755
index f14dc19..ba71e4f
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -234,3 +234,40 @@ except:
     returning the same text
     '''
     _ = dummy_wrapper
+
+if __name__ == "__main__":
+    import sys
+
+    print " ---- Arguments/str ---- "
+    for arg in sys.argv[1:]:
+        arg = to_utf8(arg)
+        print "UTF8 :", arg
+        print "len  :", len(arg)
+        print "valid:", utf8_valid(arg)
+        print "width:", utf8_width(arg)
+        print ''
+
+    print " ---- Arguments/gettext ---- "
+    for arg in sys.argv[1:]:
+        arg = to_utf8(_(arg))
+        print "UTF8 :", arg
+        print "len  :", len(arg)
+        print "valid:", utf8_valid(arg)
+        print "width:", utf8_width(arg)
+        print ''
+
+    if len(sys.argv) > 2:
+        print " ---- Arguments/str/all ---- "
+        arg = to_utf8(sys.argv[1] % sys.argv[2:])
+        print "UTF8 :", arg
+        print "len  :", len(arg)
+        print "valid:", utf8_valid(arg)
+        print "width:", utf8_width(arg)
+        print ''
+        print " ---- Arguments/gettext/all ---- "
+        arg = to_utf8(_(sys.argv[1]) % map(_, sys.argv[2:]))
+        print "UTF8 :", arg
+        print "len  :", len(arg)
+        print "valid:", utf8_valid(arg)
+        print "width:", utf8_width(arg)
+        print ''
commit ea1caa2bdd7e9d8fd22e2eeebef53ad810c94fdb
Author: James Antill <james at and.org>
Date:   Wed Oct 29 17:05:05 2008 -0400

    Add utf8_width to i18n, so we can do progress bars etc. well

diff --git a/yum/i18n.py b/yum/i18n.py
index 86f3ce2..f14dc19 100644
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -13,11 +13,211 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
+from yum.misc import to_unicode, to_utf8
+
 def dummy_wrapper(str):
     '''
     Dummy Translation wrapper, just returning the same string.
     '''
-    return str
+    return to_unicode(str)
+
+# This is ported from ustr_utf8_* which I got from:
+#     http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
+#  I've tried to leave it close to the original C (same names etc.) so that
+# it is easy to read/compare both versions...
+
+# ----------------------------- BEG utf8 -----------------------------
+# This is an implementation of wcwidth() and wcswidth() (defined in
+# IEEE Std 1002.1-2001) for Unicode.
+#
+# http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html
+# http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html
+#
+# In fixed-width output devices, Latin characters all occupy a single
+# "cell" position of equal width, whereas ideographic CJK characters
+# occupy two such cells. Interoperability between terminal-line
+# applications and (teletype-style) character terminals using the
+# UTF-8 encoding requires agreement on which character should advance
+# the cursor by how many cell positions. No established formal
+# standards exist at present on which Unicode character shall occupy
+# how many cell positions on character terminals. These routines are
+# a first attempt of defining such behavior based on simple rules
+# applied to data provided by the Unicode Consortium.
+#
+# [...]
+#
+# Markus Kuhn -- 2007-05-26 (Unicode 5.0)
+#
+# Permission to use, copy, modify, and distribute this software
+# for any purpose and without fee is hereby granted. The author
+# disclaims all warranties with regard to this software.
+#
+# Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
+
+def __utf8_bisearch(ucs, table):
+    """ auxiliary function for binary search in interval table. """
+
+    min = 0
+    max = len(table) - 1
+    if ucs < table[min][0] or ucs > table[max][1]:
+        return False
+
+    while max >= min:
+        mid = (min + max) / 2;
+        if ucs > table[mid][1]:
+            min = mid + 1;
+        elif ucs < table[mid][0]:
+            max = mid - 1;
+        else:
+          return True
+
+    return False
+
+def __utf8_ucp_width(ucs):
+    """ Get the textual width of a ucs character. """
+    # sorted list of non-overlapping intervals of non-spacing characters
+    # generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c"
+    combining = [
+    ( 0x0300, 0x036F ), ( 0x0483, 0x0486 ), ( 0x0488, 0x0489 ),
+    ( 0x0591, 0x05BD ), ( 0x05BF, 0x05BF ), ( 0x05C1, 0x05C2 ),
+    ( 0x05C4, 0x05C5 ), ( 0x05C7, 0x05C7 ), ( 0x0600, 0x0603 ),
+    ( 0x0610, 0x0615 ), ( 0x064B, 0x065E ), ( 0x0670, 0x0670 ),
+    ( 0x06D6, 0x06E4 ), ( 0x06E7, 0x06E8 ), ( 0x06EA, 0x06ED ),
+    ( 0x070F, 0x070F ), ( 0x0711, 0x0711 ), ( 0x0730, 0x074A ),
+    ( 0x07A6, 0x07B0 ), ( 0x07EB, 0x07F3 ), ( 0x0901, 0x0902 ),
+    ( 0x093C, 0x093C ), ( 0x0941, 0x0948 ), ( 0x094D, 0x094D ),
+    ( 0x0951, 0x0954 ), ( 0x0962, 0x0963 ), ( 0x0981, 0x0981 ),
+    ( 0x09BC, 0x09BC ), ( 0x09C1, 0x09C4 ), ( 0x09CD, 0x09CD ),
+    ( 0x09E2, 0x09E3 ), ( 0x0A01, 0x0A02 ), ( 0x0A3C, 0x0A3C ),
+    ( 0x0A41, 0x0A42 ), ( 0x0A47, 0x0A48 ), ( 0x0A4B, 0x0A4D ),
+    ( 0x0A70, 0x0A71 ), ( 0x0A81, 0x0A82 ), ( 0x0ABC, 0x0ABC ),
+    ( 0x0AC1, 0x0AC5 ), ( 0x0AC7, 0x0AC8 ), ( 0x0ACD, 0x0ACD ),
+    ( 0x0AE2, 0x0AE3 ), ( 0x0B01, 0x0B01 ), ( 0x0B3C, 0x0B3C ),
+    ( 0x0B3F, 0x0B3F ), ( 0x0B41, 0x0B43 ), ( 0x0B4D, 0x0B4D ),
+    ( 0x0B56, 0x0B56 ), ( 0x0B82, 0x0B82 ), ( 0x0BC0, 0x0BC0 ),
+    ( 0x0BCD, 0x0BCD ), ( 0x0C3E, 0x0C40 ), ( 0x0C46, 0x0C48 ),
+    ( 0x0C4A, 0x0C4D ), ( 0x0C55, 0x0C56 ), ( 0x0CBC, 0x0CBC ),
+    ( 0x0CBF, 0x0CBF ), ( 0x0CC6, 0x0CC6 ), ( 0x0CCC, 0x0CCD ),
+    ( 0x0CE2, 0x0CE3 ), ( 0x0D41, 0x0D43 ), ( 0x0D4D, 0x0D4D ),
+    ( 0x0DCA, 0x0DCA ), ( 0x0DD2, 0x0DD4 ), ( 0x0DD6, 0x0DD6 ),
+    ( 0x0E31, 0x0E31 ), ( 0x0E34, 0x0E3A ), ( 0x0E47, 0x0E4E ),
+    ( 0x0EB1, 0x0EB1 ), ( 0x0EB4, 0x0EB9 ), ( 0x0EBB, 0x0EBC ),
+    ( 0x0EC8, 0x0ECD ), ( 0x0F18, 0x0F19 ), ( 0x0F35, 0x0F35 ),
+    ( 0x0F37, 0x0F37 ), ( 0x0F39, 0x0F39 ), ( 0x0F71, 0x0F7E ),
+    ( 0x0F80, 0x0F84 ), ( 0x0F86, 0x0F87 ), ( 0x0F90, 0x0F97 ),
+    ( 0x0F99, 0x0FBC ), ( 0x0FC6, 0x0FC6 ), ( 0x102D, 0x1030 ),
+    ( 0x1032, 0x1032 ), ( 0x1036, 0x1037 ), ( 0x1039, 0x1039 ),
+    ( 0x1058, 0x1059 ), ( 0x1160, 0x11FF ), ( 0x135F, 0x135F ),
+    ( 0x1712, 0x1714 ), ( 0x1732, 0x1734 ), ( 0x1752, 0x1753 ),
+    ( 0x1772, 0x1773 ), ( 0x17B4, 0x17B5 ), ( 0x17B7, 0x17BD ),
+    ( 0x17C6, 0x17C6 ), ( 0x17C9, 0x17D3 ), ( 0x17DD, 0x17DD ),
+    ( 0x180B, 0x180D ), ( 0x18A9, 0x18A9 ), ( 0x1920, 0x1922 ),
+    ( 0x1927, 0x1928 ), ( 0x1932, 0x1932 ), ( 0x1939, 0x193B ),
+    ( 0x1A17, 0x1A18 ), ( 0x1B00, 0x1B03 ), ( 0x1B34, 0x1B34 ),
+    ( 0x1B36, 0x1B3A ), ( 0x1B3C, 0x1B3C ), ( 0x1B42, 0x1B42 ),
+    ( 0x1B6B, 0x1B73 ), ( 0x1DC0, 0x1DCA ), ( 0x1DFE, 0x1DFF ),
+    ( 0x200B, 0x200F ), ( 0x202A, 0x202E ), ( 0x2060, 0x2063 ),
+    ( 0x206A, 0x206F ), ( 0x20D0, 0x20EF ), ( 0x302A, 0x302F ),
+    ( 0x3099, 0x309A ), ( 0xA806, 0xA806 ), ( 0xA80B, 0xA80B ),
+    ( 0xA825, 0xA826 ), ( 0xFB1E, 0xFB1E ), ( 0xFE00, 0xFE0F ),
+    ( 0xFE20, 0xFE23 ), ( 0xFEFF, 0xFEFF ), ( 0xFFF9, 0xFFFB ),
+    ( 0x10A01, 0x10A03 ), ( 0x10A05, 0x10A06 ), ( 0x10A0C, 0x10A0F ),
+    ( 0x10A38, 0x10A3A ), ( 0x10A3F, 0x10A3F ), ( 0x1D167, 0x1D169 ),
+    ( 0x1D173, 0x1D182 ), ( 0x1D185, 0x1D18B ), ( 0x1D1AA, 0x1D1AD ),
+    ( 0x1D242, 0x1D244 ), ( 0xE0001, 0xE0001 ), ( 0xE0020, 0xE007F ),
+    ( 0xE0100, 0xE01EF )]
+
+    # test for 8-bit control characters
+    if ucs == 0:
+        return 0
+
+    if ucs < 32 or (ucs >= 0x7f and ucs < 0xa0):
+        return (-1)
+
+    if __utf8_bisearch(ucs, combining):
+        return 0
+
+    # if we arrive here, ucs is not a combining or C0/C1 control character
+
+    return (1 + 
+      (ucs >= 0x1100 and
+       (ucs <= 0x115f or                     # Hangul Jamo init. consonants
+        ucs == 0x2329 or ucs == 0x232a or
+        (ucs >= 0x2e80 and ucs <= 0xa4cf and
+         ucs != 0x303f) or                   # CJK ... Yi
+        (ucs >= 0xac00 and ucs <= 0xd7a3) or # Hangul Syllables
+        (ucs >= 0xf900 and ucs <= 0xfaff) or # CJK Compatibility Ideographs
+        (ucs >= 0xfe10 and ucs <= 0xfe19) or # Vertical forms
+        (ucs >= 0xfe30 and ucs <= 0xfe6f) or # CJK Compatibility Forms
+        (ucs >= 0xff00 and ucs <= 0xff60) or # Fullwidth Forms
+        (ucs >= 0xffe0 and ucs <= 0xffe6) or
+        (ucs >= 0x20000 and ucs <= 0x2fffd) or
+        (ucs >= 0x30000 and ucs <= 0x3fffd))))
+
+
+def __utf8_iter_ints(msg):
+    for byte in to_utf8(msg):
+        yield ord(byte)
+def __utf8_iter_ucs(msg):
+    uiter = __utf8_iter_ints(msg)
+    for byte0 in uiter:
+        if byte0 < 0x80:             # 0xxxxxxx
+            yield (byte0, 1)
+        elif (byte0 & 0xe0) == 0xc0: # 110XXXXx 10xxxxxx
+            byte1 = uiter.next()
+            if (((byte0 & 0xc0) != 0x80) or 
+                ((byte1 & 0xfe) == 0xc0)):                          # overlong?
+                yield (None, 2)
+                return
+            yield ((((byte0 & 0x1f) << 6) | (byte1 & 0x3f)), 2)
+        elif (byte0 & 0xf0) == 0xe0: # 1110XXXX 10Xxxxxx 10xxxxxx
+            byte1 = uiter.next()
+            byte2 = uiter.next()
+            if (((byte1 & 0xc0) != 0x80) or ((byte2 & 0xc0) != 0x80) or
+                ((byte0 == 0xe0) and ((byte1 & 0xe0) == 0x80)) or   # overlong?
+                ((byte0 == 0xed) and ((byte1 & 0xe0) == 0xa0)) or   # surrogate?
+                ((byte0 == 0xef) and  (byte1 == 0xbf) and
+                 ((byte2 & 0xfe) == 0xbe))): # U+FFFE or U+FFFF?
+                yield (None, 3)
+                return
+            yield ((((byte0 & 0x0f) << 12) | ((byte1 & 0x3f) << 6) |
+                   (byte2 & 0x3f)), 3)
+        elif (byte0 & 0xf8) == 0xf0: # 11110XXX 10XXxxxx 10xxxxxx 10xxxxxx
+            byte1 = uiter.next()
+            byte2 = uiter.next()
+            byte3 = uiter.next()
+            if (((byte1 & 0xc0) != 0x80) or
+                ((byte2 & 0xc0) != 0x80) or
+                ((byte3 & 0xc0) != 0x80) or
+                ((byte0 == 0xf0) and ((byte1 & 0xf0) == 0x80)) or # overlong?
+                ((byte0 == 0xf4) and (byte1 > 0x8f)) or           # > U+10FFFF?
+                (byte0 > 0xf4)):                                  # > U+10FFFF?
+                yield (None, 4)
+                return
+
+            yield ((((byte0 & 0x07) << 18) | ((byte1 & 0x3f) << 12) |
+                    ((byte2 & 0x3f) <<  6) |  (byte3 & 0x3f)), 4)
+        else:
+            yield (None, 1)
+            return
+
+def utf8_width(msg):
+    """ Get the textual width of a utf8 string. """
+    ret = 0
+    for (ucs, bytes) in __utf8_iter_ucs(msg):
+        if ucs is None:
+            ret += bytes # Ugly ... should not feed bad utf8
+        else:
+            ret += __utf8_ucp_width(ucs)
+    return ret
+
+def utf8_valid(msg):
+    """ Return True/False is the text is valid utf8. """
+    for (ucs, bytes) in __utf8_iter_ucs(msg):
+        if ucs is None:
+            return False
+    return True
+# ----------------------------- END utf8 -----------------------------
 
 try: 
     '''
commit ca60206e366d2212ef83843f264a3707548869c4
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Fri Oct 31 12:58:35 2008 +0100

    * Added an extra depsolve on the result transaction after skip-broken has ripped out the disty stuff, to make sure that allready depsolved packages, not has been broken by the skipped package.
    * Added a check for missing TS_OBSOLETED members, this problem occours if multiple packages are obsoleting the same packages and one of these get skipped. (rhbz# 468785) (It is totally DIRTY HACK, but need for now)

diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 8723975..968989c 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -440,8 +440,10 @@ class SkipBrokenTests(DepsolveTests):
         d1.addProvides("libdb-4.3.so")
         od1 = self.repoPackage('compat-db46', '4.6.21',"5")
         od1.addProvides("libdb-4.6.so")
+        od1.addObsoletes("compat-db")
         od2 = self.repoPackage('compat-db45', '4.6.21',"5")
         od2.addProvides("libdb-4.5.so")
+        od2.addObsoletes("compat-db")
         
         r1 = self.instPackage('rpm', '4.6.0-0','0.rc1.3')
         r1.addRequires("libdb-4.5.so")
@@ -453,15 +455,18 @@ class SkipBrokenTests(DepsolveTests):
         r4.addRequires("libdb-4.5.so")
 
         ur1 = self.repoPackage('rpm', '4.6.0-0','0.rc1.5')
+        ur1.addRequires("libdb-4.5.so")
         ur1.addRequires("compat-db45")
         ur2 = self.repoPackage('rpm-libs', '4.6.0-0','0.rc1.5')
+        ur2.addRequires("libdb-4.5.so")
         ur2.addRequires("compat-db45")
         ur3 = self.repoPackage('rpm-build', '4.6.0-0','0.rc1.5')
+        ur3.addRequires("libdb-4.5.so")
         ur3.addRequires("compat-db45")
         ur4 = self.repoPackage('rpm-python', '4.6.0-0','0.rc1.5')
+        ur4.addRequires("libdb-4.5.so")
         ur4.addRequires("compat-db45")
 
-
         self.tsInfo.addObsoleting(od2, oldpo=d1)
         self.tsInfo.addObsoleted(d1, od2)
         self.tsInfo.addObsoleting(od1, oldpo=d1)
@@ -471,8 +476,56 @@ class SkipBrokenTests(DepsolveTests):
         self.tsInfo.addUpdate(ur3, oldpo=r3)
         self.tsInfo.addUpdate(ur4, oldpo=r4)
         
-        self.assertEquals('ok', *self.resolveCode(skip=True))
+        self.assertEquals('empty', *self.resolveCode(skip=True))
         self.assertResult([c1,d1,r1,r2,r3,r4])
+
+    def testBumpedSoName3(self):
+        """ 
+        https://bugzilla.redhat.com/show_bug.cgi?id=468785
+        yum update compat-db46
+        """
+        c1 = self.instPackage('cyrus-sasl-lib', '2.1.22',"18")
+        c1.addRequires("libdb-4.3.so")
+        
+        d1 = self.instPackage('compat-db', '4.6.21',"4")
+        d1.addProvides("libdb-4.3.so")
+        od1 = self.repoPackage('compat-db46', '4.6.21',"5")
+        od1.addProvides("libdb-4.6.so")
+        od1.addObsoletes("compat-db")
+        od2 = self.repoPackage('compat-db45', '4.6.21',"5")
+        od2.addProvides("libdb-4.5.so")
+        od2.addObsoletes("compat-db")
+        
+        r1 = self.instPackage('rpm', '4.6.0-0','0.rc1.3')
+        r1.addRequires("libdb-4.5.so")
+        r2 = self.instPackage('rpm-libs', '4.6.0-0','0.rc1.3')
+        r2.addRequires("libdb-4.5.so")
+        r3 = self.instPackage('rpm-build', '4.6.0-0','0.rc1.3')
+        r3.addRequires("libdb-4.5.so")
+        r4 = self.instPackage('rpm-python', '4.6.0-0','0.rc1.3')
+        r4.addRequires("libdb-4.5.so")
+
+        ur1 = self.repoPackage('rpm', '4.6.0-0','0.rc1.5')
+        ur1.addRequires("libdb-4.5.so")
+        ur1.addRequires("compat-db45")
+        ur2 = self.repoPackage('rpm-libs', '4.6.0-0','0.rc1.5')
+        ur2.addRequires("libdb-4.5.so")
+        ur2.addRequires("compat-db45")
+        ur3 = self.repoPackage('rpm-build', '4.6.0-0','0.rc1.5')
+        ur3.addRequires("libdb-4.5.so")
+        ur3.addRequires("compat-db45")
+        ur4 = self.repoPackage('rpm-python', '4.6.0-0','0.rc1.5')
+        ur4.addRequires("libdb-4.5.so")
+        ur4.addRequires("compat-db45")
+
+        self.tsInfo.addObsoleting(od1, oldpo=d1)
+        self.tsInfo.addObsoleted(d1, od1)
+        self.tsInfo.addUpdate(ur1, oldpo=r1)
+        self.tsInfo.addUpdate(ur2, oldpo=r2)
+        self.tsInfo.addUpdate(ur3, oldpo=r3)
+        self.tsInfo.addUpdate(ur4, oldpo=r4)
+        
+        self.assertEquals('err', *self.resolveCode(skip=False))
     
     def resolveCode(self,skip = False):
         solver = YumBase()
diff --git a/yum/__init__.py b/yum/__init__.py
index 151806b..784e826 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -694,10 +694,11 @@ class YumBase(depsolve.Depsolve):
         removed_from_sack = set()
         orig_restring = restring    # Keep the old error messages 
         hard_restart = False
-        while len(self.po_with_problems) > 0 and rescode == 1:
+        while (len(self.po_with_problems) > 0 and rescode == 1):
             count += 1
             self.verbose_logger.debug(_("Skip-broken round %i"), count)
             depTree = self._buildDepTree()
+            print depTree
             startTs = set(self.tsInfo)
             toRemove = set()
             for po,wpo,err in self.po_with_problems:
@@ -734,6 +735,15 @@ class YumBase(depsolve.Depsolve):
                 else:
                     self.verbose_logger.debug('SKIPBROKEN: resetting already resovled packages (transaction not changed)' )
                     self.tsInfo.resetResolved(hard=True)
+            # 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
+            # can have broken something that passed the tests earliere.
+            # FIXME: We need do this in a better way.
+            if rescode != 1:
+                self.verbose_logger.debug('SKIPBROKEN: Check the current transaction one last time' )
+                self.tsInfo.resetResolved(hard=True)
+                self._checkMissingObsoleted() # This is totally insane, but needed :(
+                rescode, restring = self.resolveDeps()
         if rescode != 1:
             self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
             self.verbose_logger.info(_('\nPackages skipped because of dependency problems:'))
@@ -750,6 +760,17 @@ class YumBase(depsolve.Depsolve):
         
         return rescode, restring
 
+    def _checkMissingObsoleted(self):
+        """ 
+        If multiple packages is obsoleting the same package
+        then the TS_OBSOLETED can get removed from the transaction
+        so we must make sure that they, exist and else create them
+        """
+        for txmbr in self.tsInfo:
+            for pkg in txmbr.obsoletes:
+                if not self.tsInfo.exists(pkg.pkgtup):
+                    self.tsInfo.addObsoleted(pkg,txmbr.po)
+
     def _skipFromTransaction(self,po):
         skipped =  []
         if rpmUtils.arch.isMultiLibArch():
commit c4c8227915acf0b7ca259ba9d29269a8be50d898
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Fri Oct 31 10:10:52 2008 +0100

    Added testcase to show the skipbroken problem in rhbz #468785

diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 28ce279..8723975 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -428,6 +428,51 @@ class SkipBrokenTests(DepsolveTests):
         self.tsInfo.addUpdate(f2, oldpo=f1)
         self.assertEquals('ok', *self.resolveCode(skip=True))
         self.assertResult([a1,b1,c1,d1,e2,f2])
+
+    def testBumpedSoName2(self):
+        """ 
+        https://bugzilla.redhat.com/show_bug.cgi?id=468785
+        """
+        c1 = self.instPackage('cyrus-sasl-lib', '2.1.22',"18")
+        c1.addRequires("libdb-4.3.so")
+        
+        d1 = self.instPackage('compat-db', '4.6.21',"4")
+        d1.addProvides("libdb-4.3.so")
+        od1 = self.repoPackage('compat-db46', '4.6.21',"5")
+        od1.addProvides("libdb-4.6.so")
+        od2 = self.repoPackage('compat-db45', '4.6.21',"5")
+        od2.addProvides("libdb-4.5.so")
+        
+        r1 = self.instPackage('rpm', '4.6.0-0','0.rc1.3')
+        r1.addRequires("libdb-4.5.so")
+        r2 = self.instPackage('rpm-libs', '4.6.0-0','0.rc1.3')
+        r2.addRequires("libdb-4.5.so")
+        r3 = self.instPackage('rpm-build', '4.6.0-0','0.rc1.3')
+        r3.addRequires("libdb-4.5.so")
+        r4 = self.instPackage('rpm-python', '4.6.0-0','0.rc1.3')
+        r4.addRequires("libdb-4.5.so")
+
+        ur1 = self.repoPackage('rpm', '4.6.0-0','0.rc1.5')
+        ur1.addRequires("compat-db45")
+        ur2 = self.repoPackage('rpm-libs', '4.6.0-0','0.rc1.5')
+        ur2.addRequires("compat-db45")
+        ur3 = self.repoPackage('rpm-build', '4.6.0-0','0.rc1.5')
+        ur3.addRequires("compat-db45")
+        ur4 = self.repoPackage('rpm-python', '4.6.0-0','0.rc1.5')
+        ur4.addRequires("compat-db45")
+
+
+        self.tsInfo.addObsoleting(od2, oldpo=d1)
+        self.tsInfo.addObsoleted(d1, od2)
+        self.tsInfo.addObsoleting(od1, oldpo=d1)
+        self.tsInfo.addObsoleted(d1, od1)
+        self.tsInfo.addUpdate(ur1, oldpo=r1)
+        self.tsInfo.addUpdate(ur2, oldpo=r2)
+        self.tsInfo.addUpdate(ur3, oldpo=r3)
+        self.tsInfo.addUpdate(ur4, oldpo=r4)
+        
+        self.assertEquals('ok', *self.resolveCode(skip=True))
+        self.assertResult([c1,d1,r1,r2,r3,r4])
     
     def resolveCode(self,skip = False):
         solver = YumBase()
commit 5656dc7b9f2d9a9043ccfd9ceb527155453d73a5
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Thu Oct 30 07:43:20 2008 +0100

    Extra skip-broken debug info

diff --git a/yum/__init__.py b/yum/__init__.py
index c4cb4fa..151806b 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -720,6 +720,7 @@ class YumBase(depsolve.Depsolve):
                 if hard_restart:
                     break # Bail out
                 else:
+                    self.verbose_logger.debug('SKIPBROKEN: resetting already resovled packages (no packages to skip)' )
                     self.tsInfo.resetResolved(hard=True)
             rescode, restring = self.resolveDeps()
             endTs = set(self.tsInfo)
@@ -731,6 +732,7 @@ class YumBase(depsolve.Depsolve):
                 if hard_restart:
                     break # Bail out
                 else:
+                    self.verbose_logger.debug('SKIPBROKEN: resetting already resovled packages (transaction not changed)' )
                     self.tsInfo.resetResolved(hard=True)
         if rescode != 1:
             self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
commit 5e25798c6b86dca4a07454c4f86be0eb27b1d17f
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Wed Oct 29 14:58:50 2008 +0100

    make skip-broken better and solve the latest added test case

diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 9992416..28ce279 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -386,11 +386,11 @@ class SkipBrokenTests(DepsolveTests):
 
 
     def testBumpedSoName1(self):
-        """ This will fail because the skip-broken code can handle this case
+        """ 
         d2 need a lib from b1, so the update fails.
         d2 and b2 get skipped, but the installed b1 needs a
         lib from a1, but it has been updated to a2, so it is
-        no longer there.
+        no longer there. so a2 needs to be skipped to
         """
         a1 = self.instPackage('a', '1', arch='x86_64')
         a1.addProvides("liba.so.1()(64bit)")
@@ -427,7 +427,7 @@ class SkipBrokenTests(DepsolveTests):
         self.tsInfo.addUpdate(e2, oldpo=e1)
         self.tsInfo.addUpdate(f2, oldpo=f1)
         self.assertEquals('ok', *self.resolveCode(skip=True))
-        #self.assertResult([a2,b1,c2,d1,e2,f2])
+        self.assertResult([a1,b1,c1,d1,e2,f2])
     
     def resolveCode(self,skip = False):
         solver = YumBase()
diff --git a/yum/__init__.py b/yum/__init__.py
index 04f2aac..c4cb4fa 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -692,7 +692,8 @@ class YumBase(depsolve.Depsolve):
         count = 0
         skipped_po = set()
         removed_from_sack = set()
-        orig_restring = restring    # Keep the old error messages
+        orig_restring = restring    # Keep the old error messages 
+        hard_restart = False
         while len(self.po_with_problems) > 0 and rescode == 1:
             count += 1
             self.verbose_logger.debug(_("Skip-broken round %i"), count)
@@ -712,14 +713,25 @@ class YumBase(depsolve.Depsolve):
                     # make sure we get the compat arch packages skip from pkgSack and up too.
                     if skip not in removed_from_sack and skip.repoid == 'installed':
                         _remove_from_sack(skip)
-            if not toRemove: # Nothing was removed, so we still got a problem
-                break # Bail out
+            # Nothing was removed, so we still got a problem
+             # the first time we get here we reset the resolved members of
+             # tsInfo and takes a new run all members in the current transaction
+            if not toRemove: 
+                if hard_restart:
+                    break # Bail out
+                else:
+                    self.tsInfo.resetResolved(hard=True)
             rescode, restring = self.resolveDeps()
             endTs = set(self.tsInfo)
              # Check if tsInfo has changes since we started to skip packages
              # if there is no changes then we got a loop.
+             # the first time we get here we reset the resolved members of
+             # tsInfo and takes a new run all members in the current transaction
             if startTs-endTs == set():
-                break    # bail out
+                if hard_restart:
+                    break # Bail out
+                else:
+                    self.tsInfo.resetResolved(hard=True)
         if rescode != 1:
             self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
             self.verbose_logger.info(_('\nPackages skipped because of dependency problems:'))
commit 55f6d9757c975b25e10e9f79df57c4336785f57d
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Wed Oct 29 12:43:08 2008 +0100

    added a failing skip-broken test case there reproduces the case in rhbz #468394 and others

diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 5129cde..9992416 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -386,7 +386,11 @@ class SkipBrokenTests(DepsolveTests):
 
 
     def testBumpedSoName1(self):
-        """
+        """ This will fail because the skip-broken code can handle this case
+        d2 need a lib from b1, so the update fails.
+        d2 and b2 get skipped, but the installed b1 needs a
+        lib from a1, but it has been updated to a2, so it is
+        no longer there.
         """
         a1 = self.instPackage('a', '1', arch='x86_64')
         a1.addProvides("liba.so.1()(64bit)")
@@ -395,8 +399,10 @@ class SkipBrokenTests(DepsolveTests):
         
         b1 = self.instPackage('b', '1', arch='x86_64')
         b1.addProvides("libb.so.1()(64bit)")
+        b1.addRequires("liba.so.1()(64bit)")
         b2 = self.repoPackage('b', '2', arch='x86_64')
         b2.addProvides("libb.so.2()(64bit)")
+        b2.addRequires("liba.so.2()(64bit)")
         
         c1 = self.instPackage('c', '1', arch='x86_64')
         c1.addRequires("liba.so.1()(64bit)")
@@ -421,7 +427,7 @@ class SkipBrokenTests(DepsolveTests):
         self.tsInfo.addUpdate(e2, oldpo=e1)
         self.tsInfo.addUpdate(f2, oldpo=f1)
         self.assertEquals('ok', *self.resolveCode(skip=True))
-        self.assertResult([a2,b1,c2,d1,e2,f2])
+        #self.assertResult([a2,b1,c2,d1,e2,f2])
     
     def resolveCode(self,skip = False):
         solver = YumBase()
commit a69588352502c1ea50d4d9ab2605932937f662fe
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Wed Oct 29 12:19:15 2008 +0100

    added a skipbroken test case

diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index e2e88b2..5129cde 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -385,7 +385,7 @@ class SkipBrokenTests(DepsolveTests):
         self.assertResult([po1,po2,po3])               
 
 
-    def testInstalledFail(self):
+    def testBumpedSoName1(self):
         """
         """
         a1 = self.instPackage('a', '1', arch='x86_64')
@@ -420,8 +420,8 @@ class SkipBrokenTests(DepsolveTests):
         self.tsInfo.addUpdate(d2, oldpo=d1)
         self.tsInfo.addUpdate(e2, oldpo=e1)
         self.tsInfo.addUpdate(f2, oldpo=f1)
-        self.assertEquals('err', *self.resolveCode(skip=False))
-        #self.assertResult([a2,b2,c2,d2,e2,f2])
+        self.assertEquals('ok', *self.resolveCode(skip=True))
+        self.assertResult([a2,b1,c2,d1,e2,f2])
     
     def resolveCode(self,skip = False):
         solver = YumBase()
commit 7fe6c652f325c9384b21f90eeb054f195108b5b7
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Wed Oct 29 12:15:26 2008 +0100

    make at FakeRpmDB class to use as self.rpmdb when doing unit tests, because PackageSack dont always behave the same as RPMDBSack, so it can break skipbroken tests using unversioned lib requests

diff --git a/test/testbase.py b/test/testbase.py
index 51224bc..0beffc6 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -210,6 +210,35 @@ class _DepsolveTestsBase(unittest.TestCase):
             errors.append("\n")
             self.fail("".join(errors))
 
+class FakeRpmDb(packageSack.PackageSack):
+    '''
+    We use a PackagePack for a Fake rpmdb insted of the normal
+    RPMDBPackageSack, getProvides works a little different on
+    unversioned requirements so we have to overload an add some
+    extra checkcode.
+    '''
+    def __init__(self):
+        packageSack.PackageSack.__init__(self)
+
+    def getProvides(self, name, flags=None, version=(None, None, None)):
+        """return dict { packages -> list of matching provides }"""
+        self._checkIndexes(failure='build')
+        result = { }
+        # convert flags & version for unversioned reqirements
+        if not version:
+            version=(None, None, None)
+        if flags == '0':
+            flags=None
+        for po in self.provides.get(name, []):
+            hits = po.matchingPrcos('provides', (name, flags, version))
+            if hits:
+                result[po] = hits
+        if name[0] == '/':
+            hit = (name, None, (None, None, None))
+            for po in self.searchFiles(name):
+                result.setdefault(po, []).append(hit)
+        return result
+            
 
 #######################################################################
 ### Derive Tests from these classes or unittest.TestCase ##############
@@ -238,7 +267,7 @@ class DepsolveTests(_DepsolveTestsBase):
         """ Called at the start of each test. """
         _DepsolveTestsBase.setUp(self)
         self.tsInfo = transactioninfo.TransactionData()
-        self.rpmdb  = packageSack.PackageSack()
+        self.rpmdb  = FakeRpmDb()
         self.xsack  = packageSack.PackageSack()
         self.repo   = FakeRepo("installed")
         # XXX this side-affect is hacky:
commit 923c037cb78a703060780fcca94b0d199f49d550
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Wed Oct 29 08:51:10 2008 +0100

    Added depsolve callbacks to skipbroken tests, to get better output if a test fails

diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 977a0c2..e2e88b2 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -384,6 +384,44 @@ class SkipBrokenTests(DepsolveTests):
         self.assertEquals('ok', *self.resolveCode(skip=True))
         self.assertResult([po1,po2,po3])               
 
+
+    def testInstalledFail(self):
+        """
+        """
+        a1 = self.instPackage('a', '1', arch='x86_64')
+        a1.addProvides("liba.so.1()(64bit)")
+        a2 = self.repoPackage('a', '2', arch='x86_64')
+        a2.addProvides("liba.so.2()(64bit)")
+        
+        b1 = self.instPackage('b', '1', arch='x86_64')
+        b1.addProvides("libb.so.1()(64bit)")
+        b2 = self.repoPackage('b', '2', arch='x86_64')
+        b2.addProvides("libb.so.2()(64bit)")
+        
+        c1 = self.instPackage('c', '1', arch='x86_64')
+        c1.addRequires("liba.so.1()(64bit)")
+        c2 = self.repoPackage('c', '2', arch='x86_64')
+        c2.addRequires("liba.so.2()(64bit)")
+
+        d1 = self.instPackage('d', '1', arch='x86_64')
+        d1.addRequires("libb.so.1()(64bit)")
+        d2 = self.repoPackage('d', '2', arch='x86_64')
+        d2.addRequires("libb.so.1()(64bit)")
+
+        e1 = self.instPackage('e', '1', arch='x86_64')
+        e2 = self.repoPackage('e', '2', arch='x86_64')
+
+        f1 = self.instPackage('f', '1', arch='x86_64')
+        f2 = self.repoPackage('f', '2', arch='x86_64')
+
+        self.tsInfo.addUpdate(a2, oldpo=a1)
+        self.tsInfo.addUpdate(b2, oldpo=b1)
+        self.tsInfo.addUpdate(c2, oldpo=c1)
+        self.tsInfo.addUpdate(d2, oldpo=d1)
+        self.tsInfo.addUpdate(e2, oldpo=e1)
+        self.tsInfo.addUpdate(f2, oldpo=f1)
+        self.assertEquals('err', *self.resolveCode(skip=False))
+        #self.assertResult([a2,b2,c2,d2,e2,f2])
     
     def resolveCode(self,skip = False):
         solver = YumBase()
@@ -392,6 +430,7 @@ class SkipBrokenTests(DepsolveTests):
         solver.tsInfo = solver._tsInfo = self.tsInfo
         solver.rpmdb = self.rpmdb
         solver.pkgSack = self.xsack
+        solver.dsCallback = DepSolveProgressCallBack()
         
         for po in self.rpmdb:
             po.repoid = po.repo.id = "installed"
@@ -415,4 +454,3 @@ def setup_logging():
     verbose.propagate = False
     verbose.addHandler(console_stdout)
     verbose.setLevel(2)
-
diff --git a/test/testbase.py b/test/testbase.py
index ccab847..51224bc 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -3,6 +3,8 @@ import sys
 import unittest
 
 import settestpath
+import logging
+import yum.logginglevels as logginglevels
 
 new_behavior = "NEW_BEHAVIOR" in os.environ.keys()
 
@@ -19,6 +21,10 @@ from rpmUtils import arch
 ### Helper classes ##########################################
 #############################################################
 
+# Dummy translation wrapper
+def _(msg):
+    return msg
+
 class FakeConf(object):
 
     def __init__(self):
@@ -81,6 +87,65 @@ class _Container(object):
     pass
 
 
+class DepSolveProgressCallBack:
+    """provides text output callback functions for Dependency Solver callback"""
+    
+    def __init__(self):
+        """requires yum-cli log and errorlog functions as arguments"""
+        self.verbose_logger = logging.getLogger("yum.verbose.cli")
+        self.loops = 0
+    
+    def pkgAdded(self, pkgtup, mode):
+        modedict = { 'i': _('installed'),
+                     'u': _('updated'),
+                     'o': _('obsoleted'),
+                     'e': _('erased')}
+        (n, a, e, v, r) = pkgtup
+        modeterm = modedict[mode]
+        self.verbose_logger.log(logginglevels.INFO_2,
+            _('---> Package %s.%s %s:%s-%s set to be %s'), n, a, e, v, r,
+            modeterm)
+        
+    def start(self):
+        self.loops += 1
+        
+    def tscheck(self):
+        self.verbose_logger.log(logginglevels.INFO_2, _('--> Running transaction check'))
+        
+    def restartLoop(self):
+        self.loops += 1
+        self.verbose_logger.log(logginglevels.INFO_2,
+            _('--> Restarting Dependency Resolution with new changes.'))
+        self.verbose_logger.debug('---> Loop Number: %d', self.loops)
+    
+    def end(self):
+        self.verbose_logger.log(logginglevels.INFO_2,
+            _('--> Finished Dependency Resolution'))
+
+    
+    def procReq(self, name, formatted_req):
+        self.verbose_logger.log(logginglevels.INFO_2,
+            _('--> Processing Dependency: %s for package: %s'), formatted_req,
+            name)
+        
+    
+    def unresolved(self, msg):
+        self.verbose_logger.log(logginglevels.INFO_2, _('--> Unresolved Dependency: %s'),
+            msg)
+
+    
+    def procConflict(self, name, confname):
+        self.verbose_logger.log(logginglevels.INFO_2,
+            _('--> Processing Conflict: %s conflicts %s'), name, confname)
+
+    def transactionPopulation(self):
+        self.verbose_logger.log(logginglevels.INFO_2, _('--> Populating transaction set '
+            'with selected packages. Please wait.'))
+    
+    def downloadHeader(self, name):
+        self.verbose_logger.log(logginglevels.INFO_2, _('---> Downloading header for %s '
+            'to pack into transaction set.'), name)
+      
 #######################################################################
 ### Abstract super class for test cases ###############################
 #######################################################################
@@ -179,6 +244,10 @@ class DepsolveTests(_DepsolveTestsBase):
         # XXX this side-affect is hacky:
         self.tsInfo.setDatabases(self.rpmdb, self.xsack)
 
+    def resetTsInfo(self):
+        self.tsInfo = transactioninfo.TransactionData()
+        
+
     def resolveCode(self):
         solver = YumBase()
         solver.conf = FakeConf()
commit a71482d1f45a2dfa531fedbef16dd3c7ffc7c607
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Tue Oct 28 08:39:24 2008 +0100

    remove failing skip-broken test and add FIXME note the the working one, it causes to much confusion when testing the skipbroken code

diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 7af855e..977a0c2 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -378,35 +378,12 @@ class SkipBrokenTests(DepsolveTests):
         po2.addProvides('barlib', 'EQ', ('0', '2', '0'))
         po3 = self.repoPackage('zap', '2')
         po3.addRequires('barlib', 'EQ', ('0', '2', '0'))
+        #FIXME: Find out why this line is needed, it should be auto updated by the solver.
         self.tsInfo.addUpdate(po1, oldpo=ipo1) # why is this needed, it should work without ?
         self.tsInfo.addUpdate(po3, oldpo=ipo3)
         self.assertEquals('ok', *self.resolveCode(skip=True))
         self.assertResult([po1,po2,po3])               
 
-    def testInstReqOldVer2(self):
-    	""" 
-    	zap-2.0 updates zap-1.0, but zap-2.0 needs barlib-2.0 provided by
-    	bar-2.0, but the installed foo, needs barlib-1.0,  so it need to be updated to
-    	foo-2.0, that requires barlib-2.0
-    	But it only work if foo-1.0 -> foo-2.0 is added as an update, it is not 
-    	pulled in by it self.
-    	FIXME: This test case will fail for now 
-    	"""
-        ipo1 = self.instPackage('foo', '1')
-        ipo1.addRequires('barlib', 'EQ', ('0', '1', '0'))
-        ipo2 = self.instPackage('bar', '1')
-        ipo2.addProvides('barlib', 'EQ', ('0', '1', '0'))
-        ipo3 = self.instPackage('zap', '1')
-        po1 = self.repoPackage('foo', '2')
-        po1.addRequires('barlib', 'EQ', ('0', '2', '0'))
-        po2 = self.repoPackage('bar', '2')
-        po2.addProvides('barlib', 'EQ', ('0', '2', '0'))
-        po3 = self.repoPackage('zap', '2')
-        po3.addRequires('barlib', 'EQ', ('0', '2', '0'))
-        #self.tsInfo.addUpdate(po1, oldpo=ipo1) # why is this needed, it should work without ?
-        self.tsInfo.addUpdate(po3, oldpo=ipo3)
-        self.assertEquals('ok', *self.resolveCode(skip=True))
-        self.assertResult([po1,po2,po3])               
     
     def resolveCode(self,skip = False):
         solver = YumBase()
commit 1a1c9181bf790ef72d03cff5b2ee10067b7d9fe1
Author: James Antill <james at and.org>
Date:   Tue Oct 28 00:26:57 2008 -0400

    Merge the txmbr and po loops in listTransaction, code tidy up

diff --git a/output.py b/output.py
index 3c2795c..d98e281 100644
--- a/output.py
+++ b/output.py
@@ -778,12 +778,29 @@ class YumOutput:
         self.tsInfo.makelists()
         out = u""
         pkglist_lines = []
-        #  Tried to do this statically using:
-        #   http://fedorapeople.org/~james/yum/commands/length_distributions.py
-        # but it sucked for corner cases, so this is dynamic...
-
         data  = {'n' : {}, 'v' : {}, 'r' : {}}
         a_wid = 0 # Arch can't get "that big" ... so always use the max.
+
+        def _add_line(lines, data, a_wid, po, obsoletes=[]):
+            (n,a,e,v,r) = po.pkgtup
+            evr = po.printVer()
+            repoid = po.repoid
+            pkgsize = float(po.size)
+            size = self.format_number(pkgsize)
+
+            if a is None: # gpgkeys are weird
+                a = 'noarch'
+
+            lines.append((n, a, evr, repoid, size, obsoletes))
+            #  Create a dict of field_length => number of packages, for
+            # each field.
+            for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
+                data[d].setdefault(v, 0)
+                data[d][v] += 1
+            if a_wid < len(a): # max() is only in 2.5.z
+                a_wid = len(a)
+            return a_wid
+
         for (action, pkglist) in [(_('Installing'), self.tsInfo.installed),
                             (_('Updating'), self.tsInfo.updated),
                             (_('Removing'), self.tsInfo.removed),
@@ -792,23 +809,7 @@ class YumOutput:
                             (_('Removing for dependencies'), self.tsInfo.depremoved)]:
             lines = []
             for txmbr in pkglist:
-                (n,a,e,v,r) = txmbr.pkgtup
-                evr = txmbr.po.printVer()
-                repoid = txmbr.repoid
-                pkgsize = float(txmbr.po.size)
-                size = self.format_number(pkgsize)
-
-                if a is None: # gpgkeys are weird
-                    a = 'noarch'
-
-                lines.append((n, a, evr, repoid, size, txmbr.obsoletes))
-                #  Create a dict of field_length => number of packages, for
-                # each field.
-                for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
-                    data[d].setdefault(v, 0)
-                    data[d][v] += 1
-                if a_wid < len(a): # max() is only in 2.5.z
-                    a_wid = len(a)
+                a_wid = _add_line(lines, data, a_wid, txmbr.po, txmbr.obsoletes)
 
             pkglist_lines.append((action, lines))
 
@@ -816,23 +817,7 @@ class YumOutput:
                                    self.skipped_packages),]:
             lines = []
             for po in pkglist:
-                (n,a,e,v,r) = po.pkgtup
-                evr = po.printVer()
-                repoid = po.repoid
-                pkgsize = float(po.size)
-                size = self.format_number(pkgsize)
-
-                if a is None: # gpgkeys are weird
-                    a = 'noarch'
-
-                lines.append((n, a, evr, repoid, size, []))
-                #  Create a dict of field_length => number of packages, for
-                # each field.
-                for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
-                    data[d].setdefault(v, 0)
-                    data[d][v] += 1
-                if a_wid < len(a): # max() is only in 2.5.z
-                    a_wid = len(a)
+                a_wid = _add_line(lines, data, a_wid, po)
 
             pkglist_lines.append((action, lines))
 
commit 5e405ec2e6651dc828c9b47075b6867a7e145536
Author: James Antill <james at and.org>
Date:   Mon Oct 27 23:59:37 2008 -0400

    Iterate skipped_packages properly as they are pos not txmbrs, fixes BZ 468785

diff --git a/output.py b/output.py
index 502aa4b..3c2795c 100644
--- a/output.py
+++ b/output.py
@@ -789,8 +789,7 @@ class YumOutput:
                             (_('Removing'), self.tsInfo.removed),
                             (_('Installing for dependencies'), self.tsInfo.depinstalled),
                             (_('Updating for dependencies'), self.tsInfo.depupdated),
-                            (_('Removing for dependencies'), self.tsInfo.depremoved),
-                            (_('Skipped (dependency problems)'), self.skipped_packages),]:
+                            (_('Removing for dependencies'), self.tsInfo.depremoved)]:
             lines = []
             for txmbr in pkglist:
                 (n,a,e,v,r) = txmbr.pkgtup
@@ -813,6 +812,30 @@ class YumOutput:
 
             pkglist_lines.append((action, lines))
 
+        for (action, pkglist) in [(_('Skipped (dependency problems)'),
+                                   self.skipped_packages),]:
+            lines = []
+            for po in pkglist:
+                (n,a,e,v,r) = po.pkgtup
+                evr = po.printVer()
+                repoid = po.repoid
+                pkgsize = float(po.size)
+                size = self.format_number(pkgsize)
+
+                if a is None: # gpgkeys are weird
+                    a = 'noarch'
+
+                lines.append((n, a, evr, repoid, size, []))
+                #  Create a dict of field_length => number of packages, for
+                # each field.
+                for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
+                    data[d].setdefault(v, 0)
+                    data[d][v] += 1
+                if a_wid < len(a): # max() is only in 2.5.z
+                    a_wid = len(a)
+
+            pkglist_lines.append((action, lines))
+
         if data['n']:
             data    = [data['n'],    {}, data['v'], data['r'], {}]
             columns = [1,         a_wid,         1,         1,  5]
commit d17e6ea6a853e5a184e26b501c0c28321e0e8740
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Mon Oct 27 16:11:52 2008 -0400

    merge changelog

diff --git a/ChangeLog b/ChangeLog
index 9ef67ab..452cc25 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,567 @@
+2008-10-27  Seth Vidal <skvidal at fedoraproject.org>
+
+	* yum.spec, yum/__init__.py: mark as 3.2.20
+
+2008-10-27  James Antill <james at and.org>
+
+	* yum/depsolve.py: Allow rm only trans. but allow later install too
+
+
+2008-10-27  James Antill <james at and.org>
+
+	* yum/depsolve.py: Add the pkgSack to the transaction, if we have a
+	remove followed by an install
+
+2008-10-27  James Antill <james at and.org>
+
+	* test/simpleupdatetests.py: Test update which requires specific
+	version, but not a later one
+
+2008-10-27  James Antill <james at and.org>
+
+	* output.py: Underflow for utf8 width in progressbar, too
+
+2008-10-27  James Antill <james at and.org>
+
+	* output.py: Workaround not having a real width() method for utf8
+
+2008-10-27  James Antill <james at and.org>
+
+	* output.py: Limit terminal width to 20 chars, do the right thing
+	for serial console
+
+2008-10-27  James Antill <james at and.org>
+
+	* yum/__init__.py: combat => compat, typos in comments
+
+2008-10-27  Tim Lauridsen <timlau at fedoraproject.org