Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > e53c27ce7a27944d2cee0a028d0ccfc9 > files > 35

yum-3.2.22-37.sl.src.rpm

commit 5216a27d35d60e46f028b1fbba58acae5b9e79d2
Author: James Antill <james@and.org>
Date:   Mon Jun 22 01:25:32 2009 -0400

    Don't redo pkgSack init. when pkgSack is false, fixes BZ#507220

diff --git a/yum/__init__.py b/yum/__init__.py
index 2a1f806..ae70354 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -483,7 +483,7 @@ class YumBase(depsolve.Depsolve):
         """populates the package sacks for information from our repositories,
            takes optional archlist for archs to include"""
 
-        if self._pkgSack and thisrepo is None:
+        if self._pkgSack is not None and thisrepo is None:
             return self._pkgSack
         
         if thisrepo is None:
commit 86d3ee60e1d067cd3eeb1aff436502e638f66fdd
Author: James Antill <james@and.org>
Date:   Thu Jun 18 11:39:29 2009 -0400

    Reset the colours to blank, when we turn color off

diff --git a/output.py b/output.py
index 9456df1..3efccf2 100755
--- a/output.py
+++ b/output.py
@@ -141,10 +141,6 @@ class YumTerm:
         self.BG_COLOR = self.__ansi_forced_BG_COLOR
 
     def reinit(self, term_stream=None, color='auto'):
-        if color == 'never':
-            self.__enabled = False
-            return
-
         self.__enabled = True
         if not hasattr(urlgrabber.progress, 'terminal_width_cached'):
             self.columns = 80
@@ -153,7 +149,6 @@ class YumTerm:
         if color == 'always':
             self.__forced_init()
             return
-        assert color == 'auto'
 
         # Output modes:
         self.MODE = {
@@ -188,6 +183,11 @@ class YumTerm:
             'white' : ''
             }
 
+        if color == 'never':
+            self.__enabled = False
+            return
+        assert color == 'auto'
+
         # Curses isn't available on all platforms
         try:
             import curses
commit b485ebde8365fc0ce35375878cd3c41016ebf846
Author: James Antill <james@and.org>
Date:   Mon Jun 22 10:40:51 2009 -0400

    Use LC_MESSAGES instead of LC_CTYPE category in get_my_lang_code

diff --git a/yum/misc.py b/yum/misc.py
index 2135634..ab92b78 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -815,7 +815,7 @@ def setup_locale(override_codecs=True, override_time=False):
 
 
 def get_my_lang_code():
-    mylang = locale.getlocale()
+    mylang = locale.getlocale(locale.LC_MESSAGES)
     if mylang == (None, None): # odd :)
         mylang = 'C'
     else:
diff -ru yum-3.2.22-orig/yum/misc.py yum-3.2.22/yum/misc.py
--- yum-3.2.22-orig/yum/misc.py	2009-06-25 10:38:39.000000000 -0400
+++ yum-3.2.22/yum/misc.py	2009-06-25 10:38:59.000000000 -0400
@@ -45,7 +45,7 @@
 from Errors import MiscError
 # These are API things, so we can't remove them even if they aren't used here.
 # pylint: disable-msg=W0611
-from i18n import to_utf8, to_unicode
+from i18n import to_utf8, to_unicode, to_str
 # pylint: enable-msg=W0611
 
 _share_data_store   = {}
Only in yum-3.2.22/yum: misc.py~
commit acc85de7d75ed00616ac79909551b5a19d243d37
Author: James Antill <james@and.org>
Date:   Thu Jun 18 12:36:33 2009 -0400

     Allow things to set repo directory attributes again (fixes BZ 506640).
      Use preload on pkgs.
      When pkgdir is changed, preload from old pkgdirs.

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 06f0701..028d821 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -495,6 +495,21 @@ class YumRepository(Repository, config.RepoConf):
     grabfunc = property(lambda self: self._getgrabfunc())
     grab = property(lambda self: self._getgrab())
 
+    def _dirSetupMkdir_p(self, dpath):
+        """make the necessary directory path, if possible, raise on failure"""
+        if os.path.exists(dpath) and os.path.isdir(dpath):
+            return
+
+        if self.cache:
+            raise Errors.RepoError, "Cannot access repository dir %s" % dpath
+
+        try:
+            os.makedirs(dpath, mode=0755)
+        except OSError, e:
+            msg = "%s: %s %s: %s" % ("Error making cache directory",
+                                     dpath, "error was", e)
+            raise Errors.RepoError, msg
+
     def dirSetup(self):
         """make the necessary dirs, if possible, raise on failure"""
 
@@ -510,19 +525,8 @@ class YumRepository(Repository, config.RepoConf):
         self.setAttribute('_dir_setup_metadata_cookie', cookie)
 
         for dir in [self.cachedir, self.pkgdir]:
-            if self.cache == 0:
-                if os.path.exists(dir) and os.path.isdir(dir):
-                    continue
-                else:
-                    try:
-                        os.makedirs(dir, mode=0755)
-                    except OSError, e:
-                        raise Errors.RepoError, \
-                            "Error making cache directory: %s error was: %s" % (dir, e)
-            else:
-                if not os.path.exists(dir):
-                    raise Errors.RepoError, \
-                        "Cannot access repository dir %s" % dir
+            self._dirSetupMkdir_p(dir)
+
         # if we're using a cachedir that's not the system one, copy over these
         # basic items from the system one
         self._preload_md_from_system_cache('repomd.xml')
@@ -530,17 +534,35 @@ class YumRepository(Repository, config.RepoConf):
         self._preload_md_from_system_cache('mirrorlist.txt')
         self._preload_md_from_system_cache('metalink.xml')
 
