[yum] update to latest HEAD

James Antill james at fedoraproject.org
Tue Dec 17 15:49:30 UTC 2013


commit 00ee93fb0a761adc195b5b12e6fe03b5ec7f1654
Author: James Antill <james at and.org>
Date:   Tue Dec 17 10:49:35 2013 -0500

    update to latest HEAD
    
    - Fix group update not trying to install all optional groups of evgrp.

 yum-HEAD.patch |  162 +++++++++++++++++++++++++++++--------------------------
 yum.spec       |    6 ++-
 2 files changed, 90 insertions(+), 78 deletions(-)
---
diff --git a/yum-HEAD.patch b/yum-HEAD.patch
index cf83514..43e006e 100644
--- a/yum-HEAD.patch
+++ b/yum-HEAD.patch
@@ -186543,7 +186543,7 @@ index c1af4ad..70de539 100644
      pass
      
 diff --git a/yum/__init__.py b/yum/__init__.py
-index 99039e0..633bd76 100644
+index 99039e0..b7eedf4 100644
 --- a/yum/__init__.py
 +++ b/yum/__init__.py
 @@ -21,6 +21,7 @@ The Yum RPM software updater.
@@ -189043,7 +189043,7 @@ index 99039e0..633bd76 100644
          for thisgroup in thesegroups:
              thisgroup.selected = False
              
-@@ -3034,13 +3952,106 @@ class YumBase(depsolve.Depsolve):
+@@ -3034,13 +3952,114 @@ class YumBase(depsolve.Depsolve):
                          for pkg in self.tsInfo.conditionals.get(txmbr.name, []):
                              self.tsInfo.remove(pkg.pkgtup)
          
@@ -189097,7 +189097,15 @@ index 99039e0..633bd76 100644
 +                    grps.add(grpid)
 +                if evgrp.environmentid in self.igroups.environments:
 +                    ievgrp = self.igroups.environments[evgrp.environmentid]
-+                    grps.update(ievgrp.grp_names)
++                    #  Add groups from the installed evgrp, for Eg. installed
++                    # only evgrps.
++                    for grp_name in ievgrp.grp_names:
++                        if grp_name not in self.igroups.groups:
++                            continue
++                        grp_evgrpid = self.igroups.groups[grp_name].environment
++                        if grp_evgrpid != evgrp.environmentid:
++                            continue
++                        grps.add(grp_name)
 +                else:
 +                    self.igroups.add_environment(evgrp.environmentid,
 +                                                 evgrp.allgroups)
@@ -189156,7 +189164,7 @@ index 99039e0..633bd76 100644
          # look it up in the self.localPackages first:
          for po in self.localPackages:
              if po.pkgtup == pkgtup:
-@@ -3049,7 +4060,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3049,7 +4068,7 @@ class YumBase(depsolve.Depsolve):
          pkgs = self.pkgSack.searchPkgTuple(pkgtup)
  
          if len(pkgs) == 0:
@@ -189165,7 +189173,7 @@ index 99039e0..633bd76 100644
              if allow_missing: #  This can happen due to excludes after .up has
                  return None   # happened.
              raise Errors.DepError, _('Package tuple %s could not be found in packagesack') % str(pkgtup)
-@@ -3065,13 +4076,21 @@ class YumBase(depsolve.Depsolve):
+@@ -3065,13 +4084,21 @@ class YumBase(depsolve.Depsolve):
          return result
  
      def getInstalledPackageObject(self, pkgtup):
@@ -189192,7 +189200,7 @@ index 99039e0..633bd76 100644
              raise Errors.RpmDBError, _('Package tuple %s could not be found in rpmdb') % str(pkgtup)
  
          # Dito. FIXME from getPackageObject() for len() > 1 ... :)
-@@ -3079,9 +4098,11 @@ class YumBase(depsolve.Depsolve):
+@@ -3079,9 +4106,11 @@ class YumBase(depsolve.Depsolve):
          return po
          
      def gpgKeyCheck(self):
@@ -189206,7 +189214,7 @@ index 99039e0..633bd76 100644
          gpgkeyschecked = self.conf.cachedir + '/.gpgkeyschecked.yum'
          if os.path.exists(gpgkeyschecked):
              return 1
-@@ -3106,9 +4127,13 @@ class YumBase(depsolve.Depsolve):
+@@ -3106,9 +4135,13 @@ class YumBase(depsolve.Depsolve):
              return 1
  
      def returnPackagesByDep(self, depstring):
@@ -189222,7 +189230,7 @@ index 99039e0..633bd76 100644
          if not depstring:
              return []
  
-@@ -3132,12 +4157,23 @@ class YumBase(depsolve.Depsolve):
+@@ -3132,12 +4165,23 @@ class YumBase(depsolve.Depsolve):
                          raise Errors.YumBaseError, _('Invalid version flag from: %s') % str(depstring)
                      depflags = SYMBOLFLAGS[flagsymbol]
  
