[yum] Update to latest HEAD.

James Antill james at fedoraproject.org
Fri Nov 22 04:46:31 UTC 2013


commit 6b93075eaee5e0602850678027fecf7e7ae6225b
Author: James Antill <james at and.org>
Date:   Thu Nov 21 23:46:08 2013 -0500

    Update to latest HEAD.
    
    - Don't use the provide for distroverpkg if it's the name of the pkg. BZ 1002977.
    - Use the provides as-is when we do use it. BZ 1002977.
    - Fix the man page formatting for ! explanation in repolist, so it can be read.
    - Add deltarpm_metadata_percentage config. so people can configure MD download.

 yum-HEAD.patch |  147 ++++++++++++++++++++++++++++++++++----------------------
 yum.spec       |   11 ++++-
 2 files changed, 98 insertions(+), 60 deletions(-)
---
diff --git a/yum-HEAD.patch b/yum-HEAD.patch
index 743a2ca..83b6f86 100644
--- a/yum-HEAD.patch
+++ b/yum-HEAD.patch
@@ -2778,7 +2778,7 @@ index 0000000..2af059d
 + the mailing list, yum at lists.baseurl.org, or consult bugzilla.
 +.fi
 diff --git a/docs/yum.8 b/docs/yum.8
-index 1a8202a..2cbdf72 100644
+index 1a8202a..0914765 100644
 --- a/docs/yum.8
 +++ b/docs/yum.8
 @@ -25,6 +25,8 @@ gnome\-packagekit application\&.
@@ -3055,7 +3055,7 @@ index 1a8202a..2cbdf72 100644
  .IP "\fBdeplist\fP"
  Produces a list of all dependencies and what packages provide those
  dependencies for the given packages. As of 3.2.30 it now just shows the latest
-@@ -271,18 +387,19 @@ version of each package that matches (this can be changed by
+@@ -271,18 +387,20 @@ version of each package that matches (this can be changed by
  using --showduplicates) and it only shows the newest providers (which can be
  changed by using --verbose).
  .IP
@@ -3073,14 +3073,16 @@ index 1a8202a..2cbdf72 100644
  both of those. However if the id or name matches exactly then the repo will
  be listed even if you are listing enabled repos. and it is disabled.
  
- In non-verbose mode the first column will start with a '*' if the repo. has
+-In non-verbose mode the first column will start with a '*' if the repo. has
 -metalink data and the latest metadata is not local. For non-verbose mode the
++In non-verbose mode the first column will start with a \'*\' if the repo. has
 +metalink data and the latest metadata is not local and will start with a
-+'!' if the repo. has metadata that is expired. For non-verbose mode the
++\'!\' if the repo. has metadata that is expired (this can happen due to
++metadata_expire_filter). For non-verbose mode the
  last column will also display the number of packages in the repo. and (if there
  are any user specified excludes) the number of packages excluded.
  
-@@ -291,11 +408,63 @@ then yum will ignore any repo errors and output the information it can get
+@@ -291,11 +409,63 @@ then yum will ignore any repo errors and output the information it can get
  (Eg. "yum clean all; yum -C repolist" will output something, although the
  package counts/etc. will be zeroed out).
  .IP
@@ -3146,7 +3148,7 @@ index 1a8202a..2cbdf72 100644
  packages (in sorted order), and the checksum_type/checksum_data entries from
  the yumdb. Note that this rpmdb version is now also used significantly within
  yum (esp. in yum history).
-@@ -321,26 +490,33 @@ and so takes sub-commands:
+@@ -321,26 +491,33 @@ and so takes sub-commands:
  .IP "\fBhistory\fP"
  The history command allows the user to view what has happened in past
  transactions (assuming the history_record config. option is set). You can use
@@ -3186,7 +3188,7 @@ index 1a8202a..2cbdf72 100644
  A (if it is not still installed), and "rollback 1" will try to remove packages
  B and C. Note that after a "rollback 1" you will have a fourth transaction,
  although the ending rpmdb version (see: yum version) should be the same in
-@@ -349,13 +525,20 @@ transactions 1 and 4.
+@@ -349,13 +526,20 @@ transactions 1 and 4.
  The addon-info command takes a transaction ID, and the packages-list command
  takes a package (with wildcards).
  
