On Tue, Nov 20, 2012 at 3:58 PM, Jim J. Jewett <span dir="ltr"><<a href="mailto:jimjjewett@gmail.com" target="_blank">jimjjewett@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
<br>
Vinay Sajip reworded the 'Provides-Dist' definition to explicitly say:<br>
<br>
> The use of multiple names in this field *must not* be used for<br>
> bundling distributions together. It is intended for use when<br>
> projects are forked and merged over time ...<br>
<br>
(1) Then how *should* the "bundle-of-several-components" case be<br>
represented?<br>
<br>
(2) How is 'Provides-Dist' different from 'Obsoletes-Dist'?<br>
The only difference I can see is that it may be a bit more polite<br>
to people who do want to install multiple versions of a (possibly<br>
abstract) package.<br></blockquote><div><br></div><div>The useful way to bundle a bunch of things would be to just include them all in an executable folder or zipfile with __main__.py. PEP 426 and the package database would not get involved. The bundle would be distributed as an application you can download and use, not as an sdist on PyPI.</div>
<div><br></div><div>The intent of Provides and Obsoletes is different. Obsoletes would not satisfy a requirement during dependency resolution.</div><div><br></div><div>The RPM guide explains a similar system:</div><div><div class="" id="RPM_Guide-Dependencies-obsoletes" style="line-height:15.466666221618652px;padding-top:1em;margin-top:1em;color:rgb(0,0,0);font-family:'liberation sans','Myriad ','Bitstream Vera Sans','Lucida Grande','Luxi Sans','Trebuchet MS',helvetica,verdana,arial,sans-serif;font-size:12px">
<div class="" style="line-height:1.29em;padding-top:0px;margin-top:0.3em;padding-bottom:0px;margin-bottom:1em">This brings the total to four types of dependencies that the RPM system tracks:</div><div class="" style="line-height:1.29em;padding-top:0px">
<ul style="padding-left:1.6em;list-style-type:circle"><li class="" style="line-height:1.29em;padding-top:0px;margin-top:0em;padding-bottom:0px;margin-bottom:0.4em"><div class="" style="line-height:1.29em;padding-top:0px;margin-top:0em;padding-bottom:0em;margin-bottom:0em">
Requires, which tracks the capabilities a package requires</div></li><li class="" style="line-height:1.29em;padding-top:0px;margin-top:0em;padding-bottom:0px;margin-bottom:0.4em"><div class="" style="line-height:1.29em;padding-top:0px;margin-top:0em;padding-bottom:0em;margin-bottom:0em">
Provides, which tracks the capabilities a package provides for other packages</div></li><li class="" style="line-height:1.29em;padding-top:0px;margin-top:0em;padding-bottom:0px;margin-bottom:0.4em"><div class="" style="line-height:1.29em;padding-top:0px;margin-top:0em;padding-bottom:0em;margin-bottom:0em">
Conflicts, which describes the capabilities that if installed, conflict with capabilities in a package</div></li><li class="" style="line-height:1.29em;padding-top:0px;margin-top:0em;padding-bottom:0px;margin-bottom:0.4em">
<div class="" style="line-height:1.29em;padding-top:0px;margin-top:0em;padding-bottom:0em;margin-bottom:0em">Obsoletes, which describes the capabilities that this package will make obsolete</div></li></ul></div><div class="" style="line-height:1.29em;padding-top:0px;margin-top:0.3em;padding-bottom:0px;margin-bottom:1em">
Packages advertise this dependency information. Each dependency holds the type, such as requires, a capability, such as a shared library or a package name, and optionally a version number, such as requiring the python package at a version number greater than or equal to 2.2 (python >= 2.2).</div>
</div></div>
<div><br></div><div><a href="http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-dependencies.html#RPM_Guide-Dependencies-obsoletes">http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-dependencies.html#RPM_Guide-Dependencies-obsoletes</a><br>
</div></div></div>