@@ -189249,7 +189257,7 @@ index 99039e0..633bd76 100644
          # we get all sorts of randomness here
          errstring = depstring
          if type(depstring) not in types.StringTypes:
-@@ -3149,16 +4185,22 @@ class YumBase(depsolve.Depsolve):
+@@ -3149,16 +4193,22 @@ class YumBase(depsolve.Depsolve):
              raise Errors.YumBaseError, _('No Package found for %s') % errstring
          
          ps = ListPackageSack(pkglist)
@@ -189276,7 +189284,7 @@ index 99039e0..633bd76 100644
          if not depstring:
              return []
  
-@@ -3182,14 +4224,53 @@ class YumBase(depsolve.Depsolve):
+@@ -3182,14 +4232,53 @@ class YumBase(depsolve.Depsolve):
                          raise Errors.YumBaseError, _('Invalid version flag from: %s') % str(depstring)
                      depflags = SYMBOLFLAGS[flagsymbol]
  
@@ -189332,7 +189340,7 @@ index 99039e0..633bd76 100644
          
          
          if len(pkglist) == 0:
-@@ -3198,14 +4279,23 @@ class YumBase(depsolve.Depsolve):
+@@ -3198,14 +4287,23 @@ class YumBase(depsolve.Depsolve):
          if len(pkglist) == 1:
              return pkglist[0]
  
@@ -189362,7 +189370,7 @@ index 99039e0..633bd76 100644
          returnlist = []
          compatArchList = self.arch.get_arch_list(arch)
          multiLib = []
-@@ -3222,9 +4312,9 @@ class YumBase(depsolve.Depsolve):
+@@ -3222,9 +4320,9 @@ class YumBase(depsolve.Depsolve):
                  singleLib.append(po)
                  
          # we now have three lists.  find the best package(s) of each
@@ -189375,7 +189383,7 @@ index 99039e0..633bd76 100644
  
          if single_name and multi and single and multi.name != single.name:
              # Sinlge _must_ match multi, if we want a single package name
-@@ -3238,7 +4328,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3238,7 +4336,7 @@ class YumBase(depsolve.Depsolve):
          # if there's a noarch and it's newer than the multilib, we want
          # just the noarch.  otherwise, we want multi + single
          elif multi:
@@ -189384,7 +189392,7 @@ index 99039e0..633bd76 100644
              if best.arch == "noarch":
                  returnlist.append(no)
              else:
-@@ -3246,7 +4336,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3246,7 +4344,7 @@ class YumBase(depsolve.Depsolve):
                  if single: returnlist.append(single)
          # similar for the non-multilib case
          elif single:
@@ -189393,7 +189401,7 @@ index 99039e0..633bd76 100644
              if best.arch == "noarch":
                  returnlist.append(no)
              else:
-@@ -3350,28 +4440,76 @@ class YumBase(depsolve.Depsolve):
+@@ -3350,28 +4448,76 @@ class YumBase(depsolve.Depsolve):
              done = True
  
              slow = next_func(slow)
@@ -189477,7 +189485,7 @@ index 99039e0..633bd76 100644
          try:
              txmbrs = self.groupRemove(group_string)
          except yum.Errors.GroupsError:
-@@ -3387,6 +4525,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3387,6 +4533,8 @@ class YumBase(depsolve.Depsolve):
          assert pattern[0] == '@'
          grpid = pattern[1:]
  
@@ -189486,7 +189494,7 @@ index 99039e0..633bd76 100644
          thesegroups = self.comps.return_groups(grpid)
          if not thesegroups:
              raise Errors.GroupsError, _("No Group named %s exists") % to_unicode(grpid)
-@@ -3398,7 +4538,11 @@ class YumBase(depsolve.Depsolve):
+@@ -3398,7 +4546,11 @@ class YumBase(depsolve.Depsolve):
      def _minus_deselect(self, pattern):
          """ Remove things from the transaction, like kickstart. """
          assert pattern[0] == '-'
@@ -189499,7 +189507,7 @@ index 99039e0..633bd76 100644
  
          if pat and pat[0] == '@':
              pat = pat[1:]
-@@ -3437,14 +4581,87 @@ class YumBase(depsolve.Depsolve):
+@@ -3437,14 +4589,87 @@ class YumBase(depsolve.Depsolve):
              if flag not in self.tsInfo.probFilterFlags:
                  self.tsInfo.probFilterFlags.append(flag)
  
@@ -189593,7 +189601,7 @@ index 99039e0..633bd76 100644
          pkgs = []
          was_pattern = False
          if po:
-@@ -3464,9 +4681,14 @@ class YumBase(depsolve.Depsolve):
+@@ -3464,9 +4689,14 @@ class YumBase(depsolve.Depsolve):
                  if kwargs['pattern'] and kwargs['pattern'][0] == '@':
                      return self._at_groupinstall(kwargs['pattern'])
  