@@ -3208,7 +3210,7 @@ index 1a8202a..2cbdf72 100644
  .I \fB>\fR - The rpmdb was changed, outside yum, after the transaction.
  .br
  .I \fB<\fR - The rpmdb was changed, outside yum, before the transaction.
-@@ -371,11 +554,156 @@ end of the package column in the packages-list command).
+@@ -371,11 +555,156 @@ end of the package column in the packages-list command).
  .I \fBs\fR - The transaction completed fine, but --skip-broken was enabled and had to skip some packages.
  .br
  
@@ -3367,7 +3369,7 @@ index 1a8202a..2cbdf72 100644
  
  The info command can also take ranges of transaction ids, of the form
  start..end, which will then display a merged history as if all the
-@@ -401,6 +729,11 @@ Assume yes; assume that the answer to any question which would be asked
+@@ -401,6 +730,11 @@ Assume yes; assume that the answer to any question which would be asked
  is yes\&.
  .br
  Configuration Option: \fBassumeyes\fP
@@ -3379,7 +3381,7 @@ index 1a8202a..2cbdf72 100644
  .IP "\fB\-c, \-\-config=[config file]\fP" 
  Specifies the config file location - can take HTTP and FTP URLs and local file
  paths\&.
-@@ -420,7 +753,7 @@ Sets the error level to [number] Practical range 0 \- 10. 0 means print only cri
+@@ -420,7 +754,7 @@ Sets the error level to [number] Practical range 0 \- 10. 0 means print only cri
  .br
  Configuration Option: \fBerrorlevel\fP
  .IP "\fB\-\-rpmverbosity=[name]\fP" 
@@ -3388,7 +3390,7 @@ index 1a8202a..2cbdf72 100644
  options are: 'critical', 'emergency', 'error', 'warn' and 'debug'.
  .br
  Configuration Option: \fBrpmverbosity\fP
-@@ -428,9 +761,7 @@ Configuration Option: \fBrpmverbosity\fP
+@@ -428,9 +762,7 @@ Configuration Option: \fBrpmverbosity\fP
  Sets the maximum amount of time yum will wait before performing a command \- it randomizes over the time.
  .IP "\fB\-C, \-\-cacheonly\fP" 
  Tells yum to run entirely from system cache - does not download or
@@ -3399,7 +3401,7 @@ index 1a8202a..2cbdf72 100644
  .IP "\fB\-\-version\fP" 
  Reports the \fByum\fP version number and installed package versions for
  everything in history_record_packages (can be added to by plugins).
-@@ -461,8 +792,13 @@ processing logic. For more information see the \fBupdate\fP command above.
+@@ -461,8 +793,13 @@ processing logic. For more information see the \fBupdate\fP command above.
  .br
  Configuration Option: \fBobsoletes\fP
  .IP "\fB\-x, \-\-exclude=package\fP"
@@ -3415,7 +3417,7 @@ index 1a8202a..2cbdf72 100644
  .br
  .IP "\fB\-\-color=[always|auto|never]\fP"
  Display colorized output automatically, depending on the output terminal,
-@@ -479,6 +815,13 @@ main == disable excludes defined in [main] in yum.conf
+@@ -479,6 +816,13 @@ main == disable excludes defined in [main] in yum.conf
  .br
  repoid == disable excludes defined for that repo
  .br
@@ -3429,7 +3431,7 @@ index 1a8202a..2cbdf72 100644
  .IP "\fB\-\-disableplugin=plugin\fP"
  Run with one or more plugins disabled, the argument is a comma separated list
  of wildcards to match against plugin names.
