<p>Look more closely at the docs for "Obsoletes" in RPM, not just those for "Provides". Being able to transparently replace an existing package with a renamed one that installs files with the same names is certainly part of the purpose/capabilities of the RPM dependency machinery (i.e. precisely the distribute vs setuptools situation). </p>

<p>We may want to clarify the wording to ensure it is clear that the provision of the dist name (as posted on PyPI) is implied, though.</p>
<p>Cheers,<br>
Nick.</p>
<p>--<br>
Sent from my phone, thus the relative brevity :) </p>
<div class="gmail_quote">On Nov 20, 2012 11:45 AM, "Donald Stufft" <<a href="mailto:donald.stufft@gmail.com">donald.stufft@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

                <div><span style="color:rgb(160,160,168)">On Monday, November 19, 2012 at 8:35 PM, Toshio Kuratomi wrote:</span></div>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px">
                    <span><div><div><div>On Mon, Nov 19, 2012 at 07:49:41PM -0500, Donald Stufft wrote:</div><blockquote type="cite"><div><div>Other languages seem to get along fine without it. Even the OS</div><div>managers which have it don't allow it to be used to masquerade</div>
<div>as another project, only to make generic virtual packages (e.g. "email").</div></div></blockquote><div>I'm not sure this assertion about OS package managers is correct.  I've only</div><div>just read:</div>
<div><a href="http://www.python.org/dev/peps/pep-0426/#provides-dist-multiple-use" target="_blank">http://www.python.org/dev/peps/pep-0426/#provides-dist-multiple-use</a></div><div><br></div><div>but the rough rpm analogue seems to be the Provides: tag.</div>
<div><br></div><div>Provides is given a string which is parsed into a name or a name and version</div><div>like this:</div><div><br></div><div>Provides: python</div><div>Provides: python = 3.1.0</div><div><br></div><div>rpm has no way at package build time to tell that a particular name given in</div>
<div>a provides in one package is the actual name of another package.</div><div><br></div><div>At installtime, rpm keeps package names and provides names separately but in</div><div>dependency comparisons either one can be used to satisfy a requirement.</div>
<div>What that means is that when asking about information on a package with name</div><div>"python", you'll get information about the python package with that name and</div><div>not about anything else that Provides: "python".  But if you are installing</div>
<div>something that has a requirement on "python" either the package with the</div><div>name python or any package that Provides: python can satisfy the requirement.</div><div><br></div></div></div></span></blockquote>
<div>Are you saying the RPM documentation is wrong?
                </div><div><br></div><div><a href="http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html" target="_blank">http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html</a></div><div><br></div><div>The provides tag is used to specify a *virtual package* that the packaged</div>
<div>software makes available when it is installed. Normally, this tag would be</div><div>used when different packages provide equivalent services. For example,</div><div>any package that allows a user to read mail might provide the mail-reader</div>
<div>virtual package. Another package that depends on a mail reader of some</div><div>sort, could require the mail-reader virtual package. It would then install</div><div>without dependency problems, if any one of several mail programs were</div>
<div>installed.</div><div><br></div><div>It pretty clearly states that it is not to be used for masquerading as a</div><div>different package, which was my point. I wasn't making any claims about</div><div>wether it was technically possible to do so or not, just what it's intended</div>
<div>purpose was.</div>
            <br>_______________________________________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-dev" target="_blank">http://mail.python.org/mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="http://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com" target="_blank">http://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com</a><br>
<br></blockquote></div>