[Rpm-maint] [RFC/PATCH] comparisons without release
Panu Matilainen
pmatilai at laiskiainen.org
Wed Aug 11 06:54:54 UTC 2010
On Tue, 10 Aug 2010, seth vidal wrote:
>
> A related and interesting question is this:
>
> Why do obsoletes only work on pkg NAMES and conflicts work on pkg
> provides?
>
> from lib/depends.c
>
> /* Check provides against conflicts in installed packages. */
> while (rpmdsNext(provides) >= 0) {
> checkInstDeps(ts, dcache, p, RPMTAG_CONFLICTNAME,
> rpmdsN(provides));
> }
>
> /* Check package name (not provides!) against installed obsoletes */
> checkInstDeps(ts, dcache, p, RPMTAG_OBSOLETENAME, rpmteN(p));
> }
>
>
> Seems like the impact the same kind of thing.
>
> I tried looking through the commits related to this for a justification
> but I couldn't find one.
Yup, obsoletes are quite the oddball. They used to be against provides
back in the day - it goes back to the implicit obsoletes on provides
thing, thread starting here:
http://lists.rpm.org/pipermail/rpm-maint/2007-May/001408.html, continued
here: http://lists.rpm.org/pipermail/rpm-maint/2007-June/001518.html
Implicit obsoletes on provides is different from explicit obsoletes on
provides, the implicit part being the nastier case but there were IIRC
more arguments towards obsoletes only matching names than provides than
the other way around, eg:
http://lists.rpm.org/pipermail/rpm-maint/2007-May/001413.html
So why conflicts on provides instead of names? I dont recall it ever being
discussed in detail, but one possible use is pointed out here:
http://lists.rpm.org/pipermail/rpm-maint/2010-April/002719.html
- Panu -
More information about the Rpm-maint
mailing list