-@@ -506,7 +849,14 @@ option will corrupt your cache (and you can use $releasever in your cachedir
+@@ -506,7 +850,14 @@ option will corrupt your cache (and you can use $releasever in your cachedir
  configuration to stop this).
  .PP 
  .IP "\fB\-t, \-\-tolerant\fP"
@@ -3445,7 +3447,7 @@ index 1a8202a..2cbdf72 100644
  .br
  .IP "\fB\-\-setopt=option=value\fP"
  Set any config option in yum config or repo files. For options in the global 
-@@ -523,7 +873,7 @@ version of the package\&.
+@@ -523,7 +874,7 @@ version of the package\&.
  
  The format of the output of yum list is:
  
@@ -3454,7 +3456,7 @@ index 1a8202a..2cbdf72 100644
  
  .IP "\fByum list [all | glob_exp1] [glob_exp2] [\&.\&.\&.]\fP"
  List all available and installed packages\&.
-@@ -542,6 +892,10 @@ shell\-style glob and any matches are printed\&.
+@@ -542,6 +893,10 @@ shell\-style glob and any matches are printed\&.
  List the packages installed on the system that are not available in any yum
  repository listed in the config file.
  .IP
@@ -3465,7 +3467,7 @@ index 1a8202a..2cbdf72 100644
  .IP "\fByum list obsoletes [glob_exp1] [\&.\&.\&.]\fP"
  List the packages installed on the system that are obsoleted by packages
  in any yum repository listed in the config file.
-@@ -658,7 +1012,7 @@ configuration options.
+@@ -658,7 +1013,7 @@ configuration options.
  .I yum-complete-transaction (1)
  .I yumdownloader (1)
  .I yum-utils (1)
@@ -3475,7 +3477,7 @@ index 1a8202a..2cbdf72 100644
  http://yum.baseurl.org/wiki/Faq
  yum search yum
 diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
-index 515aa73..6fae41d 100644
+index 515aa73..4e79298 100644
 --- a/docs/yum.conf.5
 +++ b/docs/yum.conf.5
 @@ -64,7 +64,7 @@ options are: 'critical', 'emergency', 'error', 'warn' and 'debug'.
@@ -3679,7 +3681,7 @@ index 515aa73..6fae41d 100644
  .IP
  \fBbandwidth \fR
  Use to specify the maximum available network bandwidth in bytes/second.  Used
-@@ -300,6 +385,41 @@ with the \fBthrottle\fR option (above). If \fBthrottle\fR is a percentage and
+@@ -300,6 +385,50 @@ with the \fBthrottle\fR option (above). If \fBthrottle\fR is a percentage and
  ignored. Default is `0' (no bandwidth throttling). 
  
  .IP
@@ -3718,10 +3720,19 @@ index 515aa73..6fae41d 100644
 +baseurl) have delta rpms turned off by default.
 +
 +.IP
++\fBdeltarpm_metadata_percentage\fR
++When the relative size of deltarpm metadata vs pkgs is larger than this,
++deltarpm metadata is not downloaded from the repo.
++Default value is 100 (Deltarpm metadata must be smaller than the packages from
++the repo). Note that you can give values over 100, so 200 means that the
++metadata is required to be half the size of the packages.
++Use `0' to turn off this check, and always download metadata.
++
++.IP
  \fBsslcacert \fR
  Path to the directory containing the databases of the certificate authorities
  yum should use to verify SSL certificates. Defaults to none - uses system
-@@ -331,6 +451,15 @@ Path to the SSL client key yum should use to connect to repos/remote sites
+@@ -331,6 +460,15 @@ Path to the SSL client key yum should use to connect to repos/remote sites
  Defaults to none.
  
  .IP
@@ -3737,7 +3748,7 @@ index 515aa73..6fae41d 100644
  \fBhistory_record \fR
  Boolean - should yum record history entries for transactions. This takes some
  disk space, and some extra time in the transactions. But it allows how to know a
-@@ -391,7 +520,9 @@ syslog logging is disabled.  Default is `/dev/log'.
+@@ -391,7 +529,9 @@ syslog logging is disabled.  Default is `/dev/log'.
  
  .IP
  \fBproxy \fR
@@ -3748,7 +3759,7 @@ index 515aa73..6fae41d 100644
  
  .IP
  \fBproxy_username \fR
-@@ -438,6 +569,31 @@ It's also possible to use the word "never", meaning that the metadata will
+@@ -438,6 +578,31 @@ It's also possible to use the word "never", meaning that the metadata will
  never expire. Note that when using a metalink file the metalink must always
  be newer than the metadata for the repository, due to the validation, so this
  timeout also applies to the metalink file.
@@ -3780,7 +3791,7 @@ index 515aa73..6fae41d 100644
  
  .IP
  \fBmirrorlist_expire \fR
-@@ -462,12 +618,12 @@ always did, however it now does some checking on the index and reverts if
+@@ -462,12 +627,12 @@ always did, however it now does some checking on the index and reverts if
  it classifies it as bad.
  
  `group:primary' - Download the primary metadata with the index. This contains
@@ -3798,7 +3809,7 @@ index 515aa73..6fae41d 100644
  
  `group:main' - With the primary and updateinfo download the filelists metadata
  and the group metadata. The filelists data is required for operations like
-@@ -480,6 +636,19 @@ not listed above is the other metadata, which contains the changelog information
+@@ -480,6 +645,19 @@ 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
@@ -3818,7 +3829,7 @@ index 515aa73..6fae41d 100644
  \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, 
-@@ -523,6 +692,13 @@ Default is `normal'.
+@@ -523,6 +701,13 @@ Default is `normal'.
  See color_list_installed_older for possible values.
  
  .IP
@@ -3832,7 +3843,7 @@ index 515aa73..6fae41d 100644
  \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.
-@@ -558,6 +734,13 @@ Default is `bold,underline,green.
+@@ -558,6 +743,13 @@ Default is `bold,underline,green.
  See color_list_installed_older for possible values.
  
  .IP
@@ -3846,7 +3857,7 @@ index 515aa73..6fae41d 100644
  \fBcolor_search_match \fR
  The colorization/highlighting for text matches in search.
  Default is `bold'.
-@@ -587,14 +770,98 @@ be downloaded. The updates list is what is printed when you run "yum update",
+@@ -587,14 +779,98 @@ be downloaded. The updates list is what is printed when you run "yum update",
  Default is `normal'.
  See color_list_installed_older for possible values.
  
@@ -3945,7 +3956,7 @@ index 515aa73..6fae41d 100644
  
  
  .SH "[repository] OPTIONS"
-@@ -668,6 +935,10 @@ value of mirrorlist is copied to metalink (if metalink is not set).
+@@ -668,6 +944,10 @@ value of mirrorlist is copied to metalink (if metalink is not set).
  Either `1' or `0'. This tells yum whether or not use this repository.
  
  .IP
@@ -3956,7 +3967,7 @@ index 515aa73..6fae41d 100644
  \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.
-@@ -702,12 +973,18 @@ key will be automatically imported without user confirmation.
+@@ -702,12 +982,18 @@ key will be automatically imported without user confirmation.
  Same as the [main] \fBexclude\fR option but only for this repository.
  Substitution variables, described below, are honored here.
  
@@ -3979,7 +3990,7 @@ index 515aa73..6fae41d 100644
  
  .IP
  \fBenablegroups\fR
-@@ -755,6 +1032,15 @@ repository.
+@@ -755,6 +1041,20 @@ repository.
  Overrides the \fBbandwidth\fR option from the [main] section for this
  repository.
  
@@ -3992,10 +4003,15 @@ index 515aa73..6fae41d 100644
 +\fBdeltarpm_percentage\fR
 +Overrides the \fBdeltarpm_percentage\fR option from the [main] section
 +for this repository.
++
++.IP
++\fBdeltarpm_metadata_percentage\fR
++Overrides the \fBdeltarpm_metadata_percentage\fR option from the [main] section
++for this repository.
  
  .IP
  \fBsslcacert \fR
-@@ -776,6 +1062,10 @@ repository.
+@@ -776,6 +1076,10 @@ repository.
  Overrides the \fBsslclientkey\fR option from the [main] section for this
  repository.
  
@@ -4006,7 +4022,7 @@ index 515aa73..6fae41d 100644
  
  .IP
  \fBmetadata_expire \fR
-@@ -783,6 +1073,11 @@ Overrides the \fBmetadata_expire\fR option from the [main] section for this
+@@ -783,6 +1087,11 @@ Overrides the \fBmetadata_expire\fR option from the [main] section for this
  repository.
  
  .IP
@@ -4018,7 +4034,7 @@ index 515aa73..6fae41d 100644
  \fBmirrorlist_expire \fR
  Overrides the \fBmirrorlist_expire\fR option from the [main] section for this
  repository.
-@@ -824,7 +1119,16 @@ as greater/less than any other. defaults to 1000
+@@ -824,7 +1133,16 @@ as greater/less than any other. defaults to 1000
  If set to True yum will continue running if this repository cannot be 
  contacted for any reason. This should be set carefully as all repos are consulted
  for any given command. Defaults to False.
@@ -4035,7 +4051,7 @@ index 515aa73..6fae41d 100644
  
  .SH "URL INCLUDE SYNTAX"
  .LP
-@@ -861,8 +1165,8 @@ package.
+@@ -861,8 +1179,8 @@ package.
  
  .IP
  \fB$arch\fR
@@ -191875,7 +191891,7 @@ index 65f6d5e..706e2a4 100755
          print >> sys.stderr, "newcomps.py: No such file:\'%s\'" % sys.argv[1]
          sys.exit(1)
 diff --git a/yum/config.py b/yum/config.py
-index d09511f..45abfd6 100644
+index d09511f..ea6c1ac 100644
 --- a/yum/config.py
 +++ b/yum/config.py
 @@ -38,6 +38,7 @@ if not _use_iniparse:
@@ -192634,7 +192650,7 @@ index d09511f..45abfd6 100644
      alwaysprompt = BoolOption(True)
      exactarch = BoolOption(True)
      tolerant = BoolOption(True)
-@@ -677,18 +784,34 @@ class YumConf(StartupConf):
+@@ -677,18 +784,35 @@ class YumConf(StartupConf):
      obsoletes = BoolOption(True)
      showdupesfromrepos = BoolOption(False)
      enabled = BoolOption(True)
@@ -192659,6 +192675,7 @@ index d09511f..45abfd6 100644
 +    max_connections = IntOption(0, range_min=0)
 +    deltarpm = IntOption(2, range_min=-16, range_max=128)
 +    deltarpm_percentage = IntOption(75, range_min=0, range_max=100)
++    deltarpm_metadata_percentage = IntOption(100, range_min=0)
  
      http_caching = SelectionOption('all', ('none', 'packages', 'all'))
      metadata_expire = SecondsOption(60 * 60 * 6) # Time in seconds (6h).
@@ -192669,7 +192686,7 @@ index d09511f..45abfd6 100644
      # Time in seconds (1 day). NOTE: This isn't used when using metalinks
      mirrorlist_expire = SecondsOption(60 * 60 * 24)
      # XXX rpm_check_debug is unused, left around for API compatibility for now
-@@ -697,13 +820,15 @@ class YumConf(StartupConf):
+@@ -697,13 +821,15 @@ class YumConf(StartupConf):
      skip_broken = BoolOption(False)
      #  Note that "instant" is the old behaviour, but group:primary is very
      # similar but better :).
@@ -192688,7 +192705,7 @@ index d09511f..45abfd6 100644
  
      color = SelectionOption('auto', ('auto', 'never', 'always'),
                              mapper={'on' : 'always', 'yes' : 'always',
-@@ -715,22 +840,27 @@ class YumConf(StartupConf):
+@@ -715,22 +841,27 @@ class YumConf(StartupConf):
      color_list_installed_newer = Option('bold,yellow')
      color_list_installed_reinstall = Option('normal')
      color_list_installed_extra = Option('bold,red')
@@ -192716,7 +192733,7 @@ index d09511f..45abfd6 100644
  
      history_record = BoolOption(True)
      history_record_packages = ListOption(['yum', 'rpm'])
-@@ -744,18 +874,41 @@ class YumConf(StartupConf):
+@@ -744,18 +875,41 @@ class YumConf(StartupConf):
      
      loadts_ignoremissing = BoolOption(False)
      loadts_ignorerpm = BoolOption(False)
@@ -192758,7 +192775,7 @@ index d09511f..45abfd6 100644
          output = '[main]\n'
          # we exclude all vars which start with _ or are in this list:
          excluded_vars = ('cfg', 'uid', 'yumvar', 'progress_obj', 'failure_obj',
-@@ -778,14 +931,12 @@ class YumConf(StartupConf):
+@@ -778,14 +932,12 @@ class YumConf(StartupConf):
          return output
  
  class RepoConf(BaseConfig):
@@ -192776,7 +192793,7 @@ index d09511f..45abfd6 100644
          ck = self.__cached_keys
          if not isinstance(self, RepoConf):
              ck = set()
-@@ -797,6 +948,7 @@ class RepoConf(BaseConfig):
+@@ -797,6 +949,7 @@ class RepoConf(BaseConfig):
  
      name = Option()
      enabled = Inherit(YumConf.enabled)
@@ -192784,7 +192801,7 @@ index d09511f..45abfd6 100644
      baseurl = UrlListOption()
      mirrorlist = UrlOption()
      metalink   = UrlOption()
-@@ -820,42 +972,52 @@ class RepoConf(BaseConfig):
+@@ -820,42 +973,57 @@ class RepoConf(BaseConfig):
      keepalive = Inherit(YumConf.keepalive)
      enablegroups = Inherit(YumConf.enablegroups)
  
@@ -192793,7 +192810,12 @@ index d09511f..45abfd6 100644
      throttle = Inherit(YumConf.throttle)
      timeout = Inherit(YumConf.timeout)
 +    ip_resolve = Inherit(YumConf.ip_resolve)
++    #  This isn't inherited so that we can automatically disable file:// _only_
++    # repos. if they haven't set an explicit deltarpm_percentage for the repo.
 +    deltarpm_percentage = IntOption(None, range_min=0, range_max=100)
++    #  Rely on the above config. to do automatic disabling, and thus. no hack
++    # needed here.
++    deltarpm_metadata_percentage = Inherit(YumConf.deltarpm_metadata_percentage)
 +
      http_caching = Inherit(YumConf.http_caching)
      metadata_expire = Inherit(YumConf.metadata_expire)
@@ -192848,7 +192870,7 @@ index d09511f..45abfd6 100644
  
      # ' xemacs syntax hack
  
-@@ -876,20 +1038,24 @@ def readStartupConfig(configfile, root):
+@@ -876,20 +1044,24 @@ def readStartupConfig(configfile, root):
              raise Errors.ConfigError("All plugin search paths must be absolute")
      # Stuff this here to avoid later re-parsing
      startupconf._parser = parser
@@ -192879,7 +192901,7 @@ index d09511f..45abfd6 100644
      
      # ' xemacs syntax hack
  
-@@ -956,6 +1122,12 @@ def readMainConfig(startupconf):
+@@ -956,6 +1128,12 @@ def readMainConfig(startupconf):
      return yumconf
  
  def readVersionGroupsConfig(configfile="/etc/yum/version-groups.conf"):
@@ -192892,7 +192914,7 @@ index d09511f..45abfd6 100644
      parser = ConfigParser()
      confpp_obj = ConfigPreProcessor(configfile)
      try:
-@@ -970,17 +1142,16 @@ def readVersionGroupsConfig(configfile="/etc/yum/version-groups.conf"):
+@@ -970,17 +1148,16 @@ def readVersionGroupsConfig(configfile="/etc/yum/version-groups.conf"):
  
  
  def getOption(conf, section, name, option):
@@ -192920,7 +192942,7 @@ index d09511f..45abfd6 100644
      try: 
          val = conf.get(section, name)
      except (NoSectionError, NoOptionError):
-@@ -1010,7 +1181,10 @@ def _getsysver(installroot, distroverpkg):
+@@ -1010,7 +1187,10 @@ def _getsysver(installroot, distroverpkg):
      ts = rpmUtils.transaction.initReadOnlyTransaction(root=installroot)
      ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS))
      try:
@@ -192932,7 +192954,7 @@ index d09511f..45abfd6 100644
      except TypeError, e:
          # This is code for "cannot open rpmdb"
          # this is for pep 352 compliance on python 2.6 and above :(
-@@ -1028,25 +1202,40 @@ def _getsysver(installroot, distroverpkg):
+@@ -1028,25 +1208,44 @@ def _getsysver(installroot, distroverpkg):
      if idx.count() == 0:
          releasever = '$releasever'
      else:
@@ -192947,12 +192969,16 @@ index d09511f..45abfd6 100644
 +        flag = hdr[getattr(rpm, 'RPMTAG_PROVIDEFLAGS')][off]
 +        flag = rpmUtils.miscutils.flagToString(flag)
 +        ver  = hdr[getattr(rpm, 'RPMTAG_PROVIDEVERSION')][off]
++
++        #  Note that if distroverpkg is the name of the package, then we can't
++        # use the provide because rpm automatically adds a provide for the name
++        # of the package. So just use the version, to be compatible.
++        if hdr['name'] == distroverpkg_prov:
++            flag = None
++            ver  = None
 +        if flag == 'EQ' and ver:
-+            releasever = rpmUtils.miscutils.stringToVersion(releasever)
-+            if releasever[2]:
-+                releasever = "%s-%s" % (releasever[1], releasever[2]) # No epoch
-+            else:
-+                releasever = releasever[1] # No epoch or release, just version
++            # override the package version
++            releasever = ver
 +
          del hdr
      del idx
@@ -192984,7 +193010,7 @@ index d09511f..45abfd6 100644
      # b/c repoids can have $values in them we need to map both ways to figure
      # out which one is which
      section_id = repo.id
-@@ -1054,6 +1243,22 @@ def writeRawRepoFile(repo,only=None):
+@@ -1054,6 +1253,22 @@ def writeRawRepoFile(repo,only=None):
          for sect in ini._sections.keys():
              if varReplace(sect, repo.yumvar) == repo.id:
                  section_id = sect
@@ -193007,7 +193033,7 @@ index d09511f..45abfd6 100644
      
      # Updated the ConfigParser with the changed values    
      cfgOptions = repo.cfg.options(repo.id)
-@@ -1069,7 +1274,7 @@ def writeRawRepoFile(repo,only=None):
+@@ -1069,7 +1284,7 @@ def writeRawRepoFile(repo,only=None):
          #  If the value is the same, but just interpreted ... when we don't want
          # to keep the interpreted values.
          if (name in ini[section_id] and
@@ -193662,10 +193688,10 @@ index 6d744c0..8b438bb 100644
          self.conflict = conflict # what the conflict was between them
 diff --git a/yum/drpm.py b/yum/drpm.py
 new file mode 100644
-index 0000000..1fd7a11
+index 0000000..42bf70e
 --- /dev/null
 +++ b/yum/drpm.py
-@@ -0,0 +1,342 @@
+@@ -0,0 +1,347 @@
 +#  Integrated delta rpm support
 +#  Copyright 2013 Zdenek Pavlas
 +
@@ -193836,8 +193862,13 @@ index 0000000..1fd7a11
 +                self.verbose_logger.info(_('No Presto metadata available for %s'), repo)
 +                continue
 +            path = repo.cachedir +'/'+ os.path.basename(data.location[1])
-+            if not os.path.exists(path) and int(data.size) > reposize[repo]:
-+                self.verbose_logger.info(_('Not downloading Presto metadata for %s'), repo)
++            perc = repo.deltarpm_metadata_percentage
++            data_size = int(data.size) * (perc / 100.0)
++            if perc and not os.path.exists(path) and data_size > reposize[repo]:
++                msg = _('Not downloading deltainfo for %s, MD is %s and rpms are %s')
++                self.verbose_logger.info(msg, repo,
++                                         progress.format_number(data_size),
++                                         progress.format_number(reposize[repo]))
 +                continue
 +
 +            def failfunc(e, name=name, repo=repo):
diff --git a/yum.spec b/yum.spec
index 09269a2..3955338 100644
--- a/yum.spec
+++ b/yum.spec
@@ -60,7 +60,7 @@ BuildRequires: bash-completion
 Summary: RPM package installer/updater/manager
 Name: yum
 Version: 3.4.3
-Release: 117%{?dist}
+Release: 118%{?dist}
 License: GPLv2+
 Group: System Environment/Base
 Source0: http://yum.baseurl.org/download/3.4/%{name}-%{version}.tar.gz
@@ -444,9 +444,16 @@ exit 0
 %endif
 
 %changelog
+* Thu Nov 21 2013 James Antill <james at fedoraproject.org> - 3.4.3-118
+- Update to latest HEAD.
+- Don't use the provide for distroverpkg if it's the name of the pkg. BZ 1002977.
+- Use the provides as-is when we do use it. BZ 1002977.
+- Fix the man page formatting for ! explanation in repolist, so it can be read.
+- Add deltarpm_metadata_percentage config. so people can configure MD download.
+
 * Tue Nov 19 2013 James Antill <james at fedoraproject.org> - 3.4.3-117
 - Update to latest HEAD.
-- cwFixAdd autocheck_running_kernel config.
+- Fix autocheck_running_kernel config.
 
 * Mon Nov 18 2013 James Antill <james at fedoraproject.org> - 3.4.3-116
 - Update to latest HEAD.


More information about the scm-commits mailing list