[yum] update to latest HEAD.
James Antill
james at fedoraproject.org
Fri Apr 26 20:51:05 UTC 2013
commit f3653270c2999ddb31e8cc1eb5b7f0569f7f796c
Author: James Antill <james at and.org>
Date: Fri Apr 26 16:50:57 2013 -0400
update to latest HEAD.
- Make --downloadonly skip userconfirm prompt.
- Turn metadata_expire off for yum-cron.
- Skip var_arch storage in yumdb.
yum-HEAD.patch | 247 +++++++++++++++++++++++++++++---------------------------
yum.spec | 8 ++-
2 files changed, 134 insertions(+), 121 deletions(-)
---
diff --git a/yum-HEAD.patch b/yum-HEAD.patch
index 8e08b99..923f4d4 100644
--- a/yum-HEAD.patch
+++ b/yum-HEAD.patch
@@ -99,7 +99,7 @@ index 2f6154e..2e5a052 100644
diff --git a/cli.py b/cli.py
old mode 100644
new mode 100755
-index 6056d38..c8a5554
+index 6056d38..e652a2f
--- a/cli.py
+++ b/cli.py
@@ -25,7 +25,7 @@ import sys
@@ -1692,7 +1692,7 @@ index 6056d38..c8a5554
def _promptWanted(self):
# shortcut for the always-off/always-on options
- if self.conf.assumeyes:
-+ if self.conf.assumeyes and not self.conf.assumeno:
++ if (self.conf.assumeyes or self.conf.downloadonly) and not self.conf.assumeno:
return False
if self.conf.alwaysprompt:
return True
@@ -183839,10 +183839,10 @@ index 0000000..28e1964
+- Check if we're running as root; exit nicely.
diff --git a/yum-cron/yum-cron.py b/yum-cron/yum-cron.py
new file mode 100755
-index 0000000..c62414e
+index 0000000..721bdcb
--- /dev/null
+++ b/yum-cron/yum-cron.py
-@@ -0,0 +1,1120 @@
+@@ -0,0 +1,1124 @@
+#!/usr/bin/python -tt
+import os
+import sys
@@ -184669,6 +184669,10 @@ index 0000000..c62414e
+
+ def populateUpdateMetadata(self):
+ """Populate the metadata for the packages in the update."""
++
++ for repo in self.repos.findRepos('*'):
++ repo.metadata_expire = 0
++
+ self.upinfo
+
+ def refreshUpdates(self):
@@ -186116,7 +186120,7 @@ index c1af4ad..e3e3956 100644
pass
diff --git a/yum/__init__.py b/yum/__init__.py
-index 99039e0..543ca2d 100644
+index 99039e0..50e2fad 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -21,6 +21,7 @@ The Yum RPM software updater.
@@ -186988,7 +186992,7 @@ index 99039e0..543ca2d 100644
for txmbr in self.tsInfo:
if txmbr.output_state in TS_INSTALL_STATES:
if not self.rpmdb.contains(po=txmbr.po):
-@@ -1596,12 +1840,18 @@ class YumBase(depsolve.Depsolve):
+@@ -1596,12 +1840,21 @@ class YumBase(depsolve.Depsolve):
' but is not!' % txmbr.po))
# Note: Get Panu to do te.Failed() so we don't have to
txmbr.output_state = TS_FAILED
@@ -187001,13 +187005,16 @@ index 99039e0..543ca2d 100644
po.yumdb_info.reason = txmbr.reason
po.yumdb_info.releasever = self.conf.yumvar['releasever']
+ for var in self.conf.yumvar: # Store all yum variables.
++ # Skip some of the variables...
+ if var == 'releasever': continue
+ if var == 'basearch': continue # This "never" changes.
++ if var == 'arch': continue
++ # Skip uuid?
+ setattr(po.yumdb_info, 'var_' + var, self.conf.yumvar[var])
if hasattr(self, 'args') and self.args:
po.yumdb_info.command_line = ' '.join(self.args)
elif hasattr(self, 'cmds') and self.cmds:
-@@ -1630,6 +1880,10 @@ class YumBase(depsolve.Depsolve):
+@@ -1630,6 +1883,10 @@ class YumBase(depsolve.Depsolve):
if md:
po.yumdb_info.from_repo_timestamp = str(md.timestamp)
@@ -187018,7 +187025,7 @@ index 99039e0..543ca2d 100644
loginuid = misc.getloginuid()
if txmbr.updates or txmbr.downgrades or txmbr.reinstall:
if txmbr.updates:
-@@ -1640,11 +1894,16 @@ class YumBase(depsolve.Depsolve):
+@@ -1640,11 +1897,16 @@ class YumBase(depsolve.Depsolve):
opo = po
if 'installed_by' in opo.yumdb_info:
po.yumdb_info.installed_by = opo.yumdb_info.installed_by
@@ -187035,7 +187042,7 @@ index 99039e0..543ca2d 100644
# Remove old ones after installing new ones, so we can copy values.
for txmbr in self.tsInfo:
if txmbr.output_state in TS_INSTALL_STATES:
-@@ -1662,10 +1921,13 @@ class YumBase(depsolve.Depsolve):
+@@ -1662,10 +1924,13 @@ class YumBase(depsolve.Depsolve):
' but is not!' % txmbr.po))
# Note: Get Panu to do te.Failed() so we don't have to
txmbr.output_state = TS_FAILED
@@ -187049,7 +187056,7 @@ index 99039e0..543ca2d 100644
self.verbose_logger.log(logginglevels.DEBUG_2, 'What is this? %s' % txmbr.po)
self.plugins.run('postverifytrans')
-@@ -1680,10 +1942,11 @@ class YumBase(depsolve.Depsolve):
+@@ -1680,10 +1945,11 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.debug('VerifyTransaction time: %0.3f' % (time.time() - vt_st))
def costExcludePackages(self):
@@ -187065,7 +187072,7 @@ index 99039e0..543ca2d 100644
# if all the repo.costs are equal then don't bother running things
costs = {}
for r in self.repos.listEnabled():
-@@ -1705,10 +1968,12 @@ class YumBase(depsolve.Depsolve):
+@@ -1705,10 +1971,12 @@ class YumBase(depsolve.Depsolve):
done = True
def excludePackages(self, repo=None):
@@ -187081,7 +187088,7 @@ index 99039e0..543ca2d 100644
if "all" in self.conf.disable_excludes:
return
-@@ -1735,9 +2000,11 @@ class YumBase(depsolve.Depsolve):
+@@ -1735,9 +2003,11 @@ class YumBase(depsolve.Depsolve):
self.pkgSack.addPackageExcluder(repoid, exid,'exclude.match', match)
def includePackages(self, repo):
@@ -187096,7 +187103,7 @@ index 99039e0..543ca2d 100644
includelist = repo.getIncludePkgList()
if len(includelist) == 0:
-@@ -1757,8 +2024,11 @@ class YumBase(depsolve.Depsolve):
+@@ -1757,8 +2027,11 @@ class YumBase(depsolve.Depsolve):
self.pkgSack.addPackageExcluder(repo.id, exid, 'exclude.marked')
def doLock(self, lockfile = YUM_PID_FILE):
@@ -187110,7 +187117,7 @@ index 99039e0..543ca2d 100644
if self.conf.uid != 0:
# If we are a user, assume we are using the root cache ... so don't
# bother locking.
-@@ -1774,38 +2044,26 @@ class YumBase(depsolve.Depsolve):
+@@ -1774,38 +2047,26 @@ class YumBase(depsolve.Depsolve):
mypid=str(os.getpid())
while not self._lock(lockfile, mypid, 0644):
@@ -187164,7 +187171,7 @@ index 99039e0..543ca2d 100644
# if we're not root then we don't lock - just return nicely
# Note that we can get here from __del__, so if we haven't created
# YumBase.conf we don't want to do so here as creating stuff inside
-@@ -1830,31 +2088,69 @@ class YumBase(depsolve.Depsolve):
+@@ -1830,31 +2091,69 @@ class YumBase(depsolve.Depsolve):
self._unlock(lockfile)
self._lockfile = None
@@ -187245,7 +187252,7 @@ index 99039e0..543ca2d 100644
failed = False
if type(fo) is types.InstanceType:
-@@ -1894,9 +2190,16 @@ class YumBase(depsolve.Depsolve):
+@@ -1894,9 +2193,16 @@ class YumBase(depsolve.Depsolve):
def verifyChecksum(self, fo, checksumType, csum):
@@ -187265,7 +187272,7 @@ index 99039e0..543ca2d 100644
try:
filesum = misc.checksum(checksumType, fo)
except Errors.MiscError, e:
-@@ -1908,13 +2211,26 @@ class YumBase(depsolve.Depsolve):
+@@ -1908,13 +2214,26 @@ class YumBase(depsolve.Depsolve):
return 0
def downloadPkgs(self, pkglist, callback=None, callback_total=None):
@@ -187293,7 +187300,7 @@ index 99039e0..543ca2d 100644
if a is None:
return -1
if b is None:
-@@ -1925,9 +2241,6 @@ class YumBase(depsolve.Depsolve):
+@@ -1925,9 +2244,6 @@ class YumBase(depsolve.Depsolve):
return 1
return 0
@@ -187303,7 +187310,7 @@ index 99039e0..543ca2d 100644
errors = {}
def adderror(po, msg):
errors.setdefault(po, []).append(msg)
-@@ -1943,116 +2256,194 @@ class YumBase(depsolve.Depsolve):
+@@ -1943,116 +2259,194 @@ class YumBase(depsolve.Depsolve):
self.history.close()
self.plugins.run('predownload', pkglist=pkglist)
@@ -187587,7 +187594,7 @@ index 99039e0..543ca2d 100644
if type(fo) is types.InstanceType:
fo = fo.filename
-@@ -2076,9 +2467,12 @@ class YumBase(depsolve.Depsolve):
+@@ -2076,9 +2470,12 @@ class YumBase(depsolve.Depsolve):
return 1
def downloadHeader(self, po):
@@ -187602,7 +187609,7 @@ index 99039e0..543ca2d 100644
if hasattr(po, 'pkgtype') and po.pkgtype == 'local':
return
-@@ -2122,15 +2516,17 @@ class YumBase(depsolve.Depsolve):
+@@ -2122,15 +2519,17 @@ class YumBase(depsolve.Depsolve):
return
def sigCheckPkg(self, po):
@@ -187628,7 +187635,7 @@ index 99039e0..543ca2d 100644
if self._override_sigchecks:
check = False
hasgpgkey = 0
-@@ -2181,6 +2577,9 @@ class YumBase(depsolve.Depsolve):
+@@ -2181,6 +2580,9 @@ class YumBase(depsolve.Depsolve):
return result, msg
def cleanUsedHeadersPackages(self):
@@ -187638,7 +187645,7 @@ index 99039e0..543ca2d 100644
filelist = []
for txmbr in self.tsInfo:
if txmbr.po.state not in TS_INSTALL_STATES:
-@@ -2218,27 +2617,42 @@ class YumBase(depsolve.Depsolve):
+@@ -2218,27 +2620,42 @@ class YumBase(depsolve.Depsolve):
_('%s removed'), fn)
def cleanHeaders(self):
@@ -187683,7 +187690,7 @@ index 99039e0..543ca2d 100644
cachedir = self.conf.persistdir + "/rpmdb-indexes/"
if not os.path.exists(cachedir):
filelist = []
-@@ -2271,9 +2685,31 @@ class YumBase(depsolve.Depsolve):
+@@ -2271,9 +2688,31 @@ class YumBase(depsolve.Depsolve):
return 0, [msg]
def doPackageLists(self, pkgnarrow='all', patterns=None, showdups=None,
@@ -187718,7 +187725,7 @@ index 99039e0..543ca2d 100644
if showdups is None:
showdups = self.conf.showdupesfromrepos
ygh = misc.GenericHolder(iter=pkgnarrow)
-@@ -2295,6 +2731,8 @@ class YumBase(depsolve.Depsolve):
+@@ -2295,6 +2734,8 @@ class YumBase(depsolve.Depsolve):
ndinst = {} # Newest versions by name.arch
for po in self.rpmdb.returnPackages(patterns=patterns,
ignore_case=ic):
@@ -187727,7 +187734,7 @@ index 99039e0..543ca2d 100644
dinst[po.pkgtup] = po
if showdups:
continue
-@@ -2304,8 +2742,13 @@ class YumBase(depsolve.Depsolve):
+@@ -2304,8 +2745,13 @@ class YumBase(depsolve.Depsolve):
installed = dinst.values()
if showdups:
@@ -187742,7 +187749,7 @@ index 99039e0..543ca2d 100644
else:
try:
avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
-@@ -2323,16 +2766,30 @@ class YumBase(depsolve.Depsolve):
+@@ -2323,16 +2769,30 @@ class YumBase(depsolve.Depsolve):
key = (pkg.name, pkg.arch)
if pkg.pkgtup in dinst:
reinstall_available.append(pkg)
@@ -187776,7 +187783,7 @@ index 99039e0..543ca2d 100644
if len(matches) > 1:
updates.append(matches[0])
self.verbose_logger.log(logginglevels.DEBUG_1,
-@@ -2352,13 +2809,19 @@ class YumBase(depsolve.Depsolve):
+@@ -2352,13 +2812,19 @@ class YumBase(depsolve.Depsolve):
elif pkgnarrow == 'installed':
installed = self.rpmdb.returnPackages(patterns=patterns,
ignore_case=ic)
@@ -187797,7 +187804,7 @@ index 99039e0..543ca2d 100644
else:
try:
avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
-@@ -2392,9 +2855,21 @@ class YumBase(depsolve.Depsolve):
+@@ -2392,9 +2858,21 @@ class YumBase(depsolve.Depsolve):
avail = set(avail)
for po in self.rpmdb.returnPackages(patterns=patterns,
ignore_case=ic):
@@ -187819,7 +187826,7 @@ index 99039e0..543ca2d 100644
# obsoleting packages (and what they obsolete)
elif pkgnarrow == 'obsoletes':
self.conf.obsoletes = 1
-@@ -2402,6 +2877,7 @@ class YumBase(depsolve.Depsolve):
+@@ -2402,6 +2880,7 @@ class YumBase(depsolve.Depsolve):
for (pkgtup, instTup) in self.up.getObsoletesTuples():
(n,a,e,v,r) = pkgtup
pkgs = self.pkgSack.searchNevra(name=n, arch=a, ver=v, rel=r, epoch=e)
@@ -187827,7 +187834,7 @@ index 99039e0..543ca2d 100644
instpo = self.getInstalledPackageObject(instTup)
for po in pkgs:
obsoletes.append(po)
-@@ -2433,7 +2909,12 @@ class YumBase(depsolve.Depsolve):
+@@ -2433,7 +2912,12 @@ class YumBase(depsolve.Depsolve):
recentlimit = now-(self.conf.recent*86400)
if showdups:
avail = self.pkgSack.returnPackages(patterns=patterns,
@@ -187841,7 +187848,7 @@ index 99039e0..543ca2d 100644
else:
try:
avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
-@@ -2461,14 +2942,13 @@ class YumBase(depsolve.Depsolve):
+@@ -2461,14 +2945,13 @@ class YumBase(depsolve.Depsolve):
def findDeps(self, pkgs):
@@ -187861,7 +187868,7 @@ index 99039e0..543ca2d 100644
results = {}
for pkg in pkgs:
-@@ -2495,10 +2975,22 @@ class YumBase(depsolve.Depsolve):
+@@ -2495,10 +2978,22 @@ class YumBase(depsolve.Depsolve):
# pre 3.2.10 API used to always showdups, so that's the default atm.
def searchGenerator(self, fields, criteria, showdups=True, keys=False,
searchtags=True, searchrpmdb=True):
@@ -187888,7 +187895,7 @@ index 99039e0..543ca2d 100644
sql_fields = []
for f in fields:
sql_fields.append(RPM_TO_SQLITE.get(f, f))
-@@ -2614,7 +3106,7 @@ class YumBase(depsolve.Depsolve):
+@@ -2614,7 +3109,7 @@ class YumBase(depsolve.Depsolve):
# ...but without showdups we want to output _just_ #3, which requires
# we find the newest EVR po for the best "matching value". Without keys
# it's the same, except we just want the newest EVR.
@@ -187897,7 +187904,7 @@ index 99039e0..543ca2d 100644
# either, so it's pretty thankless. HTH. HAND.
# By default just sort using package sorting
sort_func = operator.itemgetter(0)
-@@ -2661,6 +3153,14 @@ class YumBase(depsolve.Depsolve):
+@@ -2661,6 +3156,14 @@ class YumBase(depsolve.Depsolve):
yield (po, vs)
def searchPackageTags(self, criteria):
@@ -187912,7 +187919,7 @@ index 99039e0..543ca2d 100644
results = {} # name = [(criteria, taglist)]
for c in criteria:
c = c.lower()
-@@ -2677,11 +3177,16 @@ class YumBase(depsolve.Depsolve):
+@@ -2677,11 +3180,16 @@ class YumBase(depsolve.Depsolve):
return results
def searchPackages(self, fields, criteria, callback=None):
@@ -187934,7 +187941,7 @@ index 99039e0..543ca2d 100644
warnings.warn(_('searchPackages() will go away in a future version of Yum.\
Use searchGenerator() instead. \n'),
Errors.YumFutureDeprecationWarning, stacklevel=2)
-@@ -2700,13 +3205,23 @@ class YumBase(depsolve.Depsolve):
+@@ -2700,13 +3208,23 @@ class YumBase(depsolve.Depsolve):
def searchPackageProvides(self, args, callback=None,
callback_has_matchfor=False):
@@ -187962,7 +187969,7 @@ index 99039e0..543ca2d 100644
else:
isglob = True
canBeFile = misc.re_filename(arg)
-@@ -2723,7 +3238,7 @@ class YumBase(depsolve.Depsolve):
+@@ -2723,7 +3241,7 @@ class YumBase(depsolve.Depsolve):
where = self.returnPackagesByDep(arg)
else:
usedDepString = False
@@ -187971,7 +187978,7 @@ index 99039e0..543ca2d 100644
self.verbose_logger.log(logginglevels.DEBUG_1,
P_('Searching %d package', 'Searching %d packages', len(where)), len(where))
-@@ -2817,25 +3332,160 @@ class YumBase(depsolve.Depsolve):
+@@ -2817,25 +3335,160 @@ class YumBase(depsolve.Depsolve):
return matches
@@ -188144,7 +188151,7 @@ index 99039e0..543ca2d 100644
if uservisible:
if grp.user_visible:
installed.append(grp)
-@@ -2847,34 +3497,98 @@ class YumBase(depsolve.Depsolve):
+@@ -2847,34 +3500,98 @@ class YumBase(depsolve.Depsolve):
available.append(grp)
else:
available.append(grp)
@@ -188255,7 +188262,7 @@ index 99039e0..543ca2d 100644
thesegroups = self.comps.return_groups(grpid)
if not thesegroups:
raise Errors.GroupsError, _("No Group named %s exists") % to_unicode(grpid)
-@@ -2898,13 +3612,58 @@ class YumBase(depsolve.Depsolve):
+@@ -2898,13 +3615,58 @@ class YumBase(depsolve.Depsolve):
self.tsInfo.remove(txmbr.po.pkgtup)
@@ -188321,7 +188328,7 @@ index 99039e0..543ca2d 100644
"""
if not self.comps.has_group(grpid):
-@@ -2920,6 +3679,9 @@ class YumBase(depsolve.Depsolve):
+@@ -2920,6 +3682,9 @@ class YumBase(depsolve.Depsolve):
if group_package_types:
package_types = group_package_types
@@ -188331,7 +188338,7 @@ index 99039e0..543ca2d 100644
for thisgroup in thesegroups:
if thisgroup.selected:
continue
-@@ -2934,12 +3696,51 @@ class YumBase(depsolve.Depsolve):
+@@ -2934,12 +3699,51 @@ class YumBase(depsolve.Depsolve):
if 'optional' in package_types:
pkgs.extend(thisgroup.optional_packages)
@@ -188384,7 +188391,7 @@ index 99039e0..543ca2d 100644
except Errors.InstallError, e:
self.verbose_logger.debug(_('No package named %s available to be installed'),
pkg)
-@@ -2953,7 +3754,9 @@ class YumBase(depsolve.Depsolve):
+@@ -2953,7 +3757,9 @@ class YumBase(depsolve.Depsolve):
group_conditionals = enable_group_conditionals
count_cond_test = 0
@@ -188395,7 +188402,7 @@ index 99039e0..543ca2d 100644
for condreq, cond in thisgroup.conditional_packages.iteritems():
if self.isPackageInstalled(cond):
try:
-@@ -2990,17 +3793,23 @@ class YumBase(depsolve.Depsolve):
+@@ -2990,17 +3796,23 @@ class YumBase(depsolve.Depsolve):
if cond not in self.tsInfo.conditionals:
self.tsInfo.conditionals[cond] = []
self.tsInfo.conditionals[cond].extend(pkgs)
@@ -188426,7 +188433,7 @@ index 99039e0..543ca2d 100644
if not self.comps.has_group(grpid):
raise Errors.GroupsError, _("No Group named %s exists") % to_unicode(grpid)
-@@ -3008,7 +3817,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3008,7 +3820,8 @@ class YumBase(depsolve.Depsolve):
thesegroups = self.comps.return_groups(grpid)
if not thesegroups:
raise Errors.GroupsError, _("No Group named %s exists") % to_unicode(grpid)
@@ -188436,7 +188443,7 @@ index 99039e0..543ca2d 100644
for thisgroup in thesegroups:
thisgroup.selected = False
-@@ -3034,13 +3844,102 @@ class YumBase(depsolve.Depsolve):
+@@ -3034,13 +3847,102 @@ class YumBase(depsolve.Depsolve):
for pkg in self.tsInfo.conditionals.get(txmbr.name, []):
self.tsInfo.remove(pkg.pkgtup)
@@ -188545,7 +188552,7 @@ index 99039e0..543ca2d 100644
# look it up in the self.localPackages first:
for po in self.localPackages:
if po.pkgtup == pkgtup:
-@@ -3049,7 +3948,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3049,7 +3951,7 @@ class YumBase(depsolve.Depsolve):
pkgs = self.pkgSack.searchPkgTuple(pkgtup)
if len(pkgs) == 0:
@@ -188554,7 +188561,7 @@ index 99039e0..543ca2d 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 +3964,21 @@ class YumBase(depsolve.Depsolve):
+@@ -3065,13 +3967,21 @@ class YumBase(depsolve.Depsolve):
return result
def getInstalledPackageObject(self, pkgtup):
@@ -188581,7 +188588,7 @@ index 99039e0..543ca2d 100644
raise Errors.RpmDBError, _('Package tuple %s could not be found in rpmdb') % str(pkgtup)
# Dito. FIXME from getPackageObject() for len() > 1 ... :)
-@@ -3079,9 +3986,11 @@ class YumBase(depsolve.Depsolve):
+@@ -3079,9 +3989,11 @@ class YumBase(depsolve.Depsolve):
return po
def gpgKeyCheck(self):
@@ -188595,7 +188602,7 @@ index 99039e0..543ca2d 100644
gpgkeyschecked = self.conf.cachedir + '/.gpgkeyschecked.yum'
if os.path.exists(gpgkeyschecked):
return 1
-@@ -3106,9 +4015,13 @@ class YumBase(depsolve.Depsolve):
+@@ -3106,9 +4018,13 @@ class YumBase(depsolve.Depsolve):
return 1
def returnPackagesByDep(self, depstring):
@@ -188611,7 +188618,7 @@ index 99039e0..543ca2d 100644
if not depstring:
return []
-@@ -3135,9 +4048,16 @@ class YumBase(depsolve.Depsolve):
+@@ -3135,9 +4051,16 @@ class YumBase(depsolve.Depsolve):
return self.pkgSack.getProvides(depname, depflags, depver).keys()
def returnPackageByDep(self, depstring):
@@ -188631,7 +188638,7 @@ index 99039e0..543ca2d 100644
# we get all sorts of randomness here
errstring = depstring
if type(depstring) not in types.StringTypes:
-@@ -3149,16 +4069,22 @@ class YumBase(depsolve.Depsolve):
+@@ -3149,16 +4072,22 @@ class YumBase(depsolve.Depsolve):
raise Errors.YumBaseError, _('No Package found for %s') % errstring
ps = ListPackageSack(pkglist)
@@ -188658,7 +188665,7 @@ index 99039e0..543ca2d 100644
if not depstring:
return []
-@@ -3184,12 +4110,47 @@ class YumBase(depsolve.Depsolve):
+@@ -3184,12 +4113,47 @@ class YumBase(depsolve.Depsolve):
return self.rpmdb.getProvides(depname, depflags, depver).keys()
@@ -188708,7 +188715,7 @@ index 99039e0..543ca2d 100644
if len(pkglist) == 0:
-@@ -3198,14 +4159,23 @@ class YumBase(depsolve.Depsolve):
+@@ -3198,14 +4162,23 @@ class YumBase(depsolve.Depsolve):
if len(pkglist) == 1:
return pkglist[0]
@@ -188738,7 +188745,7 @@ index 99039e0..543ca2d 100644
returnlist = []
compatArchList = self.arch.get_arch_list(arch)
multiLib = []
-@@ -3222,9 +4192,9 @@ class YumBase(depsolve.Depsolve):
+@@ -3222,9 +4195,9 @@ class YumBase(depsolve.Depsolve):
singleLib.append(po)
# we now have three lists. find the best package(s) of each
@@ -188751,7 +188758,7 @@ index 99039e0..543ca2d 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 +4208,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3238,7 +4211,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:
@@ -188760,7 +188767,7 @@ index 99039e0..543ca2d 100644
if best.arch == "noarch":
returnlist.append(no)
else:
-@@ -3246,7 +4216,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3246,7 +4219,7 @@ class YumBase(depsolve.Depsolve):
if single: returnlist.append(single)
# similar for the non-multilib case
elif single:
@@ -188769,7 +188776,7 @@ index 99039e0..543ca2d 100644
if best.arch == "noarch":
returnlist.append(no)
else:
-@@ -3350,28 +4320,58 @@ class YumBase(depsolve.Depsolve):
+@@ -3350,28 +4323,58 @@ class YumBase(depsolve.Depsolve):
done = True
slow = next_func(slow)
@@ -188833,7 +188840,7 @@ index 99039e0..543ca2d 100644
try:
txmbrs = self.groupRemove(group_string)
except yum.Errors.GroupsError:
-@@ -3387,6 +4387,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3387,6 +4390,8 @@ class YumBase(depsolve.Depsolve):
assert pattern[0] == '@'
grpid = pattern[1:]
@@ -188842,7 +188849,7 @@ index 99039e0..543ca2d 100644
thesegroups = self.comps.return_groups(grpid)
if not thesegroups:
raise Errors.GroupsError, _("No Group named %s exists") % to_unicode(grpid)
-@@ -3398,7 +4400,11 @@ class YumBase(depsolve.Depsolve):
+@@ -3398,7 +4403,11 @@ class YumBase(depsolve.Depsolve):
def _minus_deselect(self, pattern):
""" Remove things from the transaction, like kickstart. """
assert pattern[0] == '-'
@@ -188855,7 +188862,7 @@ index 99039e0..543ca2d 100644
if pat and pat[0] == '@':
pat = pat[1:]
-@@ -3437,14 +4443,87 @@ class YumBase(depsolve.Depsolve):
+@@ -3437,14 +4446,87 @@ class YumBase(depsolve.Depsolve):
if flag not in self.tsInfo.probFilterFlags:
self.tsInfo.probFilterFlags.append(flag)
@@ -188949,7 +188956,7 @@ index 99039e0..543ca2d 100644
pkgs = []
was_pattern = False
if po:
-@@ -3464,9 +4543,14 @@ class YumBase(depsolve.Depsolve):
+@@ -3464,9 +4546,14 @@ class YumBase(depsolve.Depsolve):
if kwargs['pattern'] and kwargs['pattern'][0] == '@':
return self._at_groupinstall(kwargs['pattern'])
@@ -188964,7 +188971,7 @@ index 99039e0..543ca2d 100644
ignore_case=False)
pkgs.extend(mypkgs)
# if we have anything left unmatched, let's take a look for it
-@@ -3477,20 +4561,12 @@ class YumBase(depsolve.Depsolve):
+@@ -3477,20 +4564,12 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.debug(_('Checking for virtual provide or file-provide for %s'),
arg)
@@ -188991,7 +188998,7 @@ index 99039e0..543ca2d 100644
else:
nevra_dict = self._nevra_kwarg_parse(kwargs)
-@@ -3499,6 +4575,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3499,6 +4578,8 @@ class YumBase(depsolve.Depsolve):
ver=nevra_dict['version'], rel=nevra_dict['release'])
self._add_not_found_a(pkgs, nevra_dict)
@@ -189000,7 +189007,7 @@ index 99039e0..543ca2d 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 +4655,21 @@ class YumBase(depsolve.Depsolve):
+@@ -3577,17 +4658,21 @@ class YumBase(depsolve.Depsolve):
continue
# make sure this shouldn't be passed to update:
@@ -189026,7 +189033,7 @@ index 99039e0..543ca2d 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 +4682,23 @@ class YumBase(depsolve.Depsolve):
+@@ -3600,23 +4685,23 @@ class YumBase(depsolve.Depsolve):
already_obs = pkgs[0]
if already_obs:
@@ -189057,7 +189064,7 @@ index 99039e0..543ca2d 100644
continue
# make sure we don't have a name.arch of this already installed
-@@ -3630,8 +4712,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3630,8 +4715,8 @@ class YumBase(depsolve.Depsolve):
found = True
break
if not found:
@@ -189068,7 +189075,7 @@ index 99039e0..543ca2d 100644
tx_return.extend(txmbrs)
continue
-@@ -3719,19 +4801,47 @@ class YumBase(depsolve.Depsolve):
+@@ -3719,19 +4804,47 @@ class YumBase(depsolve.Depsolve):
return txmbr
def update(self, po=None, requiringPo=None, update_to=False, **kwargs):
@@ -189123,7 +189130,7 @@ index 99039e0..543ca2d 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 +4875,14 @@ class YumBase(depsolve.Depsolve):
+@@ -3765,7 +4878,14 @@ class YumBase(depsolve.Depsolve):
if new is None:
continue
tx_return.extend(self.update(po=new))
@@ -189139,7 +189146,7 @@ index 99039e0..543ca2d 100644
return tx_return
# complications
-@@ -3787,13 +4904,16 @@ class YumBase(depsolve.Depsolve):
+@@ -3787,13 +4907,16 @@ class YumBase(depsolve.Depsolve):
return self._minus_deselect(kwargs['pattern'])
if kwargs['pattern'] and kwargs['pattern'][0] == '@':
@@ -189158,7 +189165,7 @@ index 99039e0..543ca2d 100644
if not instpkgs and not availpkgs:
depmatches = []
-@@ -3805,6 +4925,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3805,6 +4928,8 @@ class YumBase(depsolve.Depsolve):
except yum.Errors.YumBaseError, e:
self.logger.critical(_('%s') % e)
@@ -189167,7 +189174,7 @@ index 99039e0..543ca2d 100644
if update_to:
availpkgs.extend(depmatches)
else:
-@@ -3816,9 +4938,12 @@ class YumBase(depsolve.Depsolve):
+@@ -3816,9 +4941,12 @@ class YumBase(depsolve.Depsolve):
try:
if update_to:
m = []
@@ -189181,7 +189188,7 @@ index 99039e0..543ca2d 100644
m = self.pkgSack.returnNewestByNameArch(patterns=pats)
except Errors.PackageSackError:
m = []
-@@ -3843,7 +4968,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3843,7 +4971,7 @@ class YumBase(depsolve.Depsolve):
availpkgs = self._compare_providers(availpkgs, requiringPo)
availpkgs = map(lambda x: x[0], availpkgs)
elif not availpkgs:
@@ -189190,7 +189197,7 @@ index 99039e0..543ca2d 100644
# for any thing specified
# get the list of available pkgs matching it (or take the po)
-@@ -3879,6 +5004,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3879,6 +5007,7 @@ class YumBase(depsolve.Depsolve):
if obsoleting_pkg is None:
continue
obs_pkgs.append(obsoleting_pkg)
@@ -189198,7 +189205,7 @@ index 99039e0..543ca2d 100644
for obsoleting_pkg in packagesNewestByName(obs_pkgs):
tx_return.extend(self.install(po=obsoleting_pkg))
for available_pkg in availpkgs:
-@@ -3920,11 +5046,29 @@ class YumBase(depsolve.Depsolve):
+@@ -3920,11 +5049,29 @@ class YumBase(depsolve.Depsolve):
tx_return.append(txmbr)
for available_pkg in availpkgs:
@@ -189228,7 +189235,7 @@ index 99039e0..543ca2d 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 +5129,18 @@ class YumBase(depsolve.Depsolve):
+@@ -3985,11 +5132,18 @@ class YumBase(depsolve.Depsolve):
return tx_return
def remove(self, po=None, **kwargs):
@@ -189252,7 +189259,7 @@ index 99039e0..543ca2d 100644
if not po and not kwargs:
raise Errors.RemoveError, 'Nothing specified to remove'
-@@ -4008,6 +5159,10 @@ class YumBase(depsolve.Depsolve):
+@@ -4008,6 +5162,10 @@ class YumBase(depsolve.Depsolve):
return self._at_groupremove(kwargs['pattern'])
(e,m,u) = self.rpmdb.matchPackageNames([kwargs['pattern']])
@@ -189263,7 +189270,7 @@ index 99039e0..543ca2d 100644
pkgs.extend(e)
pkgs.extend(m)
if u:
-@@ -4018,6 +5173,10 @@ class YumBase(depsolve.Depsolve):
+@@ -4018,6 +5176,10 @@ class YumBase(depsolve.Depsolve):
except yum.Errors.YumBaseError, e:
self.logger.critical(_('%s') % e)
@@ -189274,7 +189281,7 @@ index 99039e0..543ca2d 100644
if not depmatches:
arg = to_unicode(arg)
self.logger.critical(_('No Match for argument: %s') % to_unicode(arg))
-@@ -4055,17 +5214,19 @@ class YumBase(depsolve.Depsolve):
+@@ -4055,17 +5217,19 @@ class YumBase(depsolve.Depsolve):
return tx_return
def installLocal(self, pkg, po=None, updateonly=False):
@@ -189304,7 +189311,7 @@ index 99039e0..543ca2d 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 +5344,15 @@ class YumBase(depsolve.Depsolve):
+@@ -4183,16 +5347,15 @@ class YumBase(depsolve.Depsolve):
return tx_return
def reinstallLocal(self, pkg, po=None):
@@ -189329,7 +189336,7 @@ index 99039e0..543ca2d 100644
if not po:
try:
po = YumUrlPackage(self, ts=self.rpmdb.readOnlyTS(), url=pkg,
-@@ -4215,13 +5375,29 @@ class YumBase(depsolve.Depsolve):
+@@ -4215,13 +5378,29 @@ class YumBase(depsolve.Depsolve):
return self.reinstall(po=po)
def reinstall(self, po=None, **kwargs):
@@ -189362,7 +189369,7 @@ index 99039e0..543ca2d 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 +5416,11 @@ class YumBase(depsolve.Depsolve):
+@@ -4240,10 +5419,11 @@ class YumBase(depsolve.Depsolve):
# pkgs that are obsolete.
old_conf_obs = self.conf.obsoletes
self.conf.obsoletes = False
@@ -189376,7 +189383,7 @@ index 99039e0..543ca2d 100644
self.conf.obsoletes = old_conf_obs
if len(members) == 0:
self.tsInfo.remove(item.pkgtup)
-@@ -4259,16 +5436,15 @@ class YumBase(depsolve.Depsolve):
+@@ -4259,16 +5439,15 @@ class YumBase(depsolve.Depsolve):
return tx_mbrs
def downgradeLocal(self, pkg, po=None):
@@ -189401,7 +189408,7 @@ index 99039e0..543ca2d 100644
if not po:
try:
po = YumUrlPackage(self, ts=self.rpmdb.readOnlyTS(), url=pkg,
-@@ -4309,13 +5485,19 @@ class YumBase(depsolve.Depsolve):
+@@ -4309,13 +5488,19 @@ class YumBase(depsolve.Depsolve):
return False
def downgrade(self, po=None, **kwargs):
@@ -189428,7 +189435,7 @@ index 99039e0..543ca2d 100644
if not po and not kwargs:
raise Errors.DowngradeError, 'Nothing specified to downgrade'
-@@ -4397,6 +5579,10 @@ class YumBase(depsolve.Depsolve):
+@@ -4397,6 +5582,10 @@ class YumBase(depsolve.Depsolve):
# installed version. Indexed fromn the latest installed pkgtup.
downgrade_apkgs = {}
for pkg in sorted(apkgs):
@@ -189439,7 +189446,7 @@ index 99039e0..543ca2d 100644
na = (pkg.name, pkg.arch)
# Here we allow downgrades from .i386 => .noarch, or .i586 => .i386
-@@ -4421,6 +5607,9 @@ class YumBase(depsolve.Depsolve):
+@@ -4421,6 +5610,9 @@ class YumBase(depsolve.Depsolve):
warned_nas.add(na)
continue
@@ -189449,7 +189456,7 @@ index 99039e0..543ca2d 100644
if pkg.verGE(lipkg):
if na not in warned_nas:
msg = _('Only Upgrade available on package: %s') % pkg
-@@ -4457,7 +5646,7 @@ class YumBase(depsolve.Depsolve):
+@@ -4457,7 +5649,7 @@ class YumBase(depsolve.Depsolve):
if e and v and r:
evr = '%s:%s-%s' % (e, v, r)
elif v and r:
@@ -189458,7 +189465,7 @@ index 99039e0..543ca2d 100644
elif e and v:
evr = '%s:%s' % (e, v)
elif v: # e and r etc. is just too weird to print
-@@ -4500,12 +5689,24 @@ class YumBase(depsolve.Depsolve):
+@@ -4500,12 +5692,24 @@ class YumBase(depsolve.Depsolve):
return returndict
@@ -189486,7 +189493,7 @@ index 99039e0..543ca2d 100644
old_conf_obs = self.conf.obsoletes
self.conf.obsoletes = False
done = False
-@@ -4515,19 +5716,46 @@ class YumBase(depsolve.Depsolve):
+@@ -4515,19 +5719,46 @@ class YumBase(depsolve.Depsolve):
done = True
for pkg in transaction.trans_data:
if pkg.state == 'Downgrade':
@@ -189533,7 +189540,7 @@ index 99039e0..543ca2d 100644
if self.install(pkgtup=pkg.pkgtup):
done = True
for pkg in transaction.trans_data:
-@@ -4538,8 +5766,14 @@ class YumBase(depsolve.Depsolve):
+@@ -4538,8 +5769,14 @@ class YumBase(depsolve.Depsolve):
return done
def history_undo(self, transaction):
@@ -189550,7 +189557,7 @@ index 99039e0..543ca2d 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 +5850,7 @@ class YumBase(depsolve.Depsolve):
+@@ -4616,7 +5853,7 @@ class YumBase(depsolve.Depsolve):
except urlgrabber.grabber.URLGrabError, e:
raise Errors.YumBaseError(_('GPG key retrieval failed: ') +
@@ -189559,7 +189566,7 @@ index 99039e0..543ca2d 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 +5883,7 @@ class YumBase(depsolve.Depsolve):
+@@ -4649,7 +5886,7 @@ class YumBase(depsolve.Depsolve):
keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
except ValueError, e:
raise Errors.YumBaseError(_('Invalid GPG Key from %s: %s') %
@@ -189568,7 +189575,7 @@ index 99039e0..543ca2d 100644
keys = []
for keyinfo in keys_info:
thiskey = {}
-@@ -4674,39 +5908,49 @@ class YumBase(depsolve.Depsolve):
+@@ -4674,39 +5911,49 @@ class YumBase(depsolve.Depsolve):
if pkgs:
pkgs = sorted(pkgs)[-1]
msg = (_('Importing %s key 0x%s:\n'
@@ -189636,7 +189643,7 @@ index 99039e0..543ca2d 100644
user_cb_fail = False
for keyurl in keyurls:
keys = self._retrievePublicKey(keyurl, repo)
-@@ -4725,7 +5969,9 @@ class YumBase(depsolve.Depsolve):
+@@ -4725,7 +5972,9 @@ class YumBase(depsolve.Depsolve):
# Try installing/updating GPG key
self._getKeyImportMessage(info, keyurl)
rc = False
@@ -189647,7 +189654,7 @@ index 99039e0..543ca2d 100644
rc = True
# grab the .sig/.asc for the keyurl, if it exists
-@@ -4751,8 +5997,8 @@ class YumBase(depsolve.Depsolve):
+@@ -4751,8 +6000,8 @@ class YumBase(depsolve.Depsolve):
ts = self.rpmdb.readOnlyTS()
result = ts.pgpImportPubkey(misc.procgpgkey(info['raw_key']))
if result != 0:
@@ -189658,7 +189665,7 @@ index 99039e0..543ca2d 100644
self.logger.info(_('Key imported successfully'))
key_installed = True
-@@ -4760,18 +6006,20 @@ class YumBase(depsolve.Depsolve):
+@@ -4760,18 +6009,20 @@ class YumBase(depsolve.Depsolve):
raise Errors.YumBaseError, _("Didn't install any keys")
if not key_installed:
@@ -189684,7 +189691,7 @@ index 99039e0..543ca2d 100644
def _getAnyKeyForRepo(self, repo, destdir, keyurl_list, is_cakey=False, callback=None):
"""
-@@ -4788,6 +6036,18 @@ class YumBase(depsolve.Depsolve):
+@@ -4788,6 +6039,18 @@ class YumBase(depsolve.Depsolve):
"""
key_installed = False
@@ -189703,7 +189710,7 @@ index 99039e0..543ca2d 100644
user_cb_fail = False
for keyurl in keyurl_list:
keys = self._retrievePublicKey(keyurl, repo, getSig=not is_cakey)
-@@ -4819,8 +6079,11 @@ class YumBase(depsolve.Depsolve):
+@@ -4819,8 +6082,11 @@ class YumBase(depsolve.Depsolve):
if not key_installed:
self._getKeyImportMessage(info, keyurl, keytype)
rc = False
@@ -189716,7 +189723,7 @@ index 99039e0..543ca2d 100644
elif callback:
rc = callback({"repo": repo, "userid": info['userid'],
"hexkeyid": info['hexkeyid'], "keyurl": keyurl,
-@@ -4835,7 +6098,8 @@ class YumBase(depsolve.Depsolve):
+@@ -4835,7 +6101,8 @@ class YumBase(depsolve.Depsolve):
# Import the key
result = misc.import_key_to_pubring(info['raw_key'], info['hexkeyid'], gpgdir=destdir)
if not result:
@@ -189726,7 +189733,7 @@ index 99039e0..543ca2d 100644
self.logger.info(_('Key imported successfully'))
key_installed = True
# write out the key id to imported_cakeys in the repos basedir
-@@ -4851,36 +6115,35 @@ class YumBase(depsolve.Depsolve):
+@@ -4851,36 +6118,35 @@ class YumBase(depsolve.Depsolve):
pass
if not key_installed and user_cb_fail:
@@ -189779,7 +189786,7 @@ index 99039e0..543ca2d 100644
self._getAnyKeyForRepo(repo, repo.gpgcadir, repo.gpgcakey, is_cakey=True, callback=callback)
def _limit_installonly_pkgs(self):
-@@ -4889,7 +6152,7 @@ class YumBase(depsolve.Depsolve):
+@@ -4889,7 +6155,7 @@ class YumBase(depsolve.Depsolve):
New in 3.2.24: Obey yumdb_info.installonly data. """
def _sort_and_filter_installonly(pkgs):
@@ -189788,7 +189795,7 @@ index 99039e0..543ca2d 100644
using the yumdb. """
ret_beg = []
ret_mid = []
-@@ -4926,23 +6189,30 @@ class YumBase(depsolve.Depsolve):
+@@ -4926,23 +6192,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)
@@ -189827,7 +189834,7 @@ index 99039e0..543ca2d 100644
for po in installed:
if (po.version, po.release) == (cur_kernel_v, cur_kernel_r):
# don't remove running
-@@ -4959,19 +6229,22 @@ class YumBase(depsolve.Depsolve):
+@@ -4959,19 +6232,22 @@ class YumBase(depsolve.Depsolve):
txmbr.depends_on.append(rel)
def processTransaction(self, callback=None,rpmTestDisplay=None, rpmDisplay=None):
@@ -189863,7 +189870,7 @@ index 99039e0..543ca2d 100644
if not callback:
callback = callbacks.ProcessTransNoOutputCallback()
-@@ -5062,8 +6335,8 @@ class YumBase(depsolve.Depsolve):
+@@ -5062,8 +6338,8 @@ class YumBase(depsolve.Depsolve):
raise Errors.YumRPMCheckError, retmsgs
retmsgs = [_('ERROR with transaction check vs depsolve:')]
retmsgs.extend(msgs)
@@ -189874,7 +189881,7 @@ index 99039e0..543ca2d 100644
raise Errors.YumRPMCheckError,retmsgs
tsConf = {}
-@@ -5114,13 +6387,19 @@ class YumBase(depsolve.Depsolve):
+@@ -5114,13 +6390,19 @@ class YumBase(depsolve.Depsolve):
return results
def add_enable_repo(self, repoid, baseurls=[], mirrorlist=None, **kwargs):
@@ -189901,7 +189908,7 @@ index 99039e0..543ca2d 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 +6446,15 @@ class YumBase(depsolve.Depsolve):
+@@ -5167,9 +6449,15 @@ class YumBase(depsolve.Depsolve):
def setCacheDir(self, force=False, tmpdir=None, reuse=True,
suffix='/$basearch/$releasever'):
@@ -189920,7 +189927,7 @@ index 99039e0..543ca2d 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 +6464,7 @@ class YumBase(depsolve.Depsolve):
+@@ -5179,7 +6467,7 @@ class YumBase(depsolve.Depsolve):
try:
cachedir = misc.getCacheDir(tmpdir, reuse)
except (IOError, OSError), e:
@@ -189929,7 +189936,7 @@ index 99039e0..543ca2d 100644
cachedir = None
if cachedir is None:
-@@ -5190,6 +6475,8 @@ class YumBase(depsolve.Depsolve):
+@@ -5190,6 +6478,8 @@ class YumBase(depsolve.Depsolve):
self.prerepoconf.cachedir = cachedir
else:
self.repos.setCacheDir(cachedir)
@@ -189938,7 +189945,7 @@ index 99039e0..543ca2d 100644
self.conf.cachedir = cachedir
return True # We got a new cache dir
-@@ -5220,13 +6507,24 @@ class YumBase(depsolve.Depsolve):
+@@ -5220,13 +6510,24 @@ class YumBase(depsolve.Depsolve):
self.history.write_addon_data('config-repos', myrepos)
def verify_plugins_cb(self, verify_package):
@@ -189966,7 +189973,7 @@ index 99039e0..543ca2d 100644
if self.tsInfo._unresolvedMembers:
if auto:
self.logger.critical(_("Dependencies not solved. Will not save unresolved transaction."))
-@@ -5234,7 +6532,7 @@ class YumBase(depsolve.Depsolve):
+@@ -5234,7 +6535,7 @@ class YumBase(depsolve.Depsolve):
raise Errors.YumBaseError(_("Dependencies not solved. Will not save unresolved transaction."))
if not filename:
@@ -189975,7 +189982,7 @@ index 99039e0..543ca2d 100644
fd,filename = tempfile.mkstemp(suffix='.yumtx', prefix=prefix)
f = os.fdopen(fd, 'w')
else:
-@@ -5244,13 +6542,17 @@ class YumBase(depsolve.Depsolve):
+@@ -5244,13 +6545,17 @@ class YumBase(depsolve.Depsolve):
msg = "%s\n" % self.rpmdb.simpleVersion(main_only=True)[0]
msg += "%s\n" % self.ts.getTsFlags()
@@ -189996,7 +190003,7 @@ index 99039e0..543ca2d 100644
msg += "%s\n" % len(self.tsInfo.getMembers())
for txmbr in self.tsInfo.getMembers():
msg += txmbr._dump()
-@@ -5260,42 +6562,84 @@ class YumBase(depsolve.Depsolve):
+@@ -5260,42 +6565,84 @@ class YumBase(depsolve.Depsolve):
except (IOError, OSError), e:
self._ts_save_file = None
if auto:
@@ -190093,7 +190100,7 @@ index 99039e0..543ca2d 100644
if ignorerpm:
msg += _(" ignoring, as requested.")
self.logger.critical(_(msg))
-@@ -5318,8 +6662,17 @@ class YumBase(depsolve.Depsolve):
+@@ -5318,8 +6665,17 @@ class YumBase(depsolve.Depsolve):
numrepos = int(data[2].strip())
repos = []
rindex=3+numrepos
@@ -190112,7 +190119,7 @@ index 99039e0..543ca2d 100644
# pkgs/txmbrs
numpkgs = int(data[rindex].strip())
-@@ -5329,6 +6682,7 @@ class YumBase(depsolve.Depsolve):
+@@ -5329,6 +6685,7 @@ class YumBase(depsolve.Depsolve):
pkgcount = 0
pkgprob = False
curpkg = None
@@ -190120,7 +190127,7 @@ index 99039e0..543ca2d 100644
for l in data[pkgstart:]:
l = l.rstrip()
# our main txmbrs
-@@ -5356,6 +6710,7 @@ class YumBase(depsolve.Depsolve):
+@@ -5356,6 +6713,7 @@ class YumBase(depsolve.Depsolve):
if not ignoremissing:
raise Errors.YumBaseError(msg)
else:
@@ -190128,7 +190135,7 @@ index 99039e0..543ca2d 100644
self.logger.critical(msg)
else:
pkgcount += 1
-@@ -5432,12 +6787,18 @@ class YumBase(depsolve.Depsolve):
+@@ -5432,12 +6790,18 @@ class YumBase(depsolve.Depsolve):
if pkgprob:
msg = _("Transaction members, relations are missing or ts has been modified,")
if ignoremissing:
@@ -190147,7 +190154,7 @@ index 99039e0..543ca2d 100644
return self.tsInfo.getMembers()
def _remove_old_deps(self):
-@@ -5470,18 +6831,6 @@ class YumBase(depsolve.Depsolve):
+@@ -5470,18 +6834,6 @@ class YumBase(depsolve.Depsolve):
if requiring == required: # if they are self-requiring skip them
continue
@@ -190166,7 +190173,7 @@ index 99039e0..543ca2d 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 +6882,24 @@ class YumBase(depsolve.Depsolve):
+@@ -5533,7 +6885,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
@@ -190191,7 +190198,7 @@ index 99039e0..543ca2d 100644
visited[curpkg] = True
all_leaves_visited = True
leaves = curpkg.requiring_packages()
-@@ -5547,4 +6913,3 @@ class YumBase(depsolve.Depsolve):
+@@ -5547,4 +6916,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 4bc67b0..c7bb536 100644
--- a/yum.spec
+++ b/yum.spec
@@ -41,7 +41,7 @@ BuildRequires: bash-completion
Summary: RPM package installer/updater/manager
Name: yum
Version: 3.4.3
-Release: 86%{?dist}
+Release: 87%{?dist}
License: GPLv2+
Group: System Environment/Base
Source0: http://yum.baseurl.org/download/3.4/%{name}-%{version}.tar.gz
@@ -402,6 +402,12 @@ exit 0
%endif
%changelog
+* Fri Apr 26 2013 James Antill <james at fedoraproject.org> - 3.4.3-87
+- update to latest HEAD.
+- Make --downloadonly skip userconfirm prompt.
+- Turn metadata_expire off for yum-cron.
+- Skip var_arch storage in yumdb.
+
* Tue Apr 23 2013 James Antill <james at fedoraproject.org> - 3.4.3-86
- update to latest HEAD.
- A fix for environments and not installed groups. BZ 928859.
More information about the scm-commits
mailing list