rpms/yum/devel yum-HEAD.patch,1.37,1.38 yum.spec,1.290,1.291

James Antill james at fedoraproject.org
Fri Jan 15 21:05:44 UTC 2010


Author: james

Update of /cvs/pkgs/rpms/yum/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17216

Modified Files:
	yum-HEAD.patch yum.spec 
Log Message:
* Fri Jan 15 2010 James Antill <james at fedoraproject.org> - 3.2.25-9
- latest head
- Fixes for pungi, rpmdb caching and kernel-PAE-devel duplicates finding
- among others.


yum-HEAD.patch:
 .gitignore              |    4 
 Makefile                |    4 
 bin/yum.py              |    2 
 cli.py                  |   89 +
 docs/yum.8              |  155 +-
 docs/yum.conf.5         |    7 
 etc/Makefile            |    3 
 etc/yum.bash            |  299 +++++
 output.py               |  213 ++-
 po/.gitignore           |    1 
 po/Makevars             |    1 
 po/ca.po                | 1170 ++++++++++++---------
 po/cs.po                |  821 +++++++--------
 po/da.po                | 1235 +++++++++++++----------
 po/de.po                | 1489 ++++++++++++++++-----------
 po/es.po                |  668 ++++++------
 po/fi.po                | 2558 ++++++++++++++++++++++++++++++++++++++++++++++++
 po/fr.po                |  883 ++++++++--------
 po/it.po                | 1492 +++++++++++++++++----------
 po/ja.po                | 1207 +++++++++++++---------
 po/ms.po                | 1649 +++++++++++++++++++++---------
 po/nb.po                | 1250 +++++++++++++----------
 po/pl.po                |  548 +++++-----
 po/pt.po                | 1651 +++++++++++++++++++++---------
 po/pt_BR.po             |  648 ++++++------
 po/ru.po                | 1658 +++++++++++++++++++++----------
 po/sr.po                | 1392 ++++++++++++++++----------
 po/sr at latin.po          | 1392 ++++++++++++++++----------
 po/sv.po                | 1152 ++++++++++++---------
 po/yum.pot              | 1579 ++++++++++++++++++++---------
 po/zh_CN.po             |  721 +++++++------
 rpmUtils/arch.py        |   20 
 rpmUtils/transaction.py |    6 
 rpmUtils/updates.py     |    8 
 test/operationstests.py |  130 ++
 test/rpmdb-cache.py     |   87 +
 test/testbase.py        |   52 
 utils.py                |   92 +
 yum.spec                |    1 
 yum/__init__.py         |  239 +++-
 yum/comps.py            |   52 
 yum/config.py           |   31 
 yum/depsolve.py         |  241 +++-
 yum/history.py          |   31 
 yum/mdparser.py         |   10 
 yum/metalink.py         |    1 
 yum/misc.py             |  111 +-
 yum/packageSack.py      |   40 
 yum/packages.py         |  178 ++-
 yum/pgpmsg.py           |  298 +++--
 yum/plugins.py          |    2 
 yum/repoMDObject.py     |    9 
 yum/repos.py            |   13 
 yum/rpmsack.py          |  523 +++++++++
 yum/rpmtrans.py         |   29 
 yum/sqlitesack.py       |   35 
 yum/sqlutils.py         |    2 
 yum/transactioninfo.py  |  110 +-
 yum/update_md.py        |    6 
 yum/yumRepo.py          |  196 +--
 yumcommands.py          |   93 +
 yummain.py              |   99 -
 62 files changed, 19024 insertions(+), 9662 deletions(-)

View full diff with command:
/usr/bin/cvs -n -f diff -kk -u -p -N -r 1.37 -r 1.38 yum-HEAD.patchIndex: yum-HEAD.patch
===================================================================
RCS file: /cvs/pkgs/rpms/yum/devel/yum-HEAD.patch,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -p -r1.37 -r1.38
--- yum-HEAD.patch	4 Jan 2010 19:09:40 -0000	1.37
+++ yum-HEAD.patch	15 Jan 2010 21:05:42 -0000	1.38
@@ -280,7 +280,7 @@ index b098a9f..c563e63 100644
  
          
 diff --git a/docs/yum.8 b/docs/yum.8
-index e2fbe3c..fb2f6c2 100644
+index e2fbe3c..82c06ea 100644
 --- a/docs/yum.8
 +++ b/docs/yum.8
 @@ -35,7 +35,7 @@ gnome\-packagekit application\&.
@@ -301,6 +301,41 @@ index e2fbe3c..fb2f6c2 100644
  .I \fR * help [command] 
  .br
  .PP 
