I think the Metadata 1.1 treatment of these concepts is in some ways better. (Metadata 1.2 added the -Dist suffix to the fields in an attempt to make it clear that dependency names are PyPI names and not "import x" names.)<div>
<br></div><div><a href="http://www.python.org/dev/peps/pep-0314/">http://www.python.org/dev/peps/pep-0314/</a> says:<div><br></div><div><pre style="color:rgb(0,0,0);line-height:17.816667556762695px">Provides (multiple use)

      Each entry contains a string describing a package or module that
      will be provided by this package once it is installed.  These
      strings should match the ones used in Requirements fields.  A
      version declaration may be supplied (without a comparison
      operator); the package's version number will be implied if none
      is specified.

      Example: 

          Provides: xml
          Provides: xml.utils
          Provides: xml.utils.iso8601
          Provides: xml.dom
          Provides: xmltools (1.3)

    Obsoletes (multiple use)

      Each entry contains a string describing a package or module
      that this package renders obsolete, meaning that the two packages
      should not be installed at the same time.  Version declarations
      can be supplied.  

      The most common use of this field will be in case a package name
      changes, e.g. Gorgon 2.3 gets subsumed into Torqued Python 1.0.
      When you install Torqued Python, the Gorgon package should be
      removed.
      
      Example:

          Obsoletes: Gorgon</pre><pre style="color:rgb(0,0,0);line-height:17.816667556762695px"><br></pre></div><div>They mean pretty much what the same words mean in RPM and do not need further bikeshedding.</div></div>