rpms/yum/devel latest-head4rawhide.sh, NONE, 1.1 yum-HEAD.patch, 1.58, 1.59 yum.spec, 1.319, 1.320

James Antill james at fedoraproject.org
Fri Jun 11 19:50:23 UTC 2010


Author: james

Update of /cvs/pkgs/rpms/yum/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv5593

Modified Files:
	yum-HEAD.patch yum.spec 
Added Files:
	latest-head4rawhide.sh 
Log Message:
* Fri Jun 11 2010 James Antill <james at fedoraproject.org> - 3.2.27-15
- Latest head.
- Add filtering requires code for createrepo.
- Add installed_by/changed_by yumdb values.
- Tweak output for install/reinstall/downgrade callbacks.
- Add plugin hooks for pre/post verifytrans.
- Deal with local pkgs. which only obsolete.
- No chain removals on downgrade.
- Bunch of speedups for "list installed blah", and "remove blah".



--- NEW FILE latest-head4rawhide.sh ---
#! /bin/zsh -e

done=false
if [ "x$1" = "xjames" ]; then
    done=true
    cvs=~/work/fedora/cvs/yum/devel
    git=~/work/rpm/private/yum
fi
if [ "x$1" = "xseth" ]; then
    done=true
    cvs=~/work/fedora/cvs/yum/devel
    git=~/work/rpm/private/yum
    exit 1
fi
if ! $done; then

  echo " Usage: $0 james | seth" 1>&2
  echo "" 1>&2
  echo "  This command copies the latest git HEAD into Fedora rawhide," 1>&2
  echo " working out the versions automatically. It also makes the" 1>&2
  echo " diff between HEADs as minimal as possible. " 1>&2
  exit 1
fi

cd $cvs
ver=$(make verrel | perl -lpe 's/-[^-]+$//' | sed s/\\\./-/g)

cd $git
git format-patch --stdout $ver  | perl -pe 's!^(Subject: \[PATCH )0*(\d+)/\d+!$1$2!' > $cvs/yum-HEAD.patch

yum-HEAD.patch:
 Makefile                       |    2 
 b/Makefile                     |    2 
 b/cli.py                       |   63 +
 b/docs/yum.8                   |   10 
 b/docs/yum.conf.5              |    5 
 b/etc/Makefile                 |    1 
 b/etc/yum.bash                 |    7 
 b/output.py                    |   39 
 b/po/fi.po                     |  204 ++--
 b/po/pt_BR.po                  | 1724 ++++++++++++++++++++++++-----------------
 b/po/ru.po                     |   13 
 b/po/sv.po                     | 1423 +++++++++++++++++++--------------
 b/rpmUtils/miscutils.py        |   45 -
 b/rpmUtils/oldUtils.py         |    2 
 b/rpmUtils/transaction.py      |    7 
 b/rpmUtils/updates.py          |   13 
 b/test/depsolvetests.py        |   16 
 b/test/simpleobsoletestests.py |   19 
 b/test/simpleupdatetests.py    |   41 
 b/test/testbase.py             |    2 
 b/test/yum-leak-test.py        |   55 +
 b/test/yum-pylintrc            |    3 
 b/utils.py                     |    3 
 b/yum-updatesd.py              |    8 
 b/yum.spec                     |    3 
 b/yum/__init__.py              |   11 
 b/yum/comps.py                 |   21 
 b/yum/config.py                |    3 
 b/yum/depsolve.py              |   12 
 b/yum/history.py               |   35 
 b/yum/logginglevels.py         |    3 
 b/yum/mdparser.py              |    2 
 b/yum/metalink.py              |    6 
 b/yum/misc.py                  |    9 
 b/yum/packageSack.py           |   32 
 b/yum/packages.py              |   16 
 b/yum/pgpmsg.py                |    3 
 b/yum/pkgtag_db.py             |    4 
 b/yum/plugins.py               |    3 
 b/yum/repoMDObject.py          |   93 ++
 b/yum/repos.py                 |    2 
 b/yum/rpmsack.py               |   17 
 b/yum/sqlitesack.py            |   27 
 b/yum/transactioninfo.py       |   11 
 b/yum/update_md.py             |    5 
 b/yum/yumRepo.py               |    9 
 b/yumcommands.py               |   23 
 b/yummain.py                   |   11 
 cli.py                         |   99 +-
 docs/yum.8                     |   48 +
 docs/yum.conf.5                |   74 +
 etc/Makefile                   |    1 
 etc/yum.bash                   |   18 
 output.py                      |  268 ++++--
 po/fi.po                       |    5 
 po/ru.po                       | 1303 +++++++++++++++---------------
 po/sv.po                       |  157 +--
 rpmUtils/miscutils.py          |   15 
 rpmUtils/updates.py            |   40 
 test/simpleobsoletestests.py   |    6 
 test/simpleupdatetests.py      |    6 
 test/testbase.py               |   15 
 test/yum-leak-test.py          |   57 +
 utils.py                       |   28 
 yum.spec                       |   28 
 yum/__init__.py                |  519 ++++++++----
 yum/comps.py                   |    6 
 yum/config.py                  |  111 +-
 yum/depsolve.py                |  188 +++-
 yum/history.py                 |  310 ++++++-
 yum/logginglevels.py           |   59 -
 yum/misc.py                    |  163 +++
 yum/packageSack.py             |   46 -
 yum/packages.py                |  165 ++-
 yum/pgpmsg.py                  |   17 
 yum/repoMDObject.py            |   11 
 yum/rpmsack.py                 |  278 ++++--
 yum/sqlitesack.py              |  162 +--
 yum/transactioninfo.py         |   72 +
 yum/update_md.py               |   26 
 yum/yumRepo.py                 |   52 -
 yumcommands.py                 |   19 
 82 files changed, 5310 insertions(+), 3130 deletions(-)

