rebase against latest yum@rhel6
authorS.Çağlar Onur <caglar@cs.princeton.edu>
Thu, 10 Mar 2011 22:00:10 +0000 (22:00 +0000)
committerS.Çağlar Onur <caglar@cs.princeton.edu>
Thu, 10 Mar 2011 22:00:10 +0000 (22:00 +0000)
sources
yum-3.2.25-chroot.patch [deleted file]
yum-3.2.27_el6-chroot.patch [new file with mode: 0644]
yum.spec

diff --git a/sources b/sources
index 10c3623..b6d61f6 100644 (file)
--- a/sources
+++ b/sources
@@ -1 +1 @@
-dbd0aef02201d54512b3569fa359d52592d59967  ftp://ftp.redhat.com/pub/redhat/rhel/beta/6/source/SRPMS/yum-3.2.25-12.el6.src.rpm
+f4a15fa96afbcaf52394054b49908de8bad1d218   ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/yum-3.2.27-14.el6.src.rpm
diff --git a/yum-3.2.25-chroot.patch b/yum-3.2.25-chroot.patch
deleted file mode 100644 (file)
index db10e18..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-diff -ur yum-3.2.25.orig/cli.py yum-3.2.25/cli.py
---- yum-3.2.25.orig/cli.py     2010-04-26 18:04:21.012619640 -0400
-+++ yum-3.2.25/cli.py  2010-04-26 18:05:04.141743816 -0400
-@@ -1276,13 +1276,14 @@
-     def getRoot(self,opts):
-         # If the conf file is inside the  installroot - use that.
-         # otherwise look for it in the normal root
-+        if opts.conffile is None:
-+            opts.conffile = '/etc/yum/yum.conf'
-+            if opts.installroot:
-+                if os.access(opts.installroot+opts.conffile, os.R_OK):
-+                    opts.conffile = opts.installroot+opts.conffile
-+                elif os.access(opts.installroot+'/etc/yum.conf', os.R_OK):
-+                    opts.conffile = opts.installroot+'/etc/yum.conf'
-         if opts.installroot:
--            if os.access(opts.installroot+'/'+opts.conffile, os.R_OK):
--                opts.conffile = opts.installroot+'/'+opts.conffile
--            elif opts.conffile == '/etc/yum/yum.conf':
--                # check if /installroot/etc/yum.conf exists.
--                if os.access(opts.installroot+'/etc/yum.conf', os.R_OK):
--                    opts.conffile = opts.installroot+'/etc/yum.conf'         
-             root=opts.installroot
-         else:
-             root = '/'
-@@ -1323,7 +1324,7 @@
-                 action="store_true",
-                 help=_("run entirely from system cache, don't update cache"))
-         group.add_option("-c", "--config", dest="conffile",
--                default='/etc/yum/yum.conf',
-+                default=None,
-                 help=_("config file location"), metavar='[config file]')
-         group.add_option("-R", "--randomwait", dest="sleeptime", type='int',
-                 default=None,
-diff -ur yum-3.2.25.orig/yum/config.py yum-3.2.25/yum/config.py
---- yum-3.2.25.orig/yum/config.py      2010-04-26 18:04:21.232521015 -0400
-+++ yum-3.2.25/yum/config.py   2010-04-26 18:04:45.824994677 -0400
-@@ -602,6 +602,29 @@
-     syslog_ident = Option()
-     syslog_facility = Option('LOG_DAEMON')
-+
-+
-+    def getRootedPath(self, path, enforce_default=False, defaults_to_host=False):
-+        instroot = self.installroot
-+        if instroot is None:
-+            return path
-+
-+        if   path.startswith('hostfs://'):   res = path[9:]
-+        elif path.startswith('chrootfs://'): res = instroot + '/' + path[11:]
-+        else:
-+            tmp = instroot + '/' + path
-+
-+            if enforce_default:
-+                if defaults_to_host:    res = path
-+                else:                   res = tmp
-+            else:
-+                if os.path.exists(tmp): res = tmp
-+                elif defaults_to_host:  res = path
-+                else:                   res = tmp
-+
-+        return res
-+
-+
- class YumConf(StartupConf):
-     '''
-     Configuration option definitions for yum.conf\'s [main] section.
-@@ -615,6 +638,7 @@
-     persistdir = Option('/var/lib/yum')
-     keepcache = BoolOption(True)
-     logfile = Option('/var/log/yum.log')
-+    lockfile = Option('/var/run/yum.pid')
-     reposdir = ListOption(['/etc/yum/repos.d', '/etc/yum.repos.d'])
-     commands = ListOption()
-@@ -854,9 +878,9 @@
-     yumconf.populate(startupconf._parser, 'main')
-     # Apply the installroot to directory options
--    for option in ('cachedir', 'logfile', 'persistdir'):
-+    for option in ('cachedir', 'logfile', 'lockfile', 'persistdir'):
-         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.25.orig/yum/config.py.orig yum-3.2.25/yum/config.py.orig
---- yum-3.2.25.orig/yum/config.py.orig 2010-04-26 18:04:21.093414920 -0400
-+++ yum-3.2.25/yum/config.py.orig      2010-04-26 18:04:21.232521015 -0400
-@@ -788,6 +788,7 @@
-     sslclientcert = Inherit(YumConf.sslclientcert)
-     sslclientkey = Inherit(YumConf.sslclientkey)
-+    skip_if_unavailable = BoolOption(False)
-     
- class VersionGroupConf(BaseConfig):
-     pkglist = ListOption()
-diff -ur yum-3.2.25.orig/yum/__init__.py yum-3.2.25/yum/__init__.py
---- yum-3.2.25.orig/yum/__init__.py    2010-04-26 18:04:21.238799385 -0400
-+++ yum-3.2.25/yum/__init__.py 2010-04-26 18:04:45.828610053 -0400
-@@ -392,8 +392,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.exists(self.conf.installroot+'/'+reposdir):
--                reposdir = self.conf.installroot + '/' + reposdir
-+            reposdir = self.conf.getRootedPath(reposdir)
-             if os.path.isdir(reposdir):
-                 for repofn in sorted(glob.glob('%s/*.repo' % reposdir)):
-@@ -1320,9 +1319,8 @@
-             return
-             
-         root = self.conf.installroot
--        lockfile = root + '/' + lockfile # lock in the chroot
--        lockfile = os.path.normpath(lockfile) # get rid of silly preceding extra /
--        
-+        lockfile = self.conf.lockfile
-+
-         mypid=str(os.getpid())    
-         while not self._lock(lockfile, mypid, 0644):
-             fd = open(lockfile, 'r')
-Only in yum-3.2.25/yum: __init__.py.orig
diff --git a/yum-3.2.27_el6-chroot.patch b/yum-3.2.27_el6-chroot.patch
new file mode 100644 (file)
index 0000000..453b360
--- /dev/null
@@ -0,0 +1,223 @@
+Patch for yum-3.2.27-14.el6_0.1
+
+diff --git a/cli.py b/cli.py
+index cebbae3..cdb0129 100644
+--- a/cli.py
++++ b/cli.py
+@@ -1347,13 +1347,14 @@ class YumOptionParser(OptionParser):
+     def getRoot(self,opts):
+         # If the conf file is inside the  installroot - use that.
+         # otherwise look for it in the normal root
++        if opts.conffile==None:
++            opts.conffile = '/etc/yum/yum.conf'
++            if opts.installroot:
++                if os.access(opts.installroot+opts.conffile, os.R_OK):
++                    opts.conffile = opts.installroot+opts.conffile
++                elif os.access(opts.installroot+'/etc/yum.conf', os.R_OK):
++                    opts.conffile = opts.installroot+'/etc/yum.conf'
+         if opts.installroot:
+-            if os.access(opts.installroot+'/'+opts.conffile, os.R_OK):
+-                opts.conffile = opts.installroot+'/'+opts.conffile
+-            elif opts.conffile == '/etc/yum/yum.conf':
+-                # check if /installroot/etc/yum.conf exists.
+-                if os.access(opts.installroot+'/etc/yum.conf', os.R_OK):
+-                    opts.conffile = opts.installroot+'/etc/yum.conf'         
+             root=opts.installroot
+         else:
+             root = '/'
+@@ -1394,7 +1395,6 @@ class YumOptionParser(OptionParser):
+                 action="store_true",
+                 help=_("run entirely from system cache, don't update cache"))
+         group.add_option("-c", "--config", dest="conffile",
+-                default='/etc/yum/yum.conf',
+                 help=_("config file location"), metavar='[config file]')
+         group.add_option("-R", "--randomwait", dest="sleeptime", type='int',
+                 default=None,
+diff --git a/yum/__init__.py b/yum/__init__.py
+index 978815d..916c8d6 100644
+--- a/yum/__init__.py
++++ b/yum/__init__.py
+@@ -399,8 +399,7 @@ class YumBase(depsolve.Depsolve):
+             # 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.exists(self.conf.installroot+'/'+reposdir):
+-                reposdir = self.conf.installroot + '/' + reposdir
++            reposdir = self.conf.getRootedPath(reposdir)
+             if os.path.isdir(reposdir):
+                 for repofn in sorted(glob.glob('%s/*.repo' % reposdir)):
+@@ -1379,9 +1378,7 @@ class YumBase(depsolve.Depsolve):
+         if self.conf.uid != 0:
+             return
+             
+-        root = self.conf.installroot
+-        lockfile = root + '/' + lockfile # lock in the chroot
+-        lockfile = os.path.normpath(lockfile) # get rid of silly preceding extra /
++        lockfile = self.conf.lockfile
+         
+         mypid=str(os.getpid())    
+         while not self._lock(lockfile, mypid, 0644):
+diff --git a/yum/config.py b/yum/config.py
+index 975172a..603aacc 100644
+--- a/yum/config.py
++++ b/yum/config.py
+@@ -604,6 +604,26 @@ class StartupConf(BaseConfig):
+     syslog_facility = Option('LOG_DAEMON')
+     persistdir = Option('/var/lib/yum')
+     
++    def getRootedPath(self, path, enforce_default=False, defaults_to_host=False):
++        instroot = getattr(self, 'installroot', None)
++        if instroot==None:
++            return path
++
++        if   path.startswith('hostfs://'):   res = path[9:]
++        elif path.startswith('chrootfs://'): res = instroot + '/' + path[11:]
++        else:
++            tmp = instroot + '/' + path
++
++            if enforce_default:
++                if defaults_to_host:    res = path
++                else:                   res = tmp
++            else:
++                if os.path.exists(tmp): res = tmp
++                elif defaults_to_host:  res = path
++                else:                   res = tmp
++
++        return res
++
+ class YumConf(StartupConf):
+     '''
+     Configuration option definitions for yum.conf\'s [main] section.
+@@ -617,6 +637,7 @@ class YumConf(StartupConf):
+     keepcache = BoolOption(True)
+     logfile = Option('/var/log/yum.log')
++    lockfile = Option('/var/run/yum.pid')
+     reposdir = ListOption(['/etc/yum/repos.d', '/etc/yum.repos.d'])
+     commands = ListOption()
+@@ -832,7 +853,10 @@ def readStartupConfig(configfile, root):
+     # Stuff this here to avoid later re-parsing
+     startupconf._parser = parser
+     # setup the release ver here
+-    startupconf.releasever = _getsysver(startupconf.installroot, startupconf.distroverpkg)
++    try:
++        startupconf.releasever = _getsysver(startupconf.installroot, startupconf.distroverpkg)
++    except:
++        startupconf.releasever = ""
+     uuidfile = '%s/%s/uuid' % (startupconf.installroot, startupconf.persistdir)
+     startupconf.uuid = get_uuid(uuidfile)
+@@ -864,7 +888,7 @@ def readMainConfig(startupconf):
+     # Apply the installroot to directory options
+     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)
+@@ -888,7 +912,7 @@ def readMainConfig(startupconf):
+         yumvars[fsvar] = val
+     # These can use the above FS yumvars
+-    for option in ('cachedir', 'logfile', 'persistdir'):
++    for option in ('cachedir', 'logfile', 'persistdir', 'lockfile'):
+         _apply_installroot(yumconf, option)
+     # Add in some extra attributes which aren't actually configuration values 
+diff --git a/yum/history.py b/yum/history.py
+index 32eed2c..64b6695 100644
+--- a/yum/history.py
++++ b/yum/history.py
+@@ -176,10 +176,7 @@ class YumHistory:
+         self._conn = None
+         
+         self.conf = yum.misc.GenericHolder()
+-        if not os.path.normpath(db_path).startswith(root):
+-            self.conf.db_path  = os.path.normpath(root + '/' + db_path)
+-        else:
+-            self.conf.db_path = os.path.normpath('/' + db_path)
++        self.conf.db_path  = db_path
+         self.conf.writable = False
+         self.conf.readable = True
+diff --git a/yum/rpmsack.py b/yum/rpmsack.py
+index 878e8d4..1938f1a 100644
+--- a/yum/rpmsack.py
++++ b/yum/rpmsack.py
+@@ -151,13 +151,8 @@ class RPMDBPackageSack(PackageSackBase):
+         self._get_pro_cache = {}
+         self._get_req_cache  = {}
+         self._loaded_gpg_keys = False
+-        if cachedir is None:
+-            cachedir = persistdir + "/rpmdb-indexes"
+-        self.setCacheDir(cachedir)
+-        if not os.path.normpath(persistdir).startswith(self.root):
+-            self._persistdir = root +  '/' + persistdir
+-        else:
+-            self._persistdir = persistdir
++        self._cachedir = persistdir + "/rpmdb-indexes"
++        self._persistdir = persistdir
+         self._have_cached_rpmdbv_data = None
+         self._cached_conflicts_data = None
+         # Store the result of what happens, if a transaction completes.
+@@ -217,14 +212,6 @@ class RPMDBPackageSack(PackageSackBase):
+         self.transactionReset() # Should do nothing, but meh...
+         self._cached_rpmdb_mtime = None
+-    def setCacheDir(self, cachedir):
+-        """ Sets the internal cachedir value for the rpmdb, to be the
+-            "rpmdb-indexes" directory in the persisent yum storage. """
+-        if not os.path.normpath(cachedir).startswith(self.root):
+-            self._cachedir = self.root + '/' + cachedir
+-        else:
+-            self._cachedir = '/' + cachedir
+-
+     def readOnlyTS(self):
+         if not self.ts:
+             self.ts =  initReadOnlyTransaction(root=self.root)
+@@ -861,7 +848,7 @@ class RPMDBPackageSack(PackageSackBase):
+         # http://lists.rpm.org/pipermail/rpm-maint/2007-November/001719.html
+         # ...if anything gets implemented, we should change.
+         rpmdbvfname = self._cachedir + "/version"
+-        rpmdbfname  = self.root + "/var/lib/rpm/Packages"
++        rpmdbfname  = self.root + rpm.expandMacro("%_dbpath/Packages")
+         if os.path.exists(rpmdbvfname) and os.path.exists(rpmdbfname):
+             # See if rpmdb has "changed" ...
+@@ -881,7 +868,7 @@ class RPMDBPackageSack(PackageSackBase):
+         if self._cached_rpmdb_mtime is None:
+             return # We haven't loaded any packages!!!
+-        rpmdbfname  = self.root + "/var/lib/rpm/Packages"
++        rpmdbfname  = self.root + rpm.expandMacro("%_dbpath/Packages")
+         if not os.path.exists(rpmdbfname):
+             return # haha
+@@ -1104,7 +1091,7 @@ class RPMDBPackageSack(PackageSackBase):
+         self._name2pkg.setdefault(po.name, []).append(po)
+         self._tup2pkg[po.pkgtup] = po
+         if self.__cache_rpmdb__ and self._cached_rpmdb_mtime is None:
+-            rpmdbfname  = self.root + "/var/lib/rpm/Packages"
++            rpmdbfname  = self.root + rpm.expandMacro("%_dbpath/Packages")
+             self._cached_rpmdb_mtime = os.path.getmtime(rpmdbfname)
+         return po
+diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py
+index 0340153..a544b9c 100644
+--- a/yum/rpmtrans.py
++++ b/yum/rpmtrans.py
+@@ -243,7 +243,10 @@ class RPMTransaction:
+     def _scriptout(self, data):
+         msgs = self._scriptOutput()
+         self.display.scriptout(data, msgs)
+-        self.base.history.log_scriptlet_output(data, msgs)
++        try:
++            self.base.history.log_scriptlet_output(data, msgs)
++        except:
++            self.display.errorlog('could not log scriptlet output')
+     def __del__(self):
+         self._shutdownOutputLogging()
index 06191e0..7ce76d0 100644 (file)
--- a/yum.spec
+++ b/yum.spec
@@ -2,8 +2,8 @@
  
 Summary: RPM installer/updater
 Name: yum