+@@ -82,10 +84,10 @@ Repository configuration is honored in all operations.
+ .IP "\fBinstall\fP"
+ Is used to install the latest version of a package or
+ group of packages while ensuring that all dependencies are
+-satisfied\&.  If no package matches the given package name(s), they are
+-assumed to be a shell glob and any matches are then installed\&. If the
+-name starts with an @ character the rest of the name is used as though
+-passed to the groupinstall command\&. If the name is a file, then install works
++satisfied\&.  (See \fBSpecifying package names\fP for more information) 
++If no package matches the given package name(s), they are assumed to be a shell 
++glob and any matches are then installed\&. If the name starts with an 
++@ character the rest of the name is used as though passed to the groupinstall command\&. If the name is a file, then install works
+ like localinstall\&. If the name doesn't match a package, then package
+ "provides" are searched (Eg. "_sqlitecache.so()(64bit)") as are
+ filelists (Eg. "/usr/bin/yum"). Also note that for filelists, wildcards will
+@@ -95,8 +97,8 @@ match multiple packages\&.
+ If run without any packages, update will update every currently
+ installed package.  If one or more packages or package globs are specified, Yum will
+ only update the listed packages\&.  While updating packages, \fByum\fP
+-will ensure that all dependencies are satisfied\&. If the packages or globs
+-specified match to packages which are not currently installed then update will
++will ensure that all dependencies are satisfied\&. (See \fBSpecifying package names\fP for more information) 
++If the packages or globs specified match to packages which are not currently installed then update will
+ not install them\&. update operates on groups, files, provides and filelists
+ just like the "install" command\&.
+ 
+@@ -121,7 +123,7 @@ for more details.
+ Are used to remove the specified packages from the system
+ as well as removing any packages which depend on the package being
+ removed\&. remove operates on groups, files, provides and filelists just like
+-the "install" command\&.
++the "install" command\&.(See \fBSpecifying package names\fP for more information) 
+ .IP 
+ .IP "\fBlist\fP"
+ Is used to list various information about available
 @@ -244,10 +246,31 @@ transactions (assuming the history_record config. option is set). You can use
  info/list/summary to view what happened, undo/redo to act on that information
  and new to start a new history file.
@@ -406,7 +441,7 @@ index e2fbe3c..fb2f6c2 100644
  
  .IP "\fByum list [all | glob_exp1] [glob_exp2] [\&.\&.\&.]\fP"
  List all available and installed packages\&.
-@@ -388,7 +422,9 @@ List the packages installed on the system that are obsoleted by packages
+@@ -388,13 +422,36 @@ List the packages installed on the system that are obsoleted by packages
  in any yum repository listed in the config file.
  .IP
  .IP "\fByum list recent\fP"
@@ -414,10 +449,42 @@ index e2fbe3c..fb2f6c2 100644
 +List packages recently added into the repositories. This is often not helpful,
 +but what you may really want to use is "yum list-updateinfo new" from the
 +security yum plugin.
++.IP
++
++.PP
++.SH "SPECIFYING PACKAGE NAMES"
++A package can be referred to for install, update, remove, list, info etc 
++with any of the following as well as globs of any of the following:
++.IP
++.br
++\fBname\fP
++.br
++\fBname.arch\fP
++.br
++\fBname-ver\fP
++.br
++\fBname-ver-rel\fP
++.br
++\fBname-ver-rel.arch\fP
++.br
++\fBname-epoch:ver-rel.arch\fP
++.br
++\fBepoch:name-ver-rel.arch\fP
++.IP
++For example: \fByum remove kernel-2.4.1-10.i686\fP
++     this will remove this specific kernel-ver-rel.arch.
+ .IP
+-.IP "\fBSpecifying package names\fP"
+-All the list options mentioned above take file-glob-syntax wildcards or package
+-names as arguments, for example \fByum list available 'foo*'\fP will list
+-all available packages that match 'foo*'. (The single quotes will keep your
+-shell from expanding the globs.)
++Or:          \fByum list available 'foo*'\fP 
++     will list all available packages that match 'foo*'. (The single quotes will keep your shell from expanding the globs.)
  .IP
- .IP "\fBSpecifying package names\fP"
- All the list options mentioned above take file-glob-syntax wildcards or package
-@@ -402,7 +438,7 @@ The following are the ways which you can invoke \fByum\fP in clean
+ .PP 
+ .SH "CLEAN OPTIONS"
+@@ -402,7 +459,7 @@ The following are the ways which you can invoke \fByum\fP in clean
  mode. Note that "all files" in the commands below means 
  "all files in currently enabled repositories". 
  If you want to also clean any (temporarily) disabled repositories you need to