View full diff with command:
/usr/bin/cvs -n -f diff -kk -u -p -N -r 1.58 -r 1.59 yum-HEAD.patchIndex: yum-HEAD.patch
===================================================================
RCS file: /cvs/pkgs/rpms/yum/devel/yum-HEAD.patch,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -p -r1.58 -r1.59
--- yum-HEAD.patch	2 Jun 2010 17:19:32 -0000	1.58
+++ yum-HEAD.patch	11 Jun 2010 19:50:20 -0000	1.59
@@ -1,1033 +1,384 @@
-diff --git a/Makefile b/Makefile
-index d75b220..8065899 100644
---- a/Makefile
-+++ b/Makefile
-@@ -34,7 +34,7 @@ install:
- 	install -m 755 bin/yum-updatesd.py $(DESTDIR)/usr/sbin/yum-updatesd
+From cc5d13a39dcefbc401255d224c8700f4f907f285 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta at iki.fi>
+Date: Mon, 22 Mar 2010 19:31:43 +0200
+Subject: [PATCH 1] Fix unknown syslog facility mapping.
+
+---
+ yum/logginglevels.py |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/yum/logginglevels.py b/yum/logginglevels.py
+index 6c23f88..3d82b55 100644
+--- a/yum/logginglevels.py
++++ b/yum/logginglevels.py
+@@ -75,7 +75,7 @@ def syslogFacilityMap(facility):
+     elif (facility.upper().startswith("LOG_") and
+           facility[4:].upper() in _syslog_facility_map):
+         return _syslog_facility_map[facility[4:].upper()]
+-    return syslog.LOG_USER
++    return syslog_module.LOG_USER
  
- 	mkdir -p $(DESTDIR)/var/cache/yum
--	mkdir -p $(DESTDIR)/var/lib/yum	
-+	mkdir -p $(DESTDIR)/var/lib/yum
+ def logLevelFromErrorLevel(error_level):
+     """ Convert an old-style error logging level to the new style. """
+-- 
+1.7.0.1
+
+
+From 11dfde5e065e21c5bdb25a087501b90afe0b0dab Mon Sep 17 00:00:00 2001
+From: Seth Vidal <skvidal at fedoraproject.org>
+Date: Tue, 23 Mar 2010 10:09:20 -0400
+Subject: [PATCH 2] make sure we aren't overwriting the value of 'keys'
+
+this determines how many args we pass back in our yielded results
+never noticed it b/c nothing in yum uses keys=True - but it broke PK
+---
+ yum/__init__.py |   10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/yum/__init__.py b/yum/__init__.py
+index ea73549..0aaa819 100644
+--- a/yum/__init__.py
++++ b/yum/__init__.py
+@@ -2163,10 +2163,10 @@ class YumBase(depsolve.Depsolve):
  
