-diff -ur yum-3.2.27.orig/cli.py yum-3.2.27/cli.py
---- yum-3.2.27.orig/cli.py 2010-03-03 20:09:36.000000000 -0500
-+++ yum-3.2.27/cli.py 2010-03-23 16:24:21.313420546 -0400
-@@ -1278,13 +1278,15 @@
+diff -ur yum-3.2.28.orig/cli.py yum-3.2.28/cli.py
+--- yum-3.2.28.orig/cli.py 2010-07-07 14:46:08.000000000 -0400
++++ yum-3.2.28/cli.py 2010-10-18 14:05:51.919642477 -0400
+@@ -1409,13 +1409,15 @@
def getRoot(self,opts):
# If the conf file is inside the installroot - use that.
# otherwise look for it in the normal root
root=opts.installroot
else:
root = '/'
-@@ -1325,7 +1327,7 @@
+@@ -1456,7 +1458,7 @@
action="store_true",
help=_("run entirely from system cache, don't update cache"))
group.add_option("-c", "--config", dest="conffile",
help=_("config file location"), metavar='[config file]')
group.add_option("-R", "--randomwait", dest="sleeptime", type='int',
default=None,
-diff -ur yum-3.2.27.orig/yum/config.py yum-3.2.27/yum/config.py
---- yum-3.2.27.orig/yum/config.py 2010-03-23 16:13:48.022914313 -0400
-+++ yum-3.2.27/yum/config.py 2010-03-23 16:26:57.116806313 -0400
-@@ -603,7 +603,27 @@
- syslog_ident = Option()
- syslog_facility = Option('LOG_DAEMON')
+diff -ur yum-3.2.28.orig/yum/config.py yum-3.2.28/yum/config.py
+--- yum-3.2.28.orig/yum/config.py 2010-10-18 13:59:40.165820228 -0400
++++ yum-3.2.28/yum/config.py 2010-10-18 14:05:51.919642477 -0400
+@@ -623,7 +623,27 @@
+ syslog_facility = Option('LOG_USER')
+ syslog_device = Option('/dev/log')
persistdir = Option('/var/lib/yum')
-
+
class YumConf(StartupConf):
'''
Configuration option definitions for yum.conf\'s [main] section.
-@@ -617,6 +637,7 @@
+@@ -637,6 +657,7 @@
keepcache = BoolOption(True)
logfile = Option('/var/log/yum.log')
reposdir = ListOption(['/etc/yum/repos.d', '/etc/yum.repos.d'])
commands = ListOption()
-@@ -859,9 +880,9 @@
- yumconf.populate(startupconf._parser, 'main')
-
+@@ -888,7 +909,7 @@
# Apply the installroot to directory options
-- for option in ('cachedir', 'logfile', 'persistdir'):
-+ for option in ('cachedir', 'logfile', 'lockfile', 'persistdir'):
+ def _apply_installroot(yumconf, option):
path = getattr(yumconf, option)
- ir_path = yumconf.installroot + path
+ ir_path = yumconf.getRootedPath(path)
ir_path = ir_path.replace('//', '/') # os.path.normpath won't fix this and
# it annoys me
ir_path = varReplace(ir_path, yumvars)
-diff -ur yum-3.2.27.orig/yum/__init__.py yum-3.2.27/yum/__init__.py
---- yum-3.2.27.orig/yum/__init__.py 2010-03-18 12:28:57.000000000 -0400
-+++ yum-3.2.27/yum/__init__.py 2010-03-23 16:27:43.617623958 -0400
-@@ -398,8 +398,7 @@
+@@ -912,7 +933,7 @@
+ yumvars[fsvar] = val
+
+ # These can use the above FS yumvars
+- for option in ('cachedir', 'logfile', 'persistdir'):
++ for option in ('cachedir', 'logfile', 'lockfile', 'persistdir'):
+ _apply_installroot(yumconf, option)
+
+ # Add in some extra attributes which aren't actually configuration values
+diff -ur yum-3.2.28.orig/yum/__init__.py yum-3.2.28/yum/__init__.py
+--- yum-3.2.28.orig/yum/__init__.py 2010-10-18 13:59:40.173818661 -0400
++++ yum-3.2.28/yum/__init__.py 2010-10-18 14:05:51.920642052 -0400
+@@ -429,8 +429,7 @@
# this check makes sure that our dirs exist properly.
# if they aren't in the installroot then don't prepend the installroot path
# if we don't do this then anaconda likes to not work.
if os.path.isdir(reposdir):
for repofn in sorted(glob.glob('%s/*.repo' % reposdir)):
-@@ -1377,10 +1376,8 @@
+@@ -1585,10 +1584,8 @@
if self.conf.uid != 0:
return
+
mypid=str(os.getpid())
while not self._lock(lockfile, mypid, 0644):
- fd = open(lockfile, 'r')
+ try: