On Tue, Apr 13, 2010 at 09:51:12AM +0300, Panu Matilainen wrote:
> >Regarding commit fafd80901c129659d4d0c1945f5922858f410ef7, please
> >test if a refresh of a package which obsoletes itself works.
> 
> Well, the commit doesn't change any behavior, it just removes dead code 
> which hasn't been active in > 5 years. So if its broken, its been that way 
> for a long long time :)

Yes, I just wanted to bring that topic up again ;-)

> >By "refresh" I mean the re-installation of an already installed
> >package.
> >
> >i.e. if package A contains an "Obsoletes: A", try
> >
> >   rpm -i A.rpm
> >   rpm -Uvv --oldpackage A.rpm
> >
> >A package refresh shouldn't run the uninstall scriplets (for
> >whatever reason).
> 
> Hmm.. with current HEAD you get this:
> [r...@dhcp102 rpm]# ./rpm -Uvh --oldpackage 
> /home/pmatilai/rpmbuild/RPMS/noarch/obstest-self-0.1-1.noarch.rpm
> error: Failed dependencies:
>       obstest-self is obsoleted by (installed) obstest-self-0.1-1.noarch

That's surprising, my guess was that addObsoleteErasures() doesn't
look for self-obsoletes and adds the installed package to the
remove list. But in that case rpmtsPrunedIterator() shouldn't
have returned the installed package.

Btw, I'm not sure if the installed obsoletes are really just matched
against the package NEVRs and not the provides. Doesn't
rpmalSatisfiesDepend() used in unsatisfiedDepend() look at the
provides?

(And why is checkInstDeps() using unsatisfiedDepend() for conflicts
and obsoletes, which also looks at other installed packages?
I don't think it should report problems installed packages have with
other installed packages. Or am I misreading the code?)

Cheers,
  Michael.

-- 
Michael Schroeder                                   m...@suse.de
SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to