diff --git a/yum-HEAD.patch b/yum-HEAD.patch index 04000e2..d3fa4ed 100644 --- a/yum-HEAD.patch +++ b/yum-HEAD.patch @@ -4870,7 +4870,7 @@ index c60fa08..0000000 -ts run -exit diff --git a/etc/yum.bash b/etc/yum.bash -index f1e06e8..d0a8a0f 100644 +index f1e06e8..fa99eb7 100644 --- a/etc/yum.bash +++ b/etc/yum.bash @@ -1,53 +1,27 @@ @@ -5038,7 +5038,7 @@ index f1e06e8..d0a8a0f 100644 - list makecache provides reinstall remove repolist resolvedep search - shell update upgrade version ) + local cmds=( autoremove check check-update clean deplist distro-sync downgrade -+ groups help history info install list load-transaction makecache provides ++ erase groups help history info install list load-transaction makecache provides + reinstall remove repolist search shell update upgrade version ) local i c cmd subcmd @@ -193216,7 +193216,7 @@ index d09511f..69f8e2e 100644 # mainconf = readMainConfig(readStartupConfig('/etc/yum/yum.conf', '/')) # print mainconf.cachedir diff --git a/yum/depsolve.py b/yum/depsolve.py -index 6d744c0..1840b43 100644 +index 6d744c0..cb0ebea 100644 --- a/yum/depsolve.py +++ b/yum/depsolve.py @@ -31,13 +31,15 @@ from transactioninfo import TransactionMember @@ -193485,7 +193485,7 @@ index 6d744c0..1840b43 100644 best = pkgresults[0][0] if self.rpmdb.contains(po=best): # is it already installed? -@@ -609,13 +718,21 @@ class Depsolve(object): +@@ -609,13 +718,31 @@ class Depsolve(object): # FIXME: we should probably handle updating multiple packages... txmbr = self.tsInfo.addUpdate(best, inst[0]) txmbr.setAsDep(po=requiringPo) @@ -193504,12 +193504,22 @@ index 6d744c0..1840b43 100644 + # Stuff looks like: ('/foo', 0, '') ... might be just testing + # noise, but meh. + reqtuple = (requirement[0], requirement[1], (None, None, None)) -+ else: ++ elif len(requirement) == 3 and len(requirement[2]) == 3: ++ # Without the above check, we've hit this in mash: ++ # File "/usr/.../yum/__init__.py", line 4862, in install ++ # if not obsoleting_pkg.provides_for(kwargs['provides_for']): ++ # File "/usr/.../yum/packages.py", line 594, in provides_for ++ # if self.checkPrco('provides', reqtuple): ++ # File "/usr/.../yum/packages.py", line 544, in checkPrco ++ # (reqn, reqf, (reqe, reqv ,reqr)) = prcotuple ++ # ValueError: too many values to unpack + reqtuple = requirement ++ else: ++ reqtuple = misc.string_to_prco_tuple(needname + str(needflags) + needversion) txmbrs = self.install(best, provides_for=reqtuple) for txmbr in txmbrs: txmbr.setAsDep(po=requiringPo) -@@ -696,6 +813,13 @@ class Depsolve(object): +@@ -696,6 +823,13 @@ class Depsolve(object): self.tsInfo.remove(txmbr.pkgtup) def prof_resolveDeps(self): @@ -193523,7 +193533,7 @@ index 6d744c0..1840b43 100644 fn = "anaconda.prof.0" import hotshot, hotshot.stats prof = hotshot.Profile(fn) -@@ -709,6 +833,13 @@ class Depsolve(object): +@@ -709,6 +843,13 @@ class Depsolve(object): return rc def cprof_resolveDeps(self): @@ -193537,7 +193547,7 @@ index 6d744c0..1840b43 100644 import cProfile, pstats prof = cProfile.Profile() rc = prof.runcall(self.resolveDeps) -@@ -722,7 +853,17 @@ class Depsolve(object): +@@ -722,7 +863,17 @@ class Depsolve(object): return rc def resolveDeps(self, full_check=True, skipping_broken=False): @@ -193556,7 +193566,7 @@ index 6d744c0..1840b43 100644 if not len(self.tsInfo): return (0, [_('Success - empty transaction')]) -@@ -740,7 +881,11 @@ class Depsolve(object): +@@ -740,7 +891,11 @@ class Depsolve(object): if self.dsCallback: self.dsCallback.start() @@ -193568,7 +193578,7 @@ index 6d744c0..1840b43 100644 CheckDeps = True -@@ -778,6 +923,12 @@ class Depsolve(object): +@@ -778,6 +933,12 @@ class Depsolve(object): if checkdep: break # The next conflict might be the same pkg @@ -193581,7 +193591,7 @@ index 6d744c0..1840b43 100644 if CheckDeps: if self.dsCallback: self.dsCallback.restartLoop() self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop')) -@@ -920,9 +1071,12 @@ class Depsolve(object): +@@ -920,9 +1081,12 @@ class Depsolve(object): # if this is an update, we should check what the old # requires were to make things faster @@ -193596,7 +193606,7 @@ index 6d744c0..1840b43 100644 oldreqs = set(oldreqs) ret = [] -@@ -948,7 +1102,7 @@ class Depsolve(object): +@@ -948,7 +1112,7 @@ class Depsolve(object): continue for member in self.tsInfo.getMembersWithState( pkgtup=po.pkgtup, output_states=TS_INSTALL_STATES): @@ -193605,7 +193615,7 @@ index 6d744c0..1840b43 100644 return ret -@@ -974,12 +1128,36 @@ class Depsolve(object): +@@ -974,12 +1138,36 @@ class Depsolve(object): # FIXME: This is probably the best place to fix the postfix rename # problem long term (post .21) ... see compare_providers. for pkg, hits in self.tsInfo.getRequires(*prov).iteritems(): @@ -193643,7 +193653,7 @@ index 6d744c0..1840b43 100644 # We don't undo anything else here ... hopefully that's # fine. self.tsInfo.remove(txmbr.pkgtup) -@@ -1033,10 +1211,10 @@ class Depsolve(object): +@@ -1033,10 +1221,10 @@ class Depsolve(object): # get file requirements from new packages for txmbr in self._tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES): @@ -193656,7 +193666,7 @@ index 6d744c0..1840b43 100644 # check if file requires was already unresolved in update if name in self.installedUnresolvedFileRequires: already_broken = False -@@ -1050,6 +1228,7 @@ class Depsolve(object): +@@ -1050,6 +1238,7 @@ class Depsolve(object): nfileRequires.add(name) fileRequires.add(name) reverselookup.setdefault(name, []).append(txmbr.po.pkgtup) @@ -193664,7 +193674,7 @@ index 6d744c0..1840b43 100644 todel = [] for fname in self.installedFileProviders: -@@ -1149,7 +1328,74 @@ class Depsolve(object): +@@ -1149,7 +1338,74 @@ class Depsolve(object): self.rpmdb.transactionCacheConflictPackages(cpkgs) return ret @@ -193739,7 +193749,7 @@ index 6d744c0..1840b43 100644 lst = self.tsInfo.matchNaevr(name = pkgname) for txmbr in lst: if txmbr.output_state in TS_INSTALL_STATES: -@@ -1166,7 +1412,7 @@ class Depsolve(object): +@@ -1166,7 +1422,7 @@ class Depsolve(object): return True _isPackageInstalled = isPackageInstalled @@ -193748,7 +193758,7 @@ index 6d744c0..1840b43 100644 """take the list of pkgs and score them based on the requesting package return a dictionary of po=score""" self.verbose_logger.log(logginglevels.DEBUG_4, -@@ -1210,6 +1456,24 @@ class Depsolve(object): +@@ -1210,6 +1466,24 @@ class Depsolve(object): return None return x @@ -193773,7 +193783,7 @@ index 6d744c0..1840b43 100644 # Actual start of _compare_providers(). # Do a NameArch filtering, based on repo. __cmp__ -@@ -1332,6 +1596,29 @@ class Depsolve(object): +@@ -1332,6 +1606,29 @@ class Depsolve(object): _('common prefix of %s between %s and %s' % (cpl, po, reqpo))) pkgresults[po] += cpl*2 @@ -193803,7 +193813,7 @@ index 6d744c0..1840b43 100644 # If we have more than one "best", see what would happen if we picked # each package ... ie. what things do they require that _aren't_ already -@@ -1393,42 +1680,52 @@ class Depsolve(object): +@@ -1393,42 +1690,52 @@ class Depsolve(object): class DepCheck(object): diff --git a/yum.spec b/yum.spec index 479eb92..0a6ae3f 100644 --- a/yum.spec +++ b/yum.spec @@ -64,7 +64,7 @@ BuildRequires: bash-completion Summary: RPM package installer/updater/manager Name: yum Version: 3.4.3 -Release: 137%{?dist} +Release: 138%{?dist} License: GPLv2+ Group: System Environment/Base Source0: http://yum.baseurl.org/download/3.4/%{name}-%{version}.tar.gz @@ -503,6 +503,10 @@ exit 0 %endif %changelog +* Tue Feb 18 2014 James Antill - 3.4.3-138 +- update to latest HEAD +- Workaround for weird mash issue, probably. + * Mon Feb 17 2014 Valentina Mukhamedzhanova - 3.4.3-137 - update to latest HEAD - Fix debuginfo-install doLock() traceback. BZ 1062479