On Oct 20, 2008, at 4:09 PM, Jeff Johnson wrote:
>>
>> This patch displays loops so that the information can actually be
>> seen,
>> not guessed at:
>>
>> Index: depends.c
>> ===================================================================
>> RCS file: /v/rpm/cvs/rpm/lib/depends.c,v
>> retrieving revision 1.421
>> diff -u -b -B -w -p -r1.421 depends.c
>> --- depends.c 14 Oct 2008 03:55:08 -0000 1.421
>> +++ depends.c 20 Oct 2008 19:55:33 -0000
>> @@ -1890,7 +1890,7 @@ static int ignoreDep(const rpmts ts, con
>> const char ** av = NULL;
>> int anaconda = rpmtsDFlags(ts) & RPMDEPS_FLAG_ANACONDA;
>> int msglvl = (anaconda || (rpmtsDFlags(ts) & RPMDEPS_FLAG_DEPLOOPS))
>> - ? RPMLOG_WARNING : RPMLOG_DEBUG;
>> + ? RPMLOG_WARNING : RPMLOG_ERROR;
>> int ac = 0;
>> int i;
>>
This patch was the right idea but the wrong place.
After getting he patch in the right place, here is an
example of the type of failure:
...
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
error: LOOP:
error: removing kpathsea-2007-35.fc10.i386 "Requires: texlive =
2007-35.fc10" from tsort relations.
error: removing texlive-2007-35.fc10.i386 "Requires(auto):
libkpathsea.so.4" from tsort relations.
error: LOOP:
error: removing kpathsea-2007-30.fc9.i386 "Requires(auto):
libkpathsea.so.4" from tsort relations.
error: removing texlive-2007-30.fc9.i386 "Requires: texlive =
2007-30.fc9" from tsort relations.
Running Transaction
Erasing : texlive-latex
[ 1/12]
Erasing : texlive-utils
[ 2/12]
Erasing : texlive-dvips
[ 3/12]
Erasing : texlive-dviutils
[ 4/12]
Updating : texlive
[ 5/12]
Updating : kpathsea
[ 6/12]
Updating : texlive-dvips
[ 7/12]
Updating : texlive-utils
[ 8/12]
Cleanup : texlive
[ 9/12]
Updating : texlive-dviutils
[10/12]
Cleanup : kpathsea
[11/12]
Updating : texlive-latex
[12/12]
There are several pieces to a real fix, displaying the loops that
are triggering the problem are the first step.
The next step will be to insturment relations between the
new-installed <-> old-erased packages. That is likely to increase
the number of loops, and also make rpm behavior in the face of
loops stiffer and more brittle, but guarantees install-before-erase
ordering.
73 de Jeff
Received on Tue Oct 21 03:43:02 2008