-    def _dirAttr(self, attr):
+    def _dirGetAttr(self, attr):
         """ Make the directory attributes call .dirSetup() if needed. """
         attr = '_dir_setup_' + attr
         if not hasattr(self, attr):
             self.dirSetup()
         return getattr(self, attr)
-    cachedir = property(lambda self: self._dirAttr('cachedir'))
-    pkgdir   = property(lambda self: self._dirAttr('pkgdir'))
-    hdrdir   = property(lambda self: self._dirAttr('hdrdir'))
-    gpgdir   = property(lambda self: self._dirAttr('gpgdir'))
-    metadata_cookie = property(lambda self: self._dirAttr('metadata_cookie'))
+    def _dirSetAttr(self, attr, val):
+        """ Make the directory attributes call .dirSetup() if needed. """
+        attr = '_dir_setup_' + attr
+        if not hasattr(self, attr):
+            self.dirSetup()
+
+        if attr == '_dir_setup_pkgdir':
+            if not hasattr(self, '_old_pkgdirs'):
+                self._old_pkgdirs = []
+            self._old_pkgdirs.append(getattr(self, attr))
+
+        ret = setattr(self, attr, val)
+        if attr in ('_dir_setup_pkgdir', ):
+            self._dirSetupMkdir_p(val)
+        return ret
+    cachedir = property(lambda self: self._dirGetAttr('cachedir'))
+    pkgdir   = property(lambda self: self._dirGetAttr('pkgdir'),
+                        lambda self, x: self._dirSetAttr('pkgdir', x))
+    hdrdir   = property(lambda self: self._dirGetAttr('hdrdir'),
+                        lambda self, x: self._dirSetAttr('hdrdir', x))
+    gpgdir   = property(lambda self: self._dirGetAttr('gpgdir'),
+                        lambda self, x: self._dirSetAttr('gpgdir', x))
+    metadata_cookie = property(lambda self: self._dirGetAttr('metadata_cookie'))
 
     def baseurlSetup(self):
         warnings.warn('baseurlSetup() will go away in a future version of Yum.\n',
@@ -790,6 +812,11 @@ class YumRepository(Repository, config.RepoConf):
         local = package.localPkg()
         basepath = package.basepath
 
+        if self._preload_pkg_from_system_cache(package):
+            if package.verifyLocalPkg():
+                return local
+            misc.unlink_f(local)
+
         return self._getFile(url=basepath,
                         relative=remote,
                         local=local,
@@ -1606,7 +1633,19 @@ class YumRepository(Repository, config.RepoConf):
 
         return returnlist
 
-    def _preload_file_from_system_cache(self, filename, subdir=''):
+    def _preload_file(self, fn, destfn):
+        """attempts to copy the file, if possible"""
+        # don't copy it if the copy in our users dir is newer or equal
+        if not os.path.exists(fn):
+            return False
+        if os.path.exists(destfn):
+            if os.stat(fn)[stat.ST_CTIME] <= os.stat(destfn)[stat.ST_CTIME]:
+                return False
+        shutil.copy2(fn, destfn)
+        return True
+
+    def _preload_file_from_system_cache(self, filename, subdir='',
+                                        destfn=None):
         """attempts to copy the file from the system-wide cache,
            if possible"""
         if not hasattr(self, 'old_base_cache_dir'):
@@ -1621,16 +1660,10 @@ class YumRepository(Repository, config.RepoConf):
             return False
 
         # Try to copy whatever file it is
-        fn = glob_repo_cache_dir + '/' + subdir + os.path.basename(filename)
-        destfn = self.cachedir   + '/' + subdir + os.path.basename(filename)
-        # don't copy it if the copy in our users dir is newer or equal
-        if not os.path.exists(fn):
-            return False
-        if os.path.exists(destfn):
-            if os.stat(fn)[stat.ST_CTIME] <= os.stat(destfn)[stat.ST_CTIME]:
-                return False
-        shutil.copy2(fn, destfn)
-        return True
+        fn = glob_repo_cache_dir   + '/' + subdir + os.path.basename(filename)
+        if destfn is None:
+            destfn = self.cachedir + '/' + subdir + os.path.basename(filename)
+        return self._preload_file(fn, destfn)
 
     def _preload_md_from_system_cache(self, filename):
         """attempts to copy the metadata file from the system-wide cache,
@@ -1640,7 +1673,19 @@ class YumRepository(Repository, config.RepoConf):
     def _preload_pkg_from_system_cache(self, pkg):
         """attempts to copy the package from the system-wide cache,
            if possible"""
-        return self._preload_file_from_system_cache(pkg.localPkg(),subdir='packages/')
+        pname  = os.path.basename(pkg.localPkg())
+        destfn = os.path.join(self.pkgdir, pname)
+        if self._preload_file_from_system_cache(pkg.localPkg(),
+                                                subdir='packages/',
+                                                destfn=destfn):
+            return True
+
+        if not hasattr(self, '_old_pkgdirs'):
+            return False
+        for opkgdir in self._old_pkgdirs:
+            if self._preload_file(os.path.join(opkgdir, pname), destfn):
+                return True
+        return False
 
 
 def getMirrorList(mirrorlist, pdict = None):
commit 06e7d4492846f30d03e400d795bd353bdac6ab77
Author: James Antill <james@and.org>
Date:   Fri Jun 26 14:30:16 2009 -0400

    Add more clever to _pkgSack init, BZ 508139 and

diff --git a/yum/__init__.py b/yum/__init__.py
index be98aae..2f9723b 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -480,6 +480,19 @@ class YumBase(depsolve.Depsolve):
         """populates the package sacks for information from our repositories,
            takes optional archlist for archs to include"""
 
+        # FIXME: Fist of death ... normally we'd do either:
+        #
+        # 1. use self._pkgSack is not None, and only init. once.
+        # 2. auto. correctly re-init each time a repo is added/removed
+        #
+        # ...we should probably just smeg it and do #2, but it's hard and will
+        # probably break something (but it'll "fix" excludes).
+        #  #1 can't be done atm. because we did self._pkgSack and external
+        # tools now rely on being able to create an empty sack and then have it
+        # auto. re-init when they add some stuff. So we add a bit more "clever"
+        # and don't setup the pkgSack to not be None when it's empty. This means
+        # we skip excludes/includes/etc. ... but there's no packages, so
+        # hopefully that's ok.
         if self._pkgSack is not None and thisrepo is None:
             return self._pkgSack
         
@@ -499,6 +512,8 @@ class YumBase(depsolve.Depsolve):
         
         self.repos.getPackageSack().setCompatArchs(archdict)
         self.repos.populateSack(which=repos)
+        if not self.repos.getPackageSack():
+            return self.repos.getPackageSack() # ha ha, see above
         self._pkgSack = self.repos.getPackageSack()
         
         self.excludePackages()
commit ec4a09860cab4f0b7a194b633215dcddb2b0f5eb
Author: Jens Petersen <petersen@redhat.com>
Date:   Mon Jun 1 12:22:24 2009 -0400

    fix speling error for pckages - rh bug $503123 :)

diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 521ffed..18e72ea 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -318,7 +318,7 @@ always (using ANSI codes) or never.
 Command-line option: \fB\-\-color\fP
 
 .IP \fBcolor_list_installed_older \fR
-The colorization/highlighting for pacakges in list/info installed which are
+The colorization/highlighting for packages in list/info installed which are
 older than the latest available package with the same name and arch.
 Default is `bold'.
 Possible values are a comma seperated list containing: bold, blink, dim,
@@ -327,43 +327,43 @@ fg:cyan, fg:white, bg:black, bg:red, bg:green, bg:yellow, bg:blue, bg:magenta,
 bg:cyan, bg:white.
 
 .IP \fBcolor_list_installed_newer \fR
-The colorization/highlighting for pacakges in list/info installed which are
+The colorization/highlighting for packages in list/info installed which are
 newer than the latest available package with the same name and arch.
 Default is `bold,yellow'.
 See color_list_installed_older for possible values.
 
 .IP \fBcolor_list_installed_reinstall \fR
-The colorization/highlighting for pacakges in list/info installed which is
+The colorization/highlighting for packages in list/info installed which is
 the same version as the latest available package with the same name and arch.
 Default is `normal'.
 See color_list_installed_older for possible values.
 
 .IP \fBcolor_list_installed_extra \fR
-The colorization/highlighting for pacakges in list/info installed which has
+The colorization/highlighting for packages in list/info installed which has
 no available package with the same name and arch.
 Default is `bold,red'.
 See color_list_installed_older for possible values.
 
 .IP \fBcolor_list_available_upgrade \fR
-The colorization/highlighting for pacakges in list/info available which is
+The colorization/highlighting for packages in list/info available which is
 an upgrade for the latest installed package with the same name and arch.
 Default is `bold,blue'.
 See color_list_installed_older for possible values.
 
 .IP \fBcolor_list_available_downgrade \fR
-The colorization/highlighting for pacakges in list/info available which is
+The colorization/highlighting for packages in list/info available which is
 a downgrade for the latest installed package with the same name and arch.
 Default is `dim,cyan'.
 See color_list_installed_older for possible values.
 
 .IP \fBcolor_list_available_install \fR
-The colorization/highlighting for pacakges in list/info available which has
+The colorization/highlighting for packages in list/info available which has
 no installed package with the same name and arch.
 Default is `normal'.
 See color_list_installed_older for possible values.
 
 .IP \fBcolor_list_available_reinstall \fR
-The colorization/highlighting for pacakges in list/info available which is
+The colorization/highlighting for packages in list/info available which is
 the same version as the installed package with the same name and arch.
 Default is `bold,underline,green.
 See color_list_installed_older for possible values.
commit e6c7958cf1e3c11bdf75f88f81f02cbbdfdde577
Author: James Antill <james@and.org>
Date:   Tue Jul 7 10:54:09 2009 -0400

    More spelling fixes for the man pages

diff --git a/docs/yum.8 b/docs/yum.8
index a94bc89..4f98211 100644
--- a/docs/yum.8
+++ b/docs/yum.8
@@ -7,7 +7,7 @@ yum \- Yellowdog Updater Modified
 .SH "DESCRIPTION"
 .PP 
 \fByum\fP is an interactive, rpm based, package manager. It can automatically
-perform system updates, including dependancy analysis and obsolete processing
+perform system updates, including dependency analysis and obsolete processing
 based on "repository" metadata. It can also perform installation of new
 packages, removal of old packages and perform queries on the installed and/or
 available packages among many other commands/services (see below)\&. \fByum\fP
@@ -106,7 +106,7 @@ Implemented so you could know if your machine had any updates that needed to
 be applied without running it interactively. Returns exit value of 100 if
 there are packages available for an update. Also returns a list of the pkgs
 to be updated in list format. Returns 0 if no packages are available for
-update. Returns 1 if an error occured.
+update. Returns 1 if an error occurred.
 Running in verbose mode also shows obsoletes.
 .IP
 .IP "\fBupgrade\fP"
@@ -170,7 +170,7 @@ The optional "hidden" argument will also list groups marked as not being
 groupid's are displayed.
 .IP 
 .IP "\fBgroupremove\fP"
-Is used to remove all of the pacakges in a group, unlike "groupinstall" this
+Is used to remove all of the packages in a group, unlike "groupinstall" this
 will remove everything regardless of group_package_types. It is worth pointing
 out that packages can be in more than one group, so "groupinstall X Y" followed
 by "groupremove Y" does not do give you the same result as "groupinstall X".
@@ -309,7 +309,7 @@ main == disable excludes defined in [main] in yum.conf
 repoid == disable excludes defined for that repo
 .br
 .IP "\fB\-\-disableplugin=plugin\fP"
-Run with one or more plugins disabled, the argument is a comma seperated list
+Run with one or more plugins disabled, the argument is a comma separated list
 of wildcards to match against plugin names.
 .br
 .IP "\fB\-\-noplugins\fP"

commit b05bda414682bce0eb145e52988e3d63268164ed
Author: James Antill <james@and.org>
Date:   Tue Jul 7 10:48:57 2009 -0400

    Fix print ascii unicode, matchcallback, BZ 508360

diff --git a/output.py b/output.py
index 3efccf2..74a7ce2 100755
--- a/output.py
+++ b/output.py
@@ -861,7 +861,7 @@ class YumOutput:
                 item = self._sub_highlight(item, highlight, matchfor,
                                            ignore_case=True)
             if can_overflow:
-                print self.fmtKeyValFill(key, item)
+                print self.fmtKeyValFill(key, to_unicode(item))
             else:
                 print key % item
         print '\n\n'
commit e4a941205360c172aac882e7bb1b9ed573106fb6
Author: James Antill <james@and.org>
Date:   Tue Jul 7 14:29:48 2009 -0400

     Real fix for BZ 508445. We were doing inf. recursion in __getattr__ due
    to d03389725e3779928d721370aed9e14afb5304a6.
     Real fix is to not test, as we only get there when they don't exist.

diff --git a/yum/packages.py b/yum/packages.py
index d4838ee..86f8c91 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -1121,8 +1121,9 @@ class YumHeaderPackage(YumAvailablePackage):
         #FIXME - if an error - return AttributeError, not KeyError 
         # ONLY FIX THIS AFTER THE API BREAK
         if thing.startswith('__') and thing.endswith('__'):
-            if not hasattr(self, thing):
-                raise AttributeError, "%s has no attribute %s" % (self, thing)
+            # If these existed, then we wouldn't get here ...
+            # So these are missing.
+            raise AttributeError, "%s has no attribute %s" % (self, thing)
         return self.hdr[thing]

    def doepoch(self):
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index dbf01f9..c3c7265 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -65,9 +65,10 @@ class RPMInstalledPackage(YumInstalledPackage):
     def __getattr__(self, varname):
         self.hdr = val = self._get_hdr()
         self._has_hdr = True
+        # If these existed, then we wouldn't get here ... and nothing in the DB
+        # starts and ends with __'s. So these are missing.
         if varname.startswith('__') and varname.endswith('__'):
-            if not hasattr(self, varname):
-                raise AttributeError, "%s has no attribute %s" % (self, varname)
+            raise AttributeError, "%s has no attribute %s" % (self, varname)
             
         if varname != 'hdr':   #  This is unusual, for anything that happens
             val = val[varname] # a lot we should preload at __init__.
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 5692c07..013156e 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -191,9 +191,10 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
                          'checksum_value' : 'pkgId',
                         }
 
+        # If these existed, then we wouldn't get here ... and nothing in the DB
+        # starts and ends with __'s. So these are missing.
         if varname.startswith('__') and varname.endswith('__'):
-            if not hasattr(self, varname):
-                raise AttributeError, varname
+            raise AttributeError, varname
         
         dbname = varname
         if db2simplemap.has_key(varname):

commit e6c7958cf1e3c11bdf75f88f81f02cbbdfdde577
Author: James Antill <james@and.org>
Date:   Tue Jul 7 10:54:09 2009 -0400

    More spelling fixes for the man pages

  Relaly just diff to latest upstream man page as of:
  2009 Jul 7th.


--- yum-3.2.22/docs/yum.conf.5	2009-07-07 14:41:31.000000000 -0400
+++ /home/james/work/rpm/private/yum/docs/yum.conf.5	2009-07-07 10:53:49.000000000 -0400
@@ -22,21 +22,25 @@
 The [main] section must exist for yum to do anything. It consists of the
 following options:
 
-.IP \fBcachedir\fR
+.IP
+\fBcachedir\fR
 Directory where yum should store its cache and db files. The default is
 `/var/cache/yum'.
 
-.IP \fBpersistdir\fR
+.IP
+\fBpersistdir\fR
 Directory where yum should store information that should persist over multiple
 runs. The default is `/var/lib/yum'.
 
-.IP \fBkeepcache\fR
+.IP
+\fBkeepcache\fR
 Either `1' or `0'. Determines whether or not yum keeps the cache
 of headers and packages after successful installation.  Default is '1'
 (keep files)
 .br
 
-.IP \fBreposdir\fR
+.IP
+\fBreposdir\fR
 A list of directories where yum should look for .repo files which define
 repositories to use. Default is `/etc/yum/repos.d'. Each
 file in this directory should contain one or more repository sections as
@@ -44,38 +48,46 @@
 repositories defined in /etc/yum/yum.conf to form the complete set of
 repositories that yum will use.
 
-.IP \fBdebuglevel\fR
+.IP
+\fBdebuglevel\fR
 Debug message output level. Practical range is 0\-10. Default is `2'.
 
-.IP \fBerrorlevel\fR
+.IP
+\fBerrorlevel\fR
 Error message output level. Practical range is 0\-10. Default is `2'.
 
-.IP \fBlogfile\fR
+.IP
+\fBlogfile\fR
 Full directory and file name for where yum should write its log file.
 
-.IP \fBgpgcheck\fR
+.IP
+\fBgpgcheck\fR
 Either `1' or `0'. This tells yum whether or not it should perform a GPG
 signature check on packages. When this is set in the [main] section it sets the
 default for all repositories. This option also determines whether or not an
 install of a package from a local RPM file will be GPG signature checked. The
 default is `0'.
 
-.IP \fBrepo_gpgcheck\fR
+.IP
+\fBrepo_gpgcheck\fR
 Either `1' or `0'. This tells yum whether or not it should perform a GPG
 signature check on the repodata. When this is set in the [main] section it sets the
 default for all repositories. The default is `0'.
 
-.IP \fBskip_broken\fR
+.IP
+\fBskip_broken\fR
 Either `1' or `0'. Resolve depsolve problems by removing packages that
 are causing problems from the transaction.
 
-.IP \fBassumeyes\fR
+.IP
+\fBassumeyes\fR
 Either `1' or `0'. Determines whether or not yum prompts for confirmation of
 critical actions. Default is `0' (do prompt).
 .br
 Command-line option: \fB\-y\fP
 
-.IP \fBalwaysprompt\fR
+.IP
+\fBalwaysprompt\fR
 Either `1' or `0'. Without this option, yum will not prompt for confirmation
 when the list of packages to be installed exactly matches those given on the
 command line. Unless \fBassumeyes\fR is enabled, it will still prompt for
@@ -83,7 +95,8 @@
 dependencies. Default is `1'.
 .br
 
-.IP \fBtolerant\fR
+.IP
+\fBtolerant\fR
 Either `1' or `0'. If enabled, then yum will be tolerant of errors on the
 command line with regard to packages. For example: if you request to install
 foo, bar and baz and baz is installed; yum won't error out complaining that baz
@@ -91,36 +104,45 @@
 .br
 Command-line option: \fB\-t\fP
 
-.IP \fBexclude\fR
+.IP
+\fBexclude\fR
 List of packages to exclude from updates or installs. This should be a space
 separated list.
 Shell globs using wildcards (eg. * and ?) are allowed.
 
-.IP \fBexactarch\fR
+.IP
+\fBexactarch\fR
 Either `1' or `0'. Set to `1' to make yum update only update the architectures
 of packages that you have installed. ie: with this enabled yum will not install
 an i686 package to update an i386 package. Default is `1'.
 
-.IP \fBinstallonlypkgs \fR
+.IP
+\fBinstallonlypkgs \fR
 List of packages that should only ever be installed, never updated. Kernels
 in particular fall into this category. Defaults to kernel, kernel-smp,
 kernel-bigmem, kernel-enterprise, kernel-debug, kernel-unsupported.
 
-.IP \fBinstallonly_limit \fR
+.IP
+\fBinstallonly_limit \fR
 Number of packages listed in installonlypkgs to keep installed at the same
-time. Setting to 0 disables this feature. Default is '4'.
+time. Setting to 0 disables this feature. Default is '0'. Note that this
+functionality used to be in the "installonlyn" plugin, where this option was
+altered via. tokeep.
 
-.IP \fBkernelpkgnames \fR
+.IP
+\fBkernelpkgnames \fR
 List of package names that are kernels. This is really only here for the
 updating of kernel packages and should be removed out in the yum 2.1 series.
 
-.IP \fBshowdupesfromrepos\fR
+.IP
+\fBshowdupesfromrepos\fR
 Either `0' or `1'. Set to `1' if you wish to show any duplicate packages from
 any repository, from package listings like the info or list commands. Set
 to `0' if you want only to see the newest packages from any repository.
 Default is `0'.
 
-.IP \fBobsoletes \fR
+.IP
+\fBobsoletes \fR
 This option only has affect during an \fBupdate\fR. It enables yum's
 obsoletes processing logic. Useful when doing distribution level upgrades. See
 also the yum \fBupgrade\fR command documentation for more details (yum(8)).
@@ -128,63 +150,75 @@
 .br
 Command-line option: \fB\-\-obsoletes\fP
 
-.IP \fBoverwrite_groups \fR
+.IP
+\fBoverwrite_groups \fR
 Either `0' or `1'. Used to determine yum's behaviour if two or more
 repositories offer the package groups with the same name. If
 \fBoverwrite_groups\fR is `1' then the group packages of the last matching
 repository will be used. If \fBoverwrite_groups\fR is `0' then the groups
 from all matching repositories will be merged together as one large group.
 
-.IP \fBenable_group_conditionals\fR
+.IP
+\fBenable_group_conditionals\fR
 Either `0' or `1'. Determines whether yum will allow the use of conditionals
 packages. Default is `1' (package conditionals are allowed).
 
-.IP \fBgroup_package_types\fR
+.IP
+\fBgroup_package_types\fR
 List of the following: optional, default, mandatory. Tells yum which type
 of packages in groups will be installed when 'groupinstall' is called. 
 Default is: default, mandatory
 
-.IP \fBinstallroot \fR
+.IP
+\fBinstallroot \fR
 Specifies an alternative installroot, relative to which all packages will be
 installed. 
 .br
 Command-line option: \fB\-\-installroot\fP
 
-.IP \fBdistroverpkg\fR
+.IP
+\fBdistroverpkg\fR
 The package used by yum to determine the "version" of the distribution. This
 can be any installed package. Default is `redhat-release'. You can see what
 provides this manually by using: "yum whatprovides redhat-release".
 
-.IP \fBdiskspacecheck\fR
+.IP
+\fBdiskspacecheck\fR
 Either `0' or `1'. Set this to `0' to disable the checking for sufficient
 diskspace before a RPM transaction is run. Default is `1' (perform the check).
 
-.IP \fBtsflags\fR
+.IP
+\fBtsflags\fR
 Comma or space separated list of transaction flags to pass to the rpm
 transaction set. These include 'noscripts', 'notriggers', 'nodocs', 'test', and 'repackage'.
 You can set all/any of them. However, if you don't know what these do in the
 context of an rpm transaction set you're best leaving it alone. Default is
 an empty list.
 
-.IP \fBrecent\fR
+.IP
+\fBrecent\fR
 Number of days back to look for `recent' packages added to a repository.
 Used by the \fBlist recent\fR command. Default is `7'.
 
-.IP \fBretries\fR
+.IP
+\fBretries\fR
 Set the number of times any attempt to retrieve a file should retry before 
 returning an error. Setting this to `0' makes yum try forever. Default is `10'.
 
-.IP \fBkeepalive \fR
+.IP
+\fBkeepalive \fR
 Either `0' or `1'. Set whether HTTP keepalive should be used for HTTP/1.1
 servers that support it. This can improve transfer speeds by using one
 connection when downloading multiple files from a repository. Default is `1'.
 
-.IP \fBtimeout \fR
+.IP
+\fBtimeout \fR
 Number of seconds to wait for a connection before timing out. Defaults to
 30 seconds. This may be too short of a time for extremely overloaded
 sites.
 
-.IP \fBhttp_caching\fR
+.IP
+\fBhttp_caching\fR
 Determines how upstream HTTP caches are instructed to handle any HTTP downloads
 that Yum does. This option can take the following values:
 
@@ -196,10 +230,11 @@
 `none' means that no HTTP downloads should be cached.
 
 The default is `all'. This is recommended unless you are experiencing caching
-related issues. Try to at least use `packages' to minimise load on repository
+related issues. Try to at least use `packages' to minimize load on repository
 servers.
 
-.IP \fBthrottle \fR
+.IP
+\fBthrottle \fR
 Enable bandwidth throttling for downloads. This option can be expressed as a
 absolute data rate in bytes/sec. An SI prefix (k, M or G) may be appended to the
 bandwidth value (eg. `5.5k' is 5.5 kilobytes/sec, `2M' is 2 Megabytes/sec).
@@ -210,47 +245,58 @@
 
 Set to `0' to disable bandwidth throttling. This is the default.
 
-.IP \fBbandwidth \fR
+.IP
+\fBbandwidth \fR
 Use to specify the maximum available network bandwidth in bytes/second.  Used
 with the \fBthrottle\fR option (above). If \fBthrottle\fR is a percentage and
 \fBbandwidth\fR is `0' then bandwidth throttling will be disabled. If
 \fBthrottle\fR is expressed as a data rate (bytes/sec) then this option is
 ignored. Default is `0' (no bandwidth throttling). 
 
-.IP \fBcommands\fR
+.IP
+\fBcommands\fR
 List of functional commands to run if no functional commands are specified
 on the command line (eg. "update foo bar baz quux").  None of the short options
-(eg. -y, -e, -d) are accepted for this option.
+(eg. \-y, \-e, \-d) are accepted for this option.
 
-." .IP \fBsyslog_ident \fR
-." XXX not implemented yet
+.IP
+\fBsyslog_ident \fR
+XXX not implemented yet
+
+.IP
+\fBsyslog_facility \fR
+XXX not implemented yet
 
-." .IP \fBsyslog_facility \fR
-." XXX not implemented yet
-
-.IP \fBproxy \fR
+.IP
+\fBproxy \fR
 url to the proxy server that yum should use.
 
-.IP \fBproxy_username \fR
+.IP
+\fBproxy_username \fR
 username to use for proxy
 
-.IP \fBproxy_password \fR
+.IP
+\fBproxy_password \fR
 password for this proxy
 
-.IP \fBplugins \fR
+.IP
+\fBplugins \fR
 Either `0' or `1'. Global switch to enable or disable yum plugins. Default is
 `0' (plugins disabled). See the \fBPLUGINS\fR section of the \fByum(8)\fR man
 for more information on installing yum plugins.
 
-.IP \fBpluginpath \fR
+.IP
+\fBpluginpath \fR
 A list of directories where yum should look for plugin modules. Default is
 `/usr/share/yum-plugins' and `/usr/lib/yum-plugins'.
 
-.IP \fBpluginconfpath \fR
+.IP
+\fBpluginconfpath \fR
 A list of directories where yum should look for plugin configuration files.
 Default is `/etc/yum/pluginconf.d'.
 
-.IP \fBmetadata_expire \fR
+.IP
+\fBmetadata_expire \fR
 Time (in seconds) after which the metadata will expire. So that if the
 current metadata downloaded is less than this many seconds old then yum will
 not update the metadata against the repository.  If you find that
@@ -263,7 +309,8 @@
 be newer than the metadata for the repository, due to the validation, so this
 timeout also applies to the metalink file.
 
-.IP \fBmirrorlist_expire \fR
+.IP
+\fBmirrorlist_expire \fR
 Time (in seconds) after which the mirrorlist locally cached will expire. 
 If the current mirrorlist is less than this many seconds old then yum
 will not download another copy of the mirrorlist, it has the same extra format
@@ -271,12 +318,13 @@
 If you find that yum is not downloading the mirrorlists as 
 often as you would like lower the value of this option.
 
-.IP \fBmdpolicy \fR
+.IP
+\fBmdpolicy \fR
 You can select from different metadata download policies depending on how much
 data you want to download with the main repository metadata index. The
 advantages of downloading more metadata with the index is that you can't get
 into situations where you need to use that metadata later and the versions
-available aren't compatible (or the user lacks privilages) and that if the
+available aren't compatible (or the user lacks privileges) and that if the
 metadata is corrupt in any way yum will revert to the previous metadata.
 
 `instant' - Just download the new metadata index, this is roughly what yum
@@ -293,7 +341,7 @@
 
 `group:main' - With the primary and updateinfo download the filelists metadata
 and the group metadata. The filelists data is required for operations like
-"yum install /bin/bash", and also some dependancy resolutions require it. The
+"yum install /bin/bash", and also some dependency resolutions require it. The
 group data is used in some graphical clients and for group operations like
 "yum grouplist Base".
 
@@ -301,91 +349,106 @@
 not listed above is the other metadata, which contains the changelog information
 which is used by yum-changelog. This is what "yum makecache" uses.
 
-.IP \fBmultilib_policy \fR
+.IP
+\fBmultilib_policy \fR
 Can be set to 'all' or 'best'. All means install all possible arches for any package you 
 want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, 
 if it is available. Best means install the best arch for this platform, only.
 
-.IP \fBbugtracker_url \fR
+.IP
+\fBbugtracker_url \fR
 Url where bugs should be filed for yum. Configurable for local versions or distro-specific
 bugtrackers.
 
-.IP \fBcolor \fR
+.IP
+\fBcolor \fR
 Display colorized output automatically, depending on the output terminal,
 always (using ANSI codes) or never.
 Command-line option: \fB\-\-color\fP
 
-.IP \fBcolor_list_installed_older \fR
+.IP
+\fBcolor_list_installed_older \fR
 The colorization/highlighting for packages in list/info installed which are
 older than the latest available package with the same name and arch.
 Default is `bold'.
-Possible values are a comma seperated list containing: bold, blink, dim,
+Possible values are a comma separated list containing: bold, blink, dim,
 reverse, underline, fg:black, fg:red, fg:green, fg:yellow, fg:blue, fg:magenta,
 fg:cyan, fg:white, bg:black, bg:red, bg:green, bg:yellow, bg:blue, bg:magenta,
 bg:cyan, bg:white.
 
-.IP \fBcolor_list_installed_newer \fR
+.IP
+\fBcolor_list_installed_newer \fR
 The colorization/highlighting for packages in list/info installed which are
 newer than the latest available package with the same name and arch.
 Default is `bold,yellow'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_list_installed_reinstall \fR
+.IP
+\fBcolor_list_installed_reinstall \fR
 The colorization/highlighting for packages in list/info installed which is
 the same version as the latest available package with the same name and arch.
 Default is `normal'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_list_installed_extra \fR
+.IP
+\fBcolor_list_installed_extra \fR
 The colorization/highlighting for packages in list/info installed which has
 no available package with the same name and arch.
 Default is `bold,red'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_list_available_upgrade \fR
+.IP
+\fBcolor_list_available_upgrade \fR
 The colorization/highlighting for packages in list/info available which is
 an upgrade for the latest installed package with the same name and arch.
 Default is `bold,blue'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_list_available_downgrade \fR
+.IP
+\fBcolor_list_available_downgrade \fR
 The colorization/highlighting for packages in list/info available which is
 a downgrade for the latest installed package with the same name and arch.
 Default is `dim,cyan'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_list_available_install \fR
+.IP
+\fBcolor_list_available_install \fR
 The colorization/highlighting for packages in list/info available which has
 no installed package with the same name and arch.
 Default is `normal'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_list_available_reinstall \fR
+.IP
+\fBcolor_list_available_reinstall \fR
 The colorization/highlighting for packages in list/info available which is
 the same version as the installed package with the same name and arch.
 Default is `bold,underline,green.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_search_match \fR
+.IP
+\fBcolor_search_match \fR
 The colorization/highlighting for text matches in search.
 Default is `bold'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_update_installed \fR
+.IP
+\fBcolor_update_installed \fR
 The colorization/highlighting for packages in the "updates list" which are
 installed. The updates list is what is printed when you run "yum update",
 "yum list updates", "yum list obsoletes" and "yum check-update".
 Default is `normal'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_update_local \fR
+.IP
+\fBcolor_update_local \fR
 The colorization/highlighting for packages in the "updates list" which are
 already downloaded. The updates list is what is printed when you run
 "yum update", "yum list updates", "yum list obsoletes" and "yum check-update".
 Default is `bold'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_update_remote \fR
+.IP
+\fBcolor_update_remote \fR
 The colorization/highlighting for packages in the "updates list" which need to
 be downloaded. The updates list is what is printed when you run "yum update",
 "yum list updates", "yum list obsoletes" and "yum check-update".
@@ -395,7 +458,8 @@
 .SH "[repository] OPTIONS"
 .LP 
 The repository section(s) take the following form:
-.IP \fBExample\fP:
+.IP
+\fBExample\fP:
 [repositoryid] 
 .br 
 name=Some name for this repository
@@ -403,13 +467,16 @@
 baseurl=url://path/to/repository/ 
 .br 
 
-.IP \fBrepositoryid\fR
+.IP
+\fBrepositoryid\fR
 Must be a unique name for each repository, one word.
 
-.IP \fBname\fR
+.IP
+\fBname\fR
 A human readable string describing the repository.
 
-.IP \fBbaseurl\fR
+.IP
+\fBbaseurl\fR
 Must be a URL to the directory where the yum repository's `repodata' directory
 lives. Can be an http://, ftp:// or file:// URL. You can specify multiple URLs
 in one baseurl statement. The best way to do this is like this:
@@ -432,7 +499,8 @@
 You can use HTTP basic auth by prepending "user:password@" to the server
 name in the baseurl line.  For example: "baseurl=http://user:passwd@example.com/".
 
-.IP \fBmetalink\fR
+.IP
+\fBmetalink\fR
 Specifies a URL to a metalink file for the repomd.xml, a list of mirrors for
 the entire repository are generated by converting the mirrors for the
 repomd.xml file to a baseurl. The metalink file also contains the latest
@@ -444,7 +512,8 @@
 As a special hack is the mirrorlist URL contains the word "metalink" then the
 value of mirrorlist is copied to metalink (if metalink is not set).
 
-.IP \fBmirrorlist\fR
+.IP
+\fBmirrorlist\fR
 Specifies a URL to a file containing a list of baseurls. This can be used
 instead of or with the \fBbaseurl\fR option. Substitution variables, described
 below, can be used with this option. 
@@ -452,19 +521,23 @@
 value of mirrorlist is copied to metalink (if metalink is not set).
 
 
-.IP \fBenabled\fR
+.IP
+\fBenabled\fR
 Either `1' or `0'. This tells yum whether or not use this repository.
 
-.IP \fBgpgcheck\fR
+.IP
+\fBgpgcheck\fR
 Either `1' or `0'. This tells yum whether or not it should perform a GPG
 signature check on the packages gotten from this repository.
 
-.IP \fBrepo_gpgcheck\fR
+.IP
+\fBrepo_gpgcheck\fR
 Either `1' or `0'. This tells yum whether or not it should perform a GPG
 signature check on the repodata from this repository.
 
-.IP \fBgpgkey\fR
-A URL pointing to the ASCII-armoured GPG key file for the repository. This
+.IP
+\fBgpgkey\fR
+A URL pointing to the ASCII-armored GPG key file for the repository. This
 option is used if yum needs a public key to verify a package and the required
 key hasn't been imported into the RPM database. If this option is set, yum will
 automatically import the key from the specified URL. You will be prompted before
@@ -474,21 +547,25 @@
 option (above). If a GPG key is required to install a package from a
 repository, all keys specified for that repository will be installed.
 
-.IP \fBexclude\fR
+.IP
+\fBexclude\fR
 Same as the [main] \fBexclude\fR option but only for this repository.
 Substitution variables, described below, are honored here.
 
-.IP \fBincludepkgs\fR
+.IP
+\fBincludepkgs\fR
 Inverse of exclude. This is a list of packages you want to use from a
 repository. If this option lists only one package then that is all yum will
 ever see from the repository. Defaults to an empty list.  Substitution
 variables, described below, are honored here.
 
-.IP \fBenablegroups\fR
+.IP
+\fBenablegroups\fR
 Either `0' or `1'. Determines whether yum will allow the use of package groups
 for this repository. Default is `1' (package groups are allowed).
 
-.IP \fBfailovermethod\fR
+.IP
+\fBfailovermethod\fR
 Either `roundrobin' or `priority'.
 
 `roundrobin' randomly selects a URL out of
@@ -498,52 +575,64 @@
 `priority' starts from the first baseurl listed and reads through them
 sequentially.
 
-\fBfailovermethod\fR defaults to `priority' if not specified.
+\fBfailovermethod\fR defaults to `roundrobin' if not specified.
 
-.IP \fBkeepalive\fR
+.IP
+\fBkeepalive\fR
 Either `1' or `0'. This tells yum whether or not HTTP/1.1 keepalive should be
 used with this repository. See the global option in the [main] section above
 for more information.
 
-.IP \fBtimeout\fR
+.IP
+\fBtimeout\fR
 Overrides the \fBtimeout\fR option from the [main] section for this repository.
 
-.IP \fBhttp_caching\fR
+.IP
+\fBhttp_caching\fR
 Overrides the \fBhttp_caching\fR option from the [main] section for this repository.
 
-.IP \fBretries\fR
+.IP
+\fBretries\fR
 Overrides the \fBretries\fR option from the [main] section for this repository.
 
-.IP \fBthrottle\fR
+.IP
+\fBthrottle\fR
 Overrides the \fBthrottle\fR option from the [main] section for this
 repository.
 
-.IP \fBbandwidth\fR
+.IP
+\fBbandwidth\fR
 Overrides the \fBbandwidth\fR option from the [main] section for this
 repository.
 
-.IP \fBmetadata_expire \fR
+.IP
+\fBmetadata_expire \fR
 Overrides the \fBmetadata_expire\fR option from the [main] section for this
 repository.
 
-.IP \fBmirrorlist_expire \fR
+.IP
+\fBmirrorlist_expire \fR
 Overrides the \fBmirrorlist_expire\fR option from the [main] section for this
 repository.
 
-.IP \fBproxy \fR
+.IP
+\fBproxy \fR
 url to the proxy server for this repository. Set to '_none_' to disable the 
 global proxy setting for this repository. If this is unset it 
 inherits it from the global setting
 
-.IP \fBproxy_username \fR
+.IP
+\fBproxy_username \fR
 username to use for proxy.
 If this is unset it inherits it from the global setting
 
-.IP \fBproxy_password \fR
+.IP
+\fBproxy_password \fR
 password for this proxy.
 If this is unset it inherits it from the global setting
 
-.IP \fBcost \fR
+.IP
+\fBcost \fR
 relative cost of accessing this repository. Useful for weighing one repo's packages
 as greater/less than any other. defaults to 1000
 
@@ -566,20 +655,24 @@
 including \fBname\fR, \fBbaseurl\fR and \fBcommands\fB.
 .LP
 
-.IP \fB$releasever\fR
+.IP
+\fB$releasever\fR
 This will be replaced with the value of the version of the package listed
 in \fBdistroverpkg\fR. This defaults to the version of `redhat-release'
 package.
 
-.IP \fB$arch\fR
+.IP
+\fB$arch\fR
 This will be replaced with your architecture as listed by os.uname()[4] in
 Python.
 
-.IP \fB$basearch\fR
+.IP
+\fB$basearch\fR
 This will be replaced with your base architecture in yum. For example, if
 your $arch is i686 your $basearch will be i386.
 
-.IP \fB$YUM0-$YUM9\fR
+.IP
+\fB$YUM0-$YUM9\fR
 These will be replaced with the value of the shell environment variable of
 the same name. If the shell environment variable does not exist then the
 configuration file variable will not be replaced.