-Version: 3.2.25
-Release: 12%{?dist}
+Version: 3.2.27
+Release: 14%{?dist}
 License: GPLv2+
 Group: System Environment/Base
 Source0: http://yum.baseurl.org/download/3.2/%{name}-%{version}.tar.gz
@@ -15,13 +15,37 @@ Patch2: yum-manpage-files.patch
 Patch3: yum-multilib-policy-best.patch
 Patch4: no-more-exactarchlist.patch
 Patch5: geode-arch.patch
-Patch6: yum-HEAD.patch
-Patch7: yum-xHEAD.patch
-Patch8: yumvar-pungi-hack.patch
-Patch9: rpmdb-problems+minor-cleanups.patch
+Patch6: BZ-528738-bugtracker.patch
+
+Patch32: yum-distro-sync.patch
+Patch33: yum-install-cmd-exit+provides-msgs+docs.patch
+Patch34: yum-history-user.patch
+Patch35: yum-PK-search-API.patch
+Patch36: yum-history-list-errors+summary-user-column.patch
+Patch37: yum-groupremove-leaf-only.patch
+Patch38: yum-md-reget+yumvars+searchPrco.patch
+
+Patch39: BZ-588911-yum.log-perms.patch
+Patch40: BZ-577627-installroot-double-prefix.patch
+Patch41: BZ-588910-nocontext-tsflag.patch
+Patch42: BZ-588908-many-install-update-speedup.patch
+Patch43: BZ-590340-move-rpmdb-from-cache.patch
+Patch44: BZ-590339-edge-case-depsolving.patch
+Patch45: BZ-593522-install-obs-arch.patch
+Patch46: BZ-595553-akmods-cache-defense.patch
+Patch47: BZ-602354-plugin-hooks-verify-transaction.patch
+Patch48: BZ-584262-downgrade-dep-chain-remove.patch
+Patch49: BZ-572770-int-flags-miscutils.patch
+Patch50: BZ-598639-rpm-bindings-api-change-fix.patch
+Patch51: BZ-603002-group_remove_leaf-empty-transaction.patch
+Patch52: BZ-604080-localinstall-obsoleted.patch
+Patch53: BZ-614496-traceback-no-proc-mounted.patch
+
+
 Patch64: yum-ppc64-preferred.patch