@@ -189608,7 +189616,7 @@ index 99039e0..633bd76 100644
                                                        ignore_case=False)
                  pkgs.extend(mypkgs)
                  # if we have anything left unmatched, let's take a look for it
-@@ -3477,20 +4699,12 @@ class YumBase(depsolve.Depsolve):
+@@ -3477,20 +4707,12 @@ class YumBase(depsolve.Depsolve):
                      self.verbose_logger.debug(_('Checking for virtual provide or file-provide for %s'), 
                          arg)
  
@@ -189635,7 +189643,7 @@ index 99039e0..633bd76 100644
              else:
                  nevra_dict = self._nevra_kwarg_parse(kwargs)
  
-@@ -3499,6 +4713,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3499,6 +4721,8 @@ class YumBase(depsolve.Depsolve):
                       ver=nevra_dict['version'], rel=nevra_dict['release'])
                  self._add_not_found_a(pkgs, nevra_dict)
                  
@@ -189644,7 +189652,7 @@ index 99039e0..633bd76 100644
              if pkgs:
                  # if was_pattern or nevra-dict['arch'] is none, take the list
                  # of arches based on our multilib_compat config and 
-@@ -3577,17 +4793,21 @@ class YumBase(depsolve.Depsolve):
+@@ -3577,17 +4801,21 @@ class YumBase(depsolve.Depsolve):
                      continue
              
              # make sure this shouldn't be passed to update:
@@ -189670,7 +189678,7 @@ index 99039e0..633bd76 100644
                  obsoleting_pkg = self._test_loop(po, self._pkg2obspkg)
              if obsoleting_pkg is not None:
                  # this is not a definitive check but it'll make sure we don't
-@@ -3600,23 +4820,23 @@ class YumBase(depsolve.Depsolve):
+@@ -3600,23 +4828,23 @@ class YumBase(depsolve.Depsolve):
                      already_obs = pkgs[0]
  
                  if already_obs:
@@ -189701,7 +189709,7 @@ index 99039e0..633bd76 100644
                      continue
  
              # make sure we don't have a name.arch of this already installed
-@@ -3630,8 +4850,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3630,8 +4858,8 @@ class YumBase(depsolve.Depsolve):
                          found = True
                          break
                  if not found:
@@ -189712,7 +189720,7 @@ index 99039e0..633bd76 100644
                      tx_return.extend(txmbrs)
                      continue
  
-@@ -3719,19 +4939,47 @@ class YumBase(depsolve.Depsolve):
+@@ -3719,19 +4947,47 @@ class YumBase(depsolve.Depsolve):
          return txmbr
  
      def update(self, po=None, requiringPo=None, update_to=False, **kwargs):
@@ -189767,7 +189775,7 @@ index 99039e0..633bd76 100644
          tx_return = []
          if not po and not kwargs: # update everything (the easy case)
              self.verbose_logger.log(logginglevels.DEBUG_2, _('Updating Everything'))
-@@ -3765,7 +5013,15 @@ class YumBase(depsolve.Depsolve):
+@@ -3765,7 +5021,15 @@ class YumBase(depsolve.Depsolve):
                      if new is None:
                          continue
                      tx_return.extend(self.update(po=new))
@@ -189784,7 +189792,7 @@ index 99039e0..633bd76 100644
              return tx_return
  
          # complications
-@@ -3787,13 +5043,16 @@ class YumBase(depsolve.Depsolve):
+@@ -3787,13 +5051,16 @@ class YumBase(depsolve.Depsolve):
                  return self._minus_deselect(kwargs['pattern'])
  
              if kwargs['pattern'] and kwargs['pattern'][0] == '@':
@@ -189803,7 +189811,7 @@ index 99039e0..633bd76 100644
  
              if not instpkgs and not availpkgs:
                  depmatches = []
-@@ -3805,6 +5064,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3805,6 +5072,8 @@ class YumBase(depsolve.Depsolve):
                  except yum.Errors.YumBaseError, e:
                      self.logger.critical(_('%s') % e)
  
@@ -189812,7 +189820,7 @@ index 99039e0..633bd76 100644
                  if update_to:
                      availpkgs.extend(depmatches)
                  else:
-@@ -3816,9 +5077,12 @@ class YumBase(depsolve.Depsolve):
+@@ -3816,9 +5085,12 @@ class YumBase(depsolve.Depsolve):
              try:
                  if update_to:
                      m = []
@@ -189826,7 +189834,7 @@ index 99039e0..633bd76 100644
                      m = self.pkgSack.returnNewestByNameArch(patterns=pats)
              except Errors.PackageSackError:
                  m = []
-@@ -3843,7 +5107,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3843,7 +5115,7 @@ class YumBase(depsolve.Depsolve):
                      availpkgs = self._compare_providers(availpkgs, requiringPo)
                      availpkgs = map(lambda x: x[0], availpkgs)
                  elif not availpkgs:
@@ -189835,7 +189843,7 @@ index 99039e0..633bd76 100644
         
          # for any thing specified
          # get the list of available pkgs matching it (or take the po)
-@@ -3879,6 +5143,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3879,6 +5151,7 @@ class YumBase(depsolve.Depsolve):
                      if obsoleting_pkg is None:
                          continue
                      obs_pkgs.append(obsoleting_pkg)
@@ -189843,7 +189851,7 @@ index 99039e0..633bd76 100644
                  for obsoleting_pkg in packagesNewestByName(obs_pkgs):
                      tx_return.extend(self.install(po=obsoleting_pkg))
              for available_pkg in availpkgs:
-@@ -3920,11 +5185,29 @@ class YumBase(depsolve.Depsolve):
+@@ -3920,11 +5193,29 @@ class YumBase(depsolve.Depsolve):
                      tx_return.append(txmbr)
                          
          for available_pkg in availpkgs:
@@ -189873,7 +189881,7 @@ index 99039e0..633bd76 100644
                  self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is obsoleted: %s'), available_pkg)
                  tx_return.extend(self.update(po=obsoleting_pkg))
                  continue
-@@ -3985,11 +5268,18 @@ class YumBase(depsolve.Depsolve):
+@@ -3985,11 +5276,18 @@ class YumBase(depsolve.Depsolve):
          return tx_return
          
      def remove(self, po=None, **kwargs):
@@ -189897,7 +189905,7 @@ index 99039e0..633bd76 100644
          if not po and not kwargs:
              raise Errors.RemoveError, 'Nothing specified to remove'
          
-@@ -4008,6 +5298,10 @@ class YumBase(depsolve.Depsolve):
+@@ -4008,6 +5306,10 @@ class YumBase(depsolve.Depsolve):
                      return self._at_groupremove(kwargs['pattern'])
  
                  (e,m,u) = self.rpmdb.matchPackageNames([kwargs['pattern']])
@@ -189908,7 +189916,7 @@ index 99039e0..633bd76 100644
                  pkgs.extend(e)
                  pkgs.extend(m)
                  if u:
-@@ -4018,6 +5312,10 @@ class YumBase(depsolve.Depsolve):
+@@ -4018,6 +5320,10 @@ class YumBase(depsolve.Depsolve):
                      except yum.Errors.YumBaseError, e:
                          self.logger.critical(_('%s') % e)
                      
@@ -189919,7 +189927,7 @@ index 99039e0..633bd76 100644
                      if not depmatches:
                          arg = to_unicode(arg)
                          self.logger.critical(_('No Match for argument: %s') % to_unicode(arg))
-@@ -4055,17 +5353,19 @@ class YumBase(depsolve.Depsolve):
+@@ -4055,17 +5361,19 @@ class YumBase(depsolve.Depsolve):
          return tx_return
  
      def installLocal(self, pkg, po=None, updateonly=False):
@@ -189949,7 +189957,7 @@ index 99039e0..633bd76 100644
          # read in the package into a YumLocalPackage Object
          # append it to self.localPackages
          # check if it can be installed or updated based on nevra versus rpmdb
-@@ -4183,16 +5483,15 @@ class YumBase(depsolve.Depsolve):
+@@ -4183,16 +5491,15 @@ class YumBase(depsolve.Depsolve):
          return tx_return
  
      def reinstallLocal(self, pkg, po=None):
