(original) (raw)
On Wednesday, December 5, 2012 at 2:13 AM, PJ Eby wrote:
On Mon, Dec 3, 2012 at 2:43 PM, Daniel Holth <dholth@gmail.com> wrote:How to use Obsoletes:The author of B decides A is obsolete.A releases an empty version of itself that Requires: BB Obsoletes: AThe package manager says "These packages are obsolete: A". Would you like toremove them?User says "OK".Um, no. Even if the the author of A and B are the same person, youcan't remove A if there are other things on the user's system usingit. The above scenario does not work \*at all\*, ever, except in thecase where B is simply an updated version of A (i.e. identical API) --in which case, why bother? To change the project name? (Then itshould be "Formerly-named" or something like that, not "Obsoletes".)
You can automatically uninstall A from B in an automatic dependency
management system. I \*think\* RPM does this, at the very least
I believe it refuses to install B if A is already there (and the reverse
as well).\*
There's nothing preventing an installer from, during it's attempt to
install B, see it Obsoletes A, looking at what depends on A and
warning the user what is going to happen and prompt it.
I think Obsoletes as is an alright bit of information. I think the biggest
flaw with Obsoletes isn't in Obsoletes itself, but is in the lack of a
Conflicts tag that has the same functionality (minimally refusal to
install both, possibly uninstall the previous one with a prompt to the
user).
Obsoletes has the semantics of a logical successor (typically renames)
while Conflicts should have the semantics of a competitor.
distribute would conflict with setuptools, foo2 would Obsoletes foo.
\* I could be wrong about RPM's treatment of Obsoletes
Please, \*please\* see the previous Catalog-SIG discussion I linked:this is only one of multiple metadata fields that were thoroughlydebunked in that discussion as completely useless for automateddependency management.
I don't see this in this thread, could you link it again?
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_Python-Dev mailing list