- 	for d in $(SUBDIRS); do make PYTHON=$(PYTHON) DESTDIR=`cd $(DESTDIR); pwd` -C $$d install; [ $$? = 0 ] || exit 1; done
+         # do the ones we already have
+         for item in sorted_lists.values():
+-            for pkg, keys, values in item:
++            for pkg, k, v in item:
+                 if pkg not in results_by_pkg:
+                     results_by_pkg[pkg] = []
+-                results_by_pkg[pkg].append((keys,values))
++                results_by_pkg[pkg].append((k,v))
  
-diff --git a/cli.py b/cli.py
-index f5ed53d..2f1479b 100644
---- a/cli.py
-+++ b/cli.py
-@@ -100,6 +100,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-         self.registerCommand(yumcommands.VersionCommand())
-         self.registerCommand(yumcommands.HistoryCommand())
-         self.registerCommand(yumcommands.CheckRpmdbCommand())
-+        self.registerCommand(yumcommands.DistroSyncCommand())
+         # take our existing dict-by-pkg and make the dict-by-count for 
+         # this bizarro sorted_lists format
+@@ -2175,9 +2175,9 @@ class YumBase(depsolve.Depsolve):
+         for pkg in results_by_pkg:
+             totkeys = []
+             totvals = []
+-            for (keys, values) in results_by_pkg[pkg]:
+-                totkeys.extend(keys)
+-                totvals.extend(values)
++            for (k, v) in results_by_pkg[pkg]:
++                totkeys.extend(k)
++                totvals.extend(v)
+             
+             totkeys = misc.unique(totkeys)
+             totvals = misc.unique(totvals)
+-- 
+1.7.0.1
+
+
+From c6f4d336bd6be5cdb575c94628da2eb7bcb900f4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta at iki.fi>
+Date: Mon, 22 Mar 2010 19:56:44 +0200
+Subject: [PATCH 3] Use LOG_USER as default syslog facility everywhere in base.
+
+---
+ yum/config.py |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/yum/config.py b/yum/config.py
+index ad8db7e..cb01306 100644
+--- a/yum/config.py
++++ b/yum/config.py
+@@ -601,7 +601,7 @@ class StartupConf(BaseConfig):
+     pluginconfpath = ListOption(['/etc/yum/pluginconf.d'])
+     gaftonmode = BoolOption(False)
+     syslog_ident = Option()
+-    syslog_facility = Option('LOG_DAEMON')
++    syslog_facility = Option('LOG_USER')
+     persistdir = Option('/var/lib/yum')
+     
+ class YumConf(StartupConf):
+-- 
+1.7.0.1
+
+
+From 40a53f0d3a8dd8ad4fb4802890e4f30b0214f3f9 Mon Sep 17 00:00:00 2001
+From: Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>
+Date: Wed, 24 Mar 2010 12:37:03 +0000
+Subject: [PATCH 4] l10n: Updates to Finnish (fi) translation
+
+Transmitted-via: Transifex (www.transifex.net)
+---
+ po/fi.po |  203 +++++++++++++++++++++++++++++++------------------------------
+ 1 files changed, 103 insertions(+), 100 deletions(-)
+
+diff --git a/po/fi.po b/po/fi.po
+index 4347eba..4240973 100644
+--- a/po/fi.po
++++ b/po/fi.po
+@@ -6,8 +6,8 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: yum\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2010-02-10 10:43-0500\n"
+-"PO-Revision-Date: 2010-02-11 21:50+0200\n"
++"POT-Creation-Date: 2010-02-11 10:54-0500\n"
++"PO-Revision-Date: 2010-03-24 14:36+0200\n"
+ "Last-Translator: Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>\n"
+ "Language-Team: Finnish <laatu at lokalisointi.org>\n"
+ "MIME-Version: 1.0\n"
+@@ -156,15 +156,15 @@ msgstr "Ladataan paketteja:"
+ msgid "Error Downloading Packages:\n"
+ msgstr "Virhe pakettien latauksessa:\n"
  