@@ -189974,7 +189982,7 @@ index 99039e0..633bd76 100644
          if not po:
              try:
                  po = YumUrlPackage(self, ts=self.rpmdb.readOnlyTS(), url=pkg,
-@@ -4215,13 +5514,29 @@ class YumBase(depsolve.Depsolve):
+@@ -4215,13 +5522,29 @@ class YumBase(depsolve.Depsolve):
          return self.reinstall(po=po)
  
      def reinstall(self, po=None, **kwargs):
@@ -190007,7 +190015,7 @@ index 99039e0..633bd76 100644
          tx_mbrs = []
          if po: # The po, is the "available" po ... we want the installed po
              tx_mbrs.extend(self.remove(pkgtup=po.pkgtup))
-@@ -4240,10 +5555,11 @@ class YumBase(depsolve.Depsolve):
+@@ -4240,10 +5563,11 @@ class YumBase(depsolve.Depsolve):
              # pkgs that are obsolete.
              old_conf_obs = self.conf.obsoletes
              self.conf.obsoletes = False
@@ -190021,7 +190029,7 @@ index 99039e0..633bd76 100644
              self.conf.obsoletes = old_conf_obs
              if len(members) == 0:
                  self.tsInfo.remove(item.pkgtup)
-@@ -4259,16 +5575,15 @@ class YumBase(depsolve.Depsolve):
+@@ -4259,16 +5583,15 @@ class YumBase(depsolve.Depsolve):
          return tx_mbrs
          
      def downgradeLocal(self, pkg, po=None):
@@ -190046,7 +190054,7 @@ index 99039e0..633bd76 100644
          if not po:
              try:
                  po = YumUrlPackage(self, ts=self.rpmdb.readOnlyTS(), url=pkg,
-@@ -4309,13 +5624,19 @@ class YumBase(depsolve.Depsolve):
+@@ -4309,13 +5632,19 @@ class YumBase(depsolve.Depsolve):
          return False
          
      def downgrade(self, po=None, **kwargs):
@@ -190073,7 +190081,7 @@ index 99039e0..633bd76 100644
          if not po and not kwargs:
              raise Errors.DowngradeError, 'Nothing specified to downgrade'
  
-@@ -4397,6 +5718,10 @@ class YumBase(depsolve.Depsolve):
+@@ -4397,6 +5726,10 @@ class YumBase(depsolve.Depsolve):
          # installed version. Indexed fromn the latest installed pkgtup.
          downgrade_apkgs = {}
          for pkg in sorted(apkgs):
@@ -190084,7 +190092,7 @@ index 99039e0..633bd76 100644
              na  = (pkg.name, pkg.arch)
  
              # Here we allow downgrades from .i386 => .noarch, or .i586 => .i386
-@@ -4421,6 +5746,9 @@ class YumBase(depsolve.Depsolve):
+@@ -4421,6 +5754,9 @@ class YumBase(depsolve.Depsolve):
                  warned_nas.add(na)
                  continue
  
@@ -190094,7 +190102,7 @@ index 99039e0..633bd76 100644
              if pkg.verGE(lipkg):
                  if na not in warned_nas:
                      msg = _('Only Upgrade available on package: %s') % pkg
-@@ -4457,7 +5785,7 @@ class YumBase(depsolve.Depsolve):
+@@ -4457,7 +5793,7 @@ class YumBase(depsolve.Depsolve):
          if e and v and r:
              evr = '%s:%s-%s' % (e, v, r)
          elif v and r:
@@ -190103,7 +190111,7 @@ index 99039e0..633bd76 100644
          elif e and v:
              evr = '%s:%s' % (e, v)
          elif v: # e and r etc. is just too weird to print
-@@ -4500,12 +5828,24 @@ class YumBase(depsolve.Depsolve):
+@@ -4500,12 +5836,24 @@ class YumBase(depsolve.Depsolve):
  
          return returndict
  
@@ -190131,7 +190139,7 @@ index 99039e0..633bd76 100644
          old_conf_obs = self.conf.obsoletes
          self.conf.obsoletes = False
          done = False
-@@ -4515,19 +5855,46 @@ class YumBase(depsolve.Depsolve):
+@@ -4515,19 +5863,46 @@ class YumBase(depsolve.Depsolve):
                      done = True
          for pkg in transaction.trans_data:
              if pkg.state == 'Downgrade':
@@ -190178,7 +190186,7 @@ index 99039e0..633bd76 100644
                  if self.install(pkgtup=pkg.pkgtup):
                      done = True
          for pkg in transaction.trans_data:
-@@ -4538,8 +5905,14 @@ class YumBase(depsolve.Depsolve):
+@@ -4538,8 +5913,14 @@ class YumBase(depsolve.Depsolve):
          return done
  
      def history_undo(self, transaction):
@@ -190195,7 +190203,7 @@ index 99039e0..633bd76 100644
          # NOTE: This is somewhat basic atm. ... for instance we don't check
          #       that we are going from the old new version. However it's still
          #       better than the RHN rollback code, and people pay for that :).
-@@ -4616,7 +5989,7 @@ class YumBase(depsolve.Depsolve):
+@@ -4616,7 +5997,7 @@ class YumBase(depsolve.Depsolve):
  
          except urlgrabber.grabber.URLGrabError, e:
              raise Errors.YumBaseError(_('GPG key retrieval failed: ') +
@@ -190204,7 +190212,7 @@ index 99039e0..633bd76 100644
                                        
          # check for a .asc file accompanying it - that's our gpg sig on the key
          # suck it down and do the check
-@@ -4649,7 +6022,7 @@ class YumBase(depsolve.Depsolve):
+@@ -4649,7 +6030,7 @@ class YumBase(depsolve.Depsolve):
              keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
          except ValueError, e:
              raise Errors.YumBaseError(_('Invalid GPG Key from %s: %s') % 
@@ -190213,7 +190221,7 @@ index 99039e0..633bd76 100644
          keys = []
          for keyinfo in keys_info:
              thiskey = {}
-@@ -4674,39 +6047,49 @@ class YumBase(depsolve.Depsolve):
+@@ -4674,39 +6055,49 @@ class YumBase(depsolve.Depsolve):
              if pkgs:
                  pkgs = sorted(pkgs)[-1]
                  msg = (_('Importing %s key 0x%s:\n'
@@ -190281,7 +190289,7 @@ index 99039e0..633bd76 100644
          user_cb_fail = False
          for keyurl in keyurls:
              keys = self._retrievePublicKey(keyurl, repo)
-@@ -4725,7 +6108,9 @@ class YumBase(depsolve.Depsolve):
+@@ -4725,7 +6116,9 @@ class YumBase(depsolve.Depsolve):
                      # Try installing/updating GPG key
                      self._getKeyImportMessage(info, keyurl)
                      rc = False
@@ -190292,7 +190300,7 @@ index 99039e0..633bd76 100644
                          rc = True
                          
                      # grab the .sig/.asc for the keyurl, if it exists
-@@ -4751,8 +6136,8 @@ class YumBase(depsolve.Depsolve):
+@@ -4751,8 +6144,8 @@ class YumBase(depsolve.Depsolve):
                  ts = self.rpmdb.readOnlyTS()
                  result = ts.pgpImportPubkey(misc.procgpgkey(info['raw_key']))
                  if result != 0:
@@ -190303,7 +190311,7 @@ index 99039e0..633bd76 100644
                  self.logger.info(_('Key imported successfully'))
                  key_installed = True
  
-@@ -4760,18 +6145,20 @@ class YumBase(depsolve.Depsolve):
+@@ -4760,18 +6153,20 @@ class YumBase(depsolve.Depsolve):
              raise Errors.YumBaseError, _("Didn't install any keys")
  
          if not key_installed:
@@ -190329,7 +190337,7 @@ index 99039e0..633bd76 100644
      
      def _getAnyKeyForRepo(self, repo, destdir, keyurl_list, is_cakey=False, callback=None):
          """
-@@ -4788,6 +6175,18 @@ class YumBase(depsolve.Depsolve):
+@@ -4788,6 +6183,18 @@ class YumBase(depsolve.Depsolve):
          """
  
          key_installed = False
@@ -190348,7 +190356,7 @@ index 99039e0..633bd76 100644
          user_cb_fail = False
          for keyurl in keyurl_list:
              keys = self._retrievePublicKey(keyurl, repo, getSig=not is_cakey)
-@@ -4819,8 +6218,11 @@ class YumBase(depsolve.Depsolve):
+@@ -4819,8 +6226,11 @@ class YumBase(depsolve.Depsolve):
                  if not key_installed:
                      self._getKeyImportMessage(info, keyurl, keytype)
                      rc = False
@@ -190361,7 +190369,7 @@ index 99039e0..633bd76 100644
                      elif callback:
                          rc = callback({"repo": repo, "userid": info['userid'],
                                          "hexkeyid": info['hexkeyid'], "keyurl": keyurl,
-@@ -4835,7 +6237,8 @@ class YumBase(depsolve.Depsolve):
+@@ -4835,7 +6245,8 @@ class YumBase(depsolve.Depsolve):
                  # Import the key
                  result = misc.import_key_to_pubring(info['raw_key'], info['hexkeyid'], gpgdir=destdir)
                  if not result:
@@ -190371,7 +190379,7 @@ index 99039e0..633bd76 100644
                  self.logger.info(_('Key imported successfully'))
                  key_installed = True
                  # write out the key id to imported_cakeys in the repos basedir
-@@ -4851,36 +6254,35 @@ class YumBase(depsolve.Depsolve):
+@@ -4851,36 +6262,35 @@ class YumBase(depsolve.Depsolve):
                              pass
  
          if not key_installed and user_cb_fail:
@@ -190424,7 +190432,7 @@ index 99039e0..633bd76 100644
          self._getAnyKeyForRepo(repo, repo.gpgcadir, repo.gpgcakey, is_cakey=True, callback=callback)
  
      def _limit_installonly_pkgs(self):
-@@ -4889,7 +6291,7 @@ class YumBase(depsolve.Depsolve):
+@@ -4889,7 +6299,7 @@ class YumBase(depsolve.Depsolve):
              New in 3.2.24: Obey yumdb_info.installonly data. """
  
          def _sort_and_filter_installonly(pkgs):
@@ -190433,7 +190441,7 @@ index 99039e0..633bd76 100644
                  using the yumdb. """
              ret_beg = []
              ret_mid = []
-@@ -4917,6 +6319,10 @@ class YumBase(depsolve.Depsolve):
+@@ -4917,6 +6327,10 @@ class YumBase(depsolve.Depsolve):
  
          if self.conf.installonly_limit < 1 :
              return 
@@ -190444,7 +190452,7 @@ index 99039e0..633bd76 100644
              
          toremove = []
          #  We "probably" want to use either self.ts or self.rpmdb.ts if either
-@@ -4926,23 +6332,30 @@ class YumBase(depsolve.Depsolve):
+@@ -4926,23 +6340,30 @@ class YumBase(depsolve.Depsolve):
          # so self.rpmdb.ts should be valid.
          ts = self.rpmdb.readOnlyTS()
          (cur_kernel_v, cur_kernel_r) = misc.get_running_kernel_version_release(ts)
@@ -190483,7 +190491,7 @@ index 99039e0..633bd76 100644
              for po in installed:
                  if (po.version, po.release) == (cur_kernel_v, cur_kernel_r): 
                      # don't remove running
-@@ -4959,19 +6372,22 @@ class YumBase(depsolve.Depsolve):
+@@ -4959,19 +6380,22 @@ class YumBase(depsolve.Depsolve):
              txmbr.depends_on.append(rel)
  
      def processTransaction(self, callback=None,rpmTestDisplay=None, rpmDisplay=None):
@@ -190519,7 +190527,7 @@ index 99039e0..633bd76 100644
          
          if not callback:
              callback = callbacks.ProcessTransNoOutputCallback()
-@@ -5062,8 +6478,8 @@ class YumBase(depsolve.Depsolve):
+@@ -5062,8 +6486,8 @@ class YumBase(depsolve.Depsolve):
                  raise Errors.YumRPMCheckError, retmsgs
              retmsgs = [_('ERROR with transaction check vs depsolve:')]
              retmsgs.extend(msgs) 
@@ -190530,7 +190538,7 @@ index 99039e0..633bd76 100644
              raise Errors.YumRPMCheckError,retmsgs
          
          tsConf = {}
-@@ -5114,13 +6530,19 @@ class YumBase(depsolve.Depsolve):
+@@ -5114,13 +6538,19 @@ class YumBase(depsolve.Depsolve):
          return results
  
      def add_enable_repo(self, repoid, baseurls=[], mirrorlist=None, **kwargs):
@@ -190557,7 +190565,7 @@ index 99039e0..633bd76 100644
          # out of place fixme - maybe we should make this the default repo addition
          # routine and use it from getReposFromConfigFile(), etc.
          newrepo = yumRepo.YumRepository(repoid)
-@@ -5167,9 +6589,15 @@ class YumBase(depsolve.Depsolve):
+@@ -5167,9 +6597,15 @@ class YumBase(depsolve.Depsolve):
  
      def setCacheDir(self, force=False, tmpdir=None, reuse=True,
                      suffix='/$basearch/$releasever'):
@@ -190576,7 +190584,7 @@ index 99039e0..633bd76 100644
          if not force and os.geteuid() == 0:
              return True # We are root, not forced, so happy with the global dir.
          if tmpdir is None:
-@@ -5179,7 +6607,7 @@ class YumBase(depsolve.Depsolve):
+@@ -5179,7 +6615,7 @@ class YumBase(depsolve.Depsolve):
          try:
              cachedir = misc.getCacheDir(tmpdir, reuse)
          except (IOError, OSError), e:
@@ -190585,7 +190593,7 @@ index 99039e0..633bd76 100644
              cachedir = None
              
          if cachedir is None:
-@@ -5190,6 +6618,8 @@ class YumBase(depsolve.Depsolve):
+@@ -5190,6 +6626,8 @@ class YumBase(depsolve.Depsolve):
              self.prerepoconf.cachedir = cachedir
          else:
              self.repos.setCacheDir(cachedir)
@@ -190594,7 +190602,7 @@ index 99039e0..633bd76 100644
          self.conf.cachedir = cachedir
          return True # We got a new cache dir
  
-@@ -5220,13 +6650,24 @@ class YumBase(depsolve.Depsolve):
+@@ -5220,13 +6658,24 @@ class YumBase(depsolve.Depsolve):
          self.history.write_addon_data('config-repos', myrepos)
          
      def verify_plugins_cb(self, verify_package):
@@ -190622,7 +190630,7 @@ index 99039e0..633bd76 100644
          if self.tsInfo._unresolvedMembers:
              if auto:
                  self.logger.critical(_("Dependencies not solved. Will not save unresolved transaction."))
-@@ -5234,7 +6675,7 @@ class YumBase(depsolve.Depsolve):
+@@ -5234,7 +6683,7 @@ class YumBase(depsolve.Depsolve):
              raise Errors.YumBaseError(_("Dependencies not solved. Will not save unresolved transaction."))
          
          if not filename:
@@ -190631,7 +190639,7 @@ index 99039e0..633bd76 100644
              fd,filename = tempfile.mkstemp(suffix='.yumtx', prefix=prefix)
              f = os.fdopen(fd, 'w')
          else:
-@@ -5244,13 +6685,17 @@ class YumBase(depsolve.Depsolve):
+@@ -5244,13 +6693,17 @@ class YumBase(depsolve.Depsolve):
          
          msg = "%s\n" % self.rpmdb.simpleVersion(main_only=True)[0]
          msg += "%s\n" % self.ts.getTsFlags()
@@ -190652,7 +190660,7 @@ index 99039e0..633bd76 100644
          msg += "%s\n" % len(self.tsInfo.getMembers())
          for txmbr in self.tsInfo.getMembers():
              msg += txmbr._dump()
-@@ -5260,42 +6705,84 @@ class YumBase(depsolve.Depsolve):
+@@ -5260,42 +6713,84 @@ class YumBase(depsolve.Depsolve):
          except (IOError, OSError), e:
              self._ts_save_file = None
              if auto:
@@ -190749,7 +190757,7 @@ index 99039e0..633bd76 100644
              if ignorerpm:
                  msg += _(" ignoring, as requested.")
                  self.logger.critical(_(msg))
-@@ -5318,8 +6805,17 @@ class YumBase(depsolve.Depsolve):
+@@ -5318,8 +6813,17 @@ class YumBase(depsolve.Depsolve):
          numrepos = int(data[2].strip())
          repos = []
          rindex=3+numrepos
@@ -190768,7 +190776,7 @@ index 99039e0..633bd76 100644
  
          # pkgs/txmbrs
          numpkgs = int(data[rindex].strip())
-@@ -5329,6 +6825,7 @@ class YumBase(depsolve.Depsolve):
+@@ -5329,6 +6833,7 @@ class YumBase(depsolve.Depsolve):
          pkgcount = 0
          pkgprob = False
          curpkg = None
@@ -190776,7 +190784,7 @@ index 99039e0..633bd76 100644
          for l in data[pkgstart:]:
              l = l.rstrip()
              # our main txmbrs
-@@ -5356,6 +6853,7 @@ class YumBase(depsolve.Depsolve):
+@@ -5356,6 +6861,7 @@ class YumBase(depsolve.Depsolve):
                      if not ignoremissing:
                          raise Errors.YumBaseError(msg)
                      else:
@@ -190784,7 +190792,7 @@ index 99039e0..633bd76 100644
                          self.logger.critical(msg)
                  else:
                      pkgcount += 1
-@@ -5432,12 +6930,18 @@ class YumBase(depsolve.Depsolve):
+@@ -5432,12 +6938,18 @@ class YumBase(depsolve.Depsolve):
          if pkgprob:
              msg = _("Transaction members, relations are missing or ts has been modified,")
              if ignoremissing:
@@ -190803,7 +190811,7 @@ index 99039e0..633bd76 100644
          return self.tsInfo.getMembers()
  
      def _remove_old_deps(self):
-@@ -5470,18 +6974,6 @@ class YumBase(depsolve.Depsolve):
+@@ -5470,18 +6982,6 @@ class YumBase(depsolve.Depsolve):
                      if requiring == required: # if they are self-requiring skip them
                          continue
                          
@@ -190822,7 +190830,7 @@ index 99039e0..633bd76 100644
                      #for tbi_pkg in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
                      #   for reqtuple in tbi_pkg.po.requires:
                      #        if required.provides_for(reqtuple):
-@@ -5533,7 +7025,24 @@ class YumBase(depsolve.Depsolve):
+@@ -5533,7 +7033,24 @@ class YumBase(depsolve.Depsolve):
                      # Debugging output
                      self.verbose_logger.log(logginglevels.DEBUG_2, _("%s has revdep %s which was user-installed."), pkg, curpkg)
                      ok_to_remove[pkg] = False
@@ -190847,7 +190855,7 @@ index 99039e0..633bd76 100644
                  visited[curpkg] = True
              all_leaves_visited = True
              leaves = curpkg.requiring_packages()
-@@ -5547,4 +7056,3 @@ class YumBase(depsolve.Depsolve):
+@@ -5547,4 +7064,3 @@ class YumBase(depsolve.Depsolve):
          # Debugging output
          self.verbose_logger.log(logginglevels.DEBUG_2, _("%s has no user-installed revdeps."), pkg)
          return False
diff --git a/yum.spec b/yum.spec
index 052c8c3..9abd5db 100644
--- a/yum.spec
+++ b/yum.spec
@@ -60,7 +60,7 @@ BuildRequires: bash-completion
 Summary: RPM package installer/updater/manager
 Name: yum
 Version: 3.4.3
-Release: 123%{?dist}
+Release: 124%{?dist}
 License: GPLv2+
 Group: System Environment/Base
 Source0: http://yum.baseurl.org/download/3.4/%{name}-%{version}.tar.gz
@@ -444,6 +444,10 @@ exit 0
 %endif
 
 %changelog
+* Tue Dec 17 2013 James Antill <james at fedoraproject.org> - 3.4.3-124
+- update to latest HEAD
+- Fix group update not trying to install all optional groups of evgrp.
+
 * Mon Dec 16 2013 James Antill <james at fedoraproject.org> - 3.4.3-123
 - update to latest HEAD
 - Lots of "minor" group changes to hopefully fix a bunch of the bugs. Eg.


More information about the scm-commits mailing list