@@ -426,7 +493,7 @@ index e2fbe3c..fb2f6c2 100644
  
  .IP "\fByum clean expire-cache\fP"
  Eliminate the local data saying when the metadata and mirrorlists were downloaded for each repo. This means yum will revalidate the cache for each repo. next time it is used. However if the cache is still valid, nothing significant was deleted.
-@@ -411,7 +447,8 @@ Eliminate the local data saying when the metadata and mirrorlists were downloade
+@@ -411,7 +468,8 @@ Eliminate the local data saying when the metadata and mirrorlists were downloade
  Eliminate any cached packages from the system.  Note that packages are not automatically deleted after they are downloaded.
  
  .IP "\fByum clean headers\fP"
@@ -436,7 +503,7 @@ index e2fbe3c..fb2f6c2 100644
  
  .IP "\fByum clean metadata\fP"
  Eliminate all of the files which yum uses to determine the remote
-@@ -420,11 +457,22 @@ metadata the next time it is run.
+@@ -420,34 +478,22 @@ metadata the next time it is run.
  
  .IP "\fByum clean dbcache\fP"
  Eliminate the sqlite cache used for faster access to metadata.
@@ -444,25 +511,48 @@ index e2fbe3c..fb2f6c2 100644
 -it is run.
 +Using this option will force yum to download the sqlite metadata the next time
 +it is run, or recreate the sqlite metadata if using an older repo.
-+
+ 
+-.IP "\fByum clean all\fP"
+-Runs \fByum clean packages\fP and \fByum clean headers\fP, \fByum clean metadata\fP and \fByum clean dbcache\fP as above.
 +.IP "\fByum clean dbcache\fP"
 +Eliminate the sqlite cache used for faster access to metadata.
 +Using this option will force yum to download the sqlite metadata the next time
 +it is run, or recreate the sqlite metadata if using an older repo.
-+
+ 
+-.PP
+-.SH "MISC"
+-.IP "\fBSpecifying package names\fP"
+-A package can be referred to for install,update,list,remove etc with any 
+-of the following:
+-.IP
+-.br
+-\fBname\fP
+-.br
+-\fBname.arch\fP
+-.br
+-\fBname-ver\fP
+-.br
+-\fBname-ver-rel\fP
+-.br
+-\fBname-ver-rel.arch\fP
+-.br
+-\fBname-epoch:ver-rel.arch\fP
+-.br
+-\fBepoch:name-ver-rel.arch\fP
+-.IP
+-For example: \fByum remove kernel-2.4.1-10.i686\fP
 +.IP "\fByum clean rpmdb\fP"
 +Eliminate any cached data from the local rpmdb.
 +
 +.IP "\fByum clean plugins\fP"
 +Tell any enabled plugins to eliminate their cached data.
- 
- .IP "\fByum clean all\fP"
--Runs \fByum clean packages\fP and \fByum clean headers\fP, \fByum clean metadata\fP and \fByum clean dbcache\fP as above.
++
++.IP "\fByum clean all\fP"
 +Does all of the above.
  
- .PP
- .SH "MISC"
-@@ -492,6 +540,7 @@ configuration options.
+ .PP 
+ .SH "PLUGINS"
+@@ -492,6 +538,7 @@ configuration options.
  .I yum-complete-transaction (1)
  .I yumdownloader (1)
  .I yum-utils (1)
@@ -812,9 +902,18 @@ index 0000000..066fb8c
 +# End:
 +# ex: ts=4 sw=4 et filetype=sh
 diff --git a/output.py b/output.py
-index e462646..e1062d7 100755
+index e462646..17ce582 100755
 --- a/output.py
 +++ b/output.py
+@@ -35,7 +35,7 @@ from urlgrabber.grabber import URLGrabError
+ from yum.misc import prco_tuple_to_string
+ from yum.i18n import to_str, to_utf8, to_unicode
[...1706 lines suppressed...]
          def _up_revs(irepos, repoid, rev, pkg, csum):
-@@ -349,6 +705,11 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -349,6 +739,11 @@ class RPMDBPackageSack(PackageSackBase):
                  rpsv = irevs.setdefault(rev, PackageSackVersion())
                  rpsv.update(pkg, csum)
  
@@ -56488,7 +57559,7 @@ index 93e14ec..229adaa 100644
          main = PackageSackVersion()
          irepos = {}
          main_grps = {}
-@@ -382,6 +743,9 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -382,6 +777,9 @@ class RPMDBPackageSack(PackageSackBase):
                  if pkg.name in groups[group]:
                      _up_revs(irepos_grps[group], repoid, rev, pkg, csum)
  