-     def registerCommand(self, command):
-         for name in command.getNames():
-@@ -149,7 +150,34 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-                 usage += "%s\n" % command.getNames()[0]
+-#: ../cli.py:426 ../yum/__init__.py:4194
++#: ../cli.py:426 ../yum/__init__.py:4195
+ msgid "Running rpm_check_debug"
+ msgstr "Suoritetaan rpm_check_debug"
  
-         return usage
--
-+    
-+    def _parseSetOpts(self, setopts):
-+        """parse the setopts list handed to us and saves the results as
-+           repo_setopts and main_setopts in the yumbase object"""
-+
-+        repoopts = {}
-+        mainopts = yum.misc.GenericHolder()
-+        mainopts.items = []
-+
-+        for item in setopts:
-+            k,v = item.split('=')
-+            period = k.find('.') 
-+            if period != -1:
-+                repo = k[:period]
-+                k = k[period+1:]
-+                if repo not in repoopts:
-+                    repoopts[repo] = yum.misc.GenericHolder()
-+                    repoopts[repo].items = []
-+                setattr(repoopts[repo], k, v)
-+                repoopts[repo].items.append(k)
-+            else:
-+                setattr(mainopts, k, v)
-+                mainopts.items.append(k)
-+        
-+        self.main_setopts = mainopts
-+        self.repo_setopts = repoopts
-+        
-+        
-     def getOptionsConfig(self, args):
-         """parses command line arguments, takes cli args:
-         sets up self.conf and self.cmds as well as logger objects 
-@@ -166,6 +194,13 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-             opts.quiet = True
-             opts.verbose = False
+-#: ../cli.py:435 ../yum/__init__.py:4203
[...35066 lines suppressed...]
+-- 
+1.7.0.1
+
+
+From 6adb022fd54b7232c7d4410313c029f8a3a87313 Mon Sep 17 00:00:00 2001
+From: James Antill <james at and.org>
+Date: Fri, 11 Jun 2010 00:57:47 -0400
+Subject: [PATCH 181] Fix typo info=>list
+
+---
+ output.py |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/output.py b/output.py
+index 05a4e83..4e8fbe9 100755
+--- a/output.py
++++ b/output.py
+@@ -1333,7 +1333,7 @@ to exit.
  
-         rc = 0
--        if base._rpmdb_warn_checks(_out, False, chkcmd):
-+        if base._rpmdb_warn_checks(out=_out, warn=False, chkcmd=chkcmd,
-+                                   header=lambda x: None):
-             rc = 1
-         return rc, ['%s %s' % (basecmd, chkcmd)]
+         tids, printall = self._history_list_transactions(extcmds)
+         if tids is None:
+-            return 1, ['Failed history info']
++            return 1, ['Failed history list']
+ 
+         fmt = "%s | %s | %s | %s | %s"
+         print fmt % (utf8_width_fill(_("ID"), 6, 6),
+-- 
+1.7.0.1
+
+
+From 43deeed3f0755d36c30c41c08fd8703d5ffbdcbb Mon Sep 17 00:00:00 2001
+From: James Antill <james at and.org>
+Date: Fri, 11 Jun 2010 01:18:02 -0400
+Subject: [PATCH 182] Add installed_by and changed_by to info -v
+
+---
+ output.py |   46 ++++++++++++++++++++++++++++++----------------
+ 1 files changed, 30 insertions(+), 16 deletions(-)
+
+diff --git a/output.py b/output.py
+index 4e8fbe9..4a1e10e 100755
+--- a/output.py
++++ b/output.py
+@@ -558,27 +558,41 @@ class YumOutput:
  
-diff --git a/yummain.py b/yummain.py
-index 305e0c7..95c7462 100755
---- a/yummain.py
-+++ b/yummain.py
-@@ -99,9 +99,13 @@ def main(args):
-             if "%s" %(e.msg,) != lockerr:
-                 lockerr = "%s" %(e.msg,)
-                 logger.critical(lockerr)
--            logger.critical(_("Another app is currently holding the yum lock; waiting for it to exit..."))
--            show_lock_owner(e.pid, logger)
--            time.sleep(2)
-+            if not base.conf.exit_on_lock:
-+                logger.critical(_("Another app is currently holding the yum lock; waiting for it to exit..."))
-+                show_lock_owner(e.pid, logger)
-+                time.sleep(2)
-+            else:
-+                logger.critical(_("Another app is currently holding the yum lock; exiting as configured by exit_on_lock"))
-+                return 1
-         else:
-             break
+     def infoOutput(self, pkg, highlight=False):
+         (hibeg, hiend) = self._highlight(highlight)
+-        print _("Name       : %s%s%s") % (hibeg, to_unicode(pkg.name), hiend)
+-        print _("Arch       : %s") % to_unicode(pkg.arch)
++        print _("Name        : %s%s%s") % (hibeg, to_unicode(pkg.name), hiend)
++        print _("Arch        : %s") % to_unicode(pkg.arch)
+         if pkg.epoch != "0":
+-            print _("Epoch      : %s") % to_unicode(pkg.epoch)
+-        print _("Version    : %s") % to_unicode(pkg.version)
+-        print _("Release    : %s") % to_unicode(pkg.release)
+-        print _("Size       : %s") % self.format_number(float(pkg.size))
+-        print _("Repo       : %s") % to_unicode(pkg.repoid)
++            print _("Epoch       : %s") % to_unicode(pkg.epoch)
++        print _("Version     : %s") % to_unicode(pkg.version)
++        print _("Release     : %s") % to_unicode(pkg.release)
++        print _("Size        : %s") % self.format_number(float(pkg.size))
++        print _("Repo        : %s") % to_unicode(pkg.repoid)
+         if pkg.repoid == 'installed' and 'from_repo' in pkg.yumdb_info:
+-            print _("From repo  : %s") % to_unicode(pkg.yumdb_info.from_repo)
++            print _("From repo   : %s") % to_unicode(pkg.yumdb_info.from_repo)
+         if self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
+-            print _("Committer  : %s") % to_unicode(pkg.committer)
+-            print _("Committime : %s") % time.ctime(pkg.committime)
+-            print _("Buildtime  : %s") % time.ctime(pkg.buildtime)
++            print _("Committer   : %s") % to_unicode(pkg.committer)
++            print _("Committime  : %s") % time.ctime(pkg.committime)
++            print _("Buildtime   : %s") % time.ctime(pkg.buildtime)
+             if hasattr(pkg, 'installtime'):
+-                print _("Installtime: %s") % time.ctime(pkg.installtime)
+-        print self.fmtKeyValFill(_("Summary    : "), self._enc(pkg.summary))
++                print _("Install time: %s") % time.ctime(pkg.installtime)
++            uid = None
++            if 'installed_by' in pkg.yumdb_info:
++                try:
++                    uid = int(pkg.yumdb_info.installed_by)
++                except ValueError: # In case int() fails
++                    uid = None
++            print _("Installed by: %s") % self._pwd_ui_username(uid)
++            uid = None
++            if 'changed_by' in pkg.yumdb_info:
++                try:
++                    uid = int(pkg.yumdb_info.changed_by)
++                except ValueError: # In case int() fails
++                    uid = None
++            print _("Changed by  : %s") % self._pwd_ui_username(uid)
++        print self.fmtKeyValFill(_("Summary     : "), self._enc(pkg.summary))
+         if pkg.url:
+-            print _("URL        : %s") % to_unicode(pkg.url)
+-        print self.fmtKeyValFill(_("License    : "), to_unicode(pkg.license))
+-        print self.fmtKeyValFill(_("Description: "), self._enc(pkg.description))
++            print _("URL         : %s") % to_unicode(pkg.url)
++        print self.fmtKeyValFill(_("License     : "), to_unicode(pkg.license))
++        print self.fmtKeyValFill(_("Description : "),self._enc(pkg.description))
+         print ""
+     
+     def updatesObsoletesList(self, uotup, changetype, columns=None):
+-- 
+1.7.0.1
+
+
+From c087a15375776974bb7825dfb8558759755af569 Mon Sep 17 00:00:00 2001
+From: Seth Vidal <skvidal at fedoraproject.org>
+Date: Fri, 11 Jun 2010 10:42:29 -0400
+Subject: [PATCH 183] - optionally collapse libc.so.6 requires into highest requires (default sort order)
+
+our libc.so.6 requires are fairly redundant - 6 requires per pkg requiring glibc, on avg.
+The highest versioned libc.so.6 requirement is good enough so remove the others.
+
+This cuts out about 17-20% of our requires
+---
+ yum/packages.py |   11 +++++++++++
+ 1 files changed, 11 insertions(+), 0 deletions(-)
+
+diff --git a/yum/packages.py b/yum/packages.py
+index 6c32106..98d4d38 100644
+--- a/yum/packages.py
++++ b/yum/packages.py
+@@ -1098,6 +1098,17 @@ class YumAvailablePackage(PackageObject, RpmBase):
+         msg = ""
  
+         if mylist: msg = "\n    <rpm:requires>\n"
++        if hasattr(self, '_collapse_libc_requires') and self._collapse_libc_requires:
++            libc_requires = filter(lambda x: x[0].startswith('libc.so.6'), mylist)
++            if libc_requires:
++                best = sorted(libc_requires)[-1]
++                newlist = []
++                for i in mylist:
++                    if i[0].startswith('libc.so.6') and i != best:
++                        continue
++                    newlist.append(i)
++                mylist = newlist
++        
+         for (name, flags, (e,v,r),pre) in mylist:
+             if name.startswith('rpmlib('):
+                 continue
+-- 
+1.7.0.1
+
+
+From 0c4d027b73753e94c7928676a54bbe2135940409 Mon Sep 17 00:00:00 2001
+From: James Antill <james at and.org>
+Date: Fri, 11 Jun 2010 10:44:35 -0400
+Subject: [PATCH 184] Don't return None when transaction is empty in resolveDeps, BZ 603002
+
+---
+ yum/depsolve.py |    7 +++----
+ 1 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/yum/depsolve.py b/yum/depsolve.py
+index b661191..3e95626 100644
+--- a/yum/depsolve.py
++++ b/yum/depsolve.py
+@@ -776,10 +776,9 @@ class Depsolve(object):
+                 self.verbose_logger.log(logginglevels.DEBUG_4,"  --> %s" % err)
+             return (1, errors)
+ 
+-        if len(self.tsInfo) > 0:
+-            if not len(self.tsInfo):
+-                return (0, [_('Success - empty transaction')])
+-            return (2, [_('Success - deps resolved')])
++        if not len(self.tsInfo):
++            return (0, [_('Success - empty transaction')])
++        return (2, [_('Success - deps resolved')])
+ 
+     def _resolveRequires(self, errors):
+         any_missing = False
+-- 
+1.7.0.1
+


Index: yum.spec
===================================================================
RCS file: /cvs/pkgs/rpms/yum/devel/yum.spec,v
retrieving revision 1.319
retrieving revision 1.320
diff -u -p -r1.319 -r1.320
--- yum.spec	2 Jun 2010 17:19:37 -0000	1.319
+++ yum.spec	11 Jun 2010 19:50:22 -0000	1.320
@@ -3,7 +3,7 @@
 Summary: RPM installer/updater
 Name: yum
 Version: 3.2.27
-Release: 14%{?dist}
+Release: 15%{?dist}
 License: GPLv2+
 Group: System Environment/Base
 Source0: http://yum.baseurl.org/download/3.2/%{name}-%{version}.tar.gz
@@ -132,6 +132,16 @@ rm -rf $RPM_BUILD_ROOT
 %dir /usr/lib/yum-plugins
 
 %changelog
+* Fri Jun 11 2010 James Antill <james at fedoraproject.org> - 3.2.27-15
+- Latest head.
+- Add filtering requires code for createrepo.
+- Add installed_by/changed_by yumdb values.
+- Tweak output for install/reinstall/downgrade callbacks.
+- Add plugin hooks for pre/post verifytrans.
+- Deal with local pkgs. which only obsolete.
+- No chain removals on downgrade.
+- Bunch of speedups for "list installed blah", and "remove blah".
+
 * Wed Jun  2 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.27-14
 - merge in latest yum head:
 - change decompressors to support lzma, if python module is available



More information about the scm-commits mailing list