-Patch65: yum-3.2.25-i18n-off.patch
-Patch66: yum-3.2.25-chroot.patch
+Patch65: yum-3.2.27-i18n-off.patch
+
+Patch100: yum-3.2.27_el6-chroot.patch
 
 URL: http://yum.baseurl.org/
 BuildArch: noarch
@@ -61,17 +85,37 @@ can notify you when they are available via email, syslog or dbus.
 %prep
 %setup -q
 %patch1 -p0
-#%%%patch2 -p0
+%patch2 -p1
 %patch3 -p0
 %patch4 -p0
 %patch5 -p1
 %patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
+%patch32 -p1
+%patch33 -p1
+%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
+%patch43 -p1
+%patch44 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
+%patch53 -p1
 %patch64 -p0
 %patch65 -p1
-%patch66 -p1
+
+%patch100 -p1
 
 %build
 make
@@ -94,6 +138,12 @@ rm -f $RPM_BUILD_ROOT/%{_sbindir}/yum-updatesd
 rm -f $RPM_BUILD_ROOT/%{_mandir}/man*/yum-updatesd*
 rm -f $RPM_BUILD_ROOT/%{_datadir}/yum-cli/yumupd.py*
 
+# Ghost files:
+mkdir -p $RPM_BUILD_ROOT/var/lib/yum/history
+mkdir -p $RPM_BUILD_ROOT/var/lib/yum/plugins
+mkdir -p $RPM_BUILD_ROOT/var/lib/yum/yumdb
+touch $RPM_BUILD_ROOT/var/lib/yum/uuid
+
 %find_lang %name
 
 %clean