@@ -56498,7 +57569,7 @@ index 93e14ec..229adaa 100644
          if groups:
              return [main, irepos, main_grps, irepos_grps]
          return [main, irepos]
-@@ -416,22 +780,6 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -416,22 +814,6 @@ class RPMDBPackageSack(PackageSackBase):
      def searchNevra(self, name=None, epoch=None, ver=None, rel=None, arch=None):
          return self._search(name, epoch, ver, rel, arch)
  
@@ -56521,7 +57592,7 @@ index 93e14ec..229adaa 100644
      def excludeArchs(self, archlist):
          pass
      
-@@ -479,7 +827,7 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -479,7 +861,7 @@ class RPMDBPackageSack(PackageSackBase):
      def _search(self, name=None, epoch=None, ver=None, rel=None, arch=None):
          '''List of matching packages, to zero or more of NEVRA.'''
          pkgtup = (name, arch, epoch, ver, rel)
@@ -56530,7 +57601,7 @@ index 93e14ec..229adaa 100644
              return [self._tup2pkg[pkgtup]]
  
          loc = locals()
-@@ -491,7 +839,7 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -491,7 +873,7 @@ class RPMDBPackageSack(PackageSackBase):
              else:
                  pkgs = self.returnPkgs()
              for po in pkgs:
@@ -56539,7 +57610,7 @@ index 93e14ec..229adaa 100644
                      if loc[tag] is not None and loc[tag] != getattr(po, tag):
                          break
                  else:
-@@ -508,8 +856,10 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -508,8 +890,10 @@ class RPMDBPackageSack(PackageSackBase):
              self._completely_loaded = True
  
          for hdr in mi:
@@ -56551,7 +57622,7 @@ index 93e14ec..229adaa 100644
                  if loc[tag] is not None and loc[tag] != getattr(po, tag):
                      break
              else:
-@@ -521,7 +871,7 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -521,7 +905,7 @@ class RPMDBPackageSack(PackageSackBase):
          return ret
  
      def _makePackageObject(self, hdr, index):
@@ -56560,7 +57631,7 @@ index 93e14ec..229adaa 100644
              return self._idx2pkg[index]
          po = RPMInstalledPackage(hdr, index, self)
          self._idx2pkg[index] = po
-@@ -692,6 +1042,79 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -692,6 +1076,87 @@ class RPMDBPackageSack(PackageSackBase):
          # XXX deprecate?
          return [po.pkgtup for po in self.getRequires(name, flags, version)]
  
@@ -56594,7 +57665,8 @@ index 93e14ec..229adaa 100644
 +                    continue
 +                flags = yum.depsolve.flags.get(flags, flags)
 +                missing = miscutils.formatRequire(req, ver, flags)
-+                problems.append((pkg, "requires", missing, []))
++                prob = RPMDBProblemDependency(pkg, "requires", missing=missing)
++                problems.append(prob)
 +
 +            for creq in pkg.conflicts:
 +                if creq[0].startswith('rpmlib'): continue
@@ -56605,25 +57677,32 @@ index 93e14ec..229adaa 100644
 +                    continue
 +                flags = yum.depsolve.flags.get(flags, flags)
 +                found = miscutils.formatRequire(req, ver, flags)
-+                problems.append((pkg, "conflicts", found, res))
++                prob = RPMDBProblemDependency(pkg, "conflicts", found=found,
++                                              conflicts=res)
++                problems.append(prob)
 +        return problems
 +
-+    def _iter_two_pkgs(self, ignore):
++    def _iter_two_pkgs(self, ignore_provides):
 +        last = None
 +        for pkg in sorted(self.returnPackages()):
-+            if pkg.name in ignore:
++            if pkg.name in ignore_provides:
++                continue
++            if ignore_provides.intersection(set(pkg.provides_names)):
 +                continue
++
 +            if last is None:
 +                last = pkg
 +                continue
 +            yield last, pkg
 +            last = pkg
 +
-+    def check_duplicates(self, ignore=[]):
-+        """ Checks for any missing dependencies. """
-+
++    def check_duplicates(self, ignore_provides=[]):
++        """ Checks for any "duplicate packages" (those with multiple versions
++            installed), we ignore any packages with a provide in the passed
++            provide list (this is how installonlyworks, so we do the same). """
++        ignore_provides = set(ignore_provides)
 +        problems = []
-+        for last, pkg in self._iter_two_pkgs(ignore):
++        for last, pkg in self._iter_two_pkgs(ignore_provides):
 +            if pkg.name != last.name:
 +                continue
 +            if pkg.verEQ(last) and pkg != last:
@@ -56633,7 +57712,7 @@ index 93e14ec..229adaa 100644
 +                    continue
 +
 +            # More than one pkg, they aren't version equal, or aren't multiarch
-+            problems.append((pkg, "dup", last))
++            problems.append(RPMDBProblemDuplicate(pkg, duplicate=last))
 +        return problems
 +
 +
@@ -57451,7 +58530,7 @@ index 64b175e..fa1c104 100644
              mirror = line.rstrip() # no more trailing \n's
              mirror = mirror.replace('$ARCH', '$BASEARCH')
 diff --git a/yumcommands.py b/yumcommands.py
-index 1451a36..aa7be12 100644
+index 1451a36..21ad361 100644
 --- a/yumcommands.py
 +++ b/yumcommands.py
 @@ -23,6 +23,7 @@ import os
@@ -57594,6 +58673,17 @@ index 1451a36..aa7be12 100644
              for group in groups:
                  if group not in extcmds[1:]:
                      continue
+@@ -1136,8 +1160,8 @@ class VersionCommand(YumCommand):
+ 
+             return 0, ['version groupinfo']
+ 
+-        rel = base.yumvar['releasever']
+-        ba  = base.yumvar['basearch']
++        rel = base.conf.yumvar['releasever']
++        ba  = base.conf.yumvar['basearch']
+         cols = []
+         if vcmd in ('installed', 'all', 'group-installed', 'group-all'):
+             try:
 @@ -1145,9 +1169,8 @@ class VersionCommand(YumCommand):
                  lastdbv = base.history.last()
                  if lastdbv is not None:
@@ -57639,11 +58729,15 @@ index 1451a36..aa7be12 100644
 +        return False
 +
 diff --git a/yummain.py b/yummain.py
-index b2a09cc..e8dd43c 100755
+index b2a09cc..305e0c7 100755
 --- a/yummain.py
 +++ b/yummain.py
-@@ -31,7 +31,7 @@ from yum import _
- from yum.i18n import to_unicode
+@@ -28,10 +28,10 @@ from yum import Errors
+ from yum import plugins
+ from yum import logginglevels
+ from yum import _
+-from yum.i18n import to_unicode
++from yum.i18n import to_unicode, utf8_width
  import yum.misc
  import cli
 -from utils import suppress_keyboard_interrupt_message
@@ -57738,8 +58832,14 @@ index b2a09cc..e8dd43c 100755
              time.sleep(2)
          else:
              break
-@@ -240,10 +169,8 @@ def main(args):
-             logger.critical(_('Error: %s'), msg)
+@@ -237,13 +166,13 @@ def main(args):
+     elif result == 1:
+         # Fatal error
+         for msg in resultmsgs:
+-            logger.critical(_('Error: %s'), msg)
++            prefix = _('Error: %s')
++            prefix2nd = (' ' * (utf8_width(prefix) - 2))
++            logger.critical(prefix, msg.replace('\n', '\n' + prefix2nd))
          if not base.conf.skip_broken:
              verbose_logger.info(_(" You could try using --skip-broken to work around the problem"))
 -        verbose_logger.info(_(" You could try running: package-cleanup --problems\n"
@@ -57751,7 +58851,7 @@ index b2a09cc..e8dd43c 100755
          if unlock(): return 200
          return 1
      elif result == 2:
-@@ -270,7 +197,17 @@ def main(args):
+@@ -270,7 +199,17 @@ def main(args):
      except IOError, e:
          return exIOError(e)
  


Index: yum.spec
===================================================================
RCS file: /cvs/pkgs/rpms/yum/devel/yum.spec,v
retrieving revision 1.290
retrieving revision 1.291
diff -u -p -r1.290 -r1.291
--- yum.spec	4 Jan 2010 19:09:41 -0000	1.290
+++ yum.spec	15 Jan 2010 21:05:43 -0000	1.291
@@ -3,7 +3,7 @@
 Summary: RPM installer/updater
 Name: yum
 Version: 3.2.25
-Release: 8%{?dist}
+Release: 9%{?dist}
 License: GPLv2+
 Group: System Environment/Base
 Source0: http://yum.baseurl.org/download/3.2/%{name}-%{version}.tar.gz
@@ -110,6 +110,11 @@ rm -rf $RPM_BUILD_ROOT
 %dir /usr/lib/yum-plugins
 
 %changelog
+* Fri Jan 15 2010 James Antill <james at fedoraproject.org> - 3.2.25-9
+- 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
 



More information about the scm-commits mailing list