@@ -105,7 +155,9 @@ rm -rf $RPM_BUILD_ROOT
 %config(noreplace) %{_sysconfdir}/yum.conf
 %dir %{_sysconfdir}/yum
 %config(noreplace) %{_sysconfdir}/yum/version-groups.conf
+# %dir %{_sysconfdir}/yum/protected.d
 %dir %{_sysconfdir}/yum.repos.d
+%dir %{_sysconfdir}/yum/vars
 %config(noreplace) %{_sysconfdir}/logrotate.d/yum
 %{_sysconfdir}/bash_completion.d
 %dir %{_datadir}/yum-cli
@@ -115,6 +167,10 @@ rm -rf $RPM_BUILD_ROOT
 %{python_sitelib}/rpmUtils
 %dir /var/cache/yum
 %dir /var/lib/yum
+%ghost /var/lib/yum/uuid
+%ghost /var/lib/yum/history
+%ghost /var/lib/yum/plugins
+%ghost /var/lib/yum/yumdb
 %{_mandir}/man*/yum.*
 %{_mandir}/man*/yum-shell*
 # plugin stuff
@@ -122,33 +178,119 @@ rm -rf $RPM_BUILD_ROOT
 %dir /usr/lib/yum-plugins
 
 %changelog
-* Fri Jan 15 2010 James Antill <james.antill@redhat.com> - 3.2.25-12
-- Some minor problems, esp. with check_duplicates() in problems path.
-- Related: rhbz#543948
-
-* Tue Jan 12 2010 James Antill <james.antill@redhat.com> - 3.2.25-11
-- Fix rpmdb problems sorting, mainly for y-c-t.
-- Related: rhbz#554733
-- Also include a docs cleanup, obsoletes output cleanup and pgp
-- errors edge case fix.
-
-* Thu Jan  7 2010 James Antill <james.antill@redhat.com> - 3.2.25-10
-- Work around Pungi config. hacks. Use .conf.yumvar instead of .yumvar
-- Related: rhbz#543948
-
-* Wed Jan  6 2010 James Antill <james.antill@redhat.com> - 3.2.25-9
-- Rebuilt rawhide yum for for RHEL 6, lots of features and fixes. incl.
-- Work around weird openssl md5==abort in FIPS mode.
-- Resolves: rhbz#541974
-- Add --rpmverbosity option.
-- Resolves: 548341
-- Related: rhbz#543948
-
-* Tue Dec 08 2009 Dennis Gregorovic <dgregor@redhat.com> - 3.2.25-1.2
-- Rebuilt for RHEL 6
-
-* Tue Nov 10 2009 Dennis Gregorovic <dgregor@redhat.com> - 3.2.25-1.1
-- Rebuild for RHEL 6
+* Tue Aug 24 2010 Seth Vidal <svidal@redhat.com> - 3.2.27-14
+- fixed 588911 patch to be correct patch
+- add patch file for 572770 to take the old date from the wrong patch from 588911
+
+* Tue Jul 27 2010 James Antill <james.antill@redhat.com> - 3.2.27-13
+- Don't traceback when proc isn't mounted.
+- Resolves: rhbz#614496
+- Own the /etc/yum/vars dir.
+- Resolves: rhbz#611906
+
+* Wed Jun 16 2010 James Antill <james.antill@redhat.com> - 3.2.27-12
+- Stop allowing installation of obsoleted, only by installed.
+- Resolves: rhbz#604080
+
+* Fri Jun 11 2010 James Antill <james.antill@redhat.com> - 3.2.27-10
+- Stop downgrade dep. chain removals
+- Resolves: rhbz#584262
+- Fix for rpm bindings api change
+- Resolves: rhbz#598639
+- Add plugin hooks for verify transaction pre/post.
+- Resolves: rhbz#602354
+- Fix groupremove_leaf_only when it empties the transaction.
+- Resolves: rhbz#603002
+
+* Tue May 25 2010 James Antill <james.antill@redhat.com> - 3.2.27-9
+- Fix installs of obsoleted multiarch packages.
+- Resolves: rhbz#593522
+- Create a defense against akmod style postinst install hacks.
+- Resolves: rhbz#595553
+
+* Tue May 11 2010 James Antill <james.antill@redhat.com> - 3.2.27-8
+- Move rpmdb cache/indexes to /var/lib
+- Resolves: rhbz#590340
+- Fix old missing recheck in depsolve
+- Resolves: rhbz#590339
+
+* Tue May  4 2010 James Antill <james.antill@redhat.com> - 3.2.27-7
+- A few minor bugfixes from upstream
+- yum.log perms
+- Resolves: rhbz#588911
+- installroot double prefixing, on anaconda/kickstart install
+- Resolves: rhbz#577627
+- Add nocontexts flag to tsflags, if available.
+- Resolves: rhbz#588910
+- Speedup many install/update of same pkg.
+- Resolves: rhbz#588908
+- Correct os.path.link => os.path.islink typo, for dynamic yum vars.
+- Resolves: rhbz#588907
+
+* Fri Apr 16 2010 James Antill <james.antill@redhat.com> - 3.2.27-4
+- A few minor bugfixes from upstream
+- Add dynamic FS based yumvars
+- Resolves: rhbz#576703
+
+* Fri Mar 26 2010 James Antill <james.antill@redhat.com> - 3.2.27-3
+- 3.2.27 from Fedora, and a couple of minor patches
+- Resolves: rhbz#576703
+
+* Thu Mar 18 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.27-1
+- 3.2.27 from upstream (more or less the same as 3.2.26-6 but with a new number
+
+* Thu Mar 11 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.26-6
+- should be the final HEAD update before 3.2.27
+
+* Thu Feb 24 2010 James Antill <james@fedoraproject.org> - 3.2.26-5
+- new HEAD, minor features and speed.
+
+* Wed Feb 17 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.26-4
+- new HEAD to fix the fix to the fix
+
+* Tue Feb 16 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.26-3
+- latest head - including fixes to searchPrcos
+
+* Wed Feb 10 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.26-2
+- grumble.
+
+* Tue Feb  9 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.26-1
+- final 3.2.26
+
+* Mon Feb  8 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.25-14
+- $uuid, pkgtags searching, latest HEAD patch - pre 3.2.26
+
+* Fri Jan 28 2010 James Antill <james at fedoraproject.org> - 3.2.25-13
+- A couple of bugfixes, most notably:
+-  you can now install gpg keys again!
+-  bad installed file requires don't get cached.
+
+* Fri Jan 22 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.25-12
+- someone forgot to push their changes
+
+* Fri Jan 22 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.25-11
+- more fixes, more fun
+
+* Fri Jan 15 2010 James Antill <james at fedoraproject.org> - 3.2.25-10
+- latest head
+- Fixes for pungi, rpmdb caching and kernel-PAE-devel duplicates finding
+- among others.
+
+* Mon Jan  4 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.25-8
+- latest head
+
+* Thu Dec 10 2009 James Antill <james at fedoraproject.org> - 3.2.25-7
+- Fixes the mash bug, lookup in the tsInfo too. :(
+- And fix the txmbr/po confusion ... third build the charm.
+
+* Fri Dec  4 2009 James Antill <james at fedoraproject.org> - 3.2.25-4
+- Fixes for yum clean all, BZ 544173
+- Also allow "yum clean rpmdb" to work, bad tester, bad.
+
+* Thu Dec  3 2009 Seth Vidal <skvidal at fedoraproject.org> - 3.2.25-2
+- rebuild yum with latest HEAD patch
+- add rpmdb caching patch james wrote to see if it breaks everyone :)
+
 
 * Wed Oct 14 2009 Seth Vidal <skvidal at fedoraproject.org> - 3.2.25-1
 - 3.2.25