On Thu, Jan 26, 2006 at 10:51:25AM +0100, Frank Lichtenheld wrote:
> So the question is why dpkg doesn't resolve this better.
Ok, after a little investigation here my findings (please take
into account that this is actually the first time ever I looked
at this code so I might have misinterpreted or overlooked things):
dpkg can't deal with the following dependency cycle at the moment
(pkg1 and pkg2 are real packages, vpkg1 and vpkg2 virtual packages)
---------> vpkg2 <--------
|provides depends|
| |
| no replaces/conflicts |
pkg1 <-----------------> pkg2
| |
|depends provides|
---------> vpkg1 <--------
(note that the condition in the middle is important! Otherwise the cycle
will get broken correctly)
The following patch fixes it but I have really no idea wether this is
indeed the correct fix:
--- dpkg-1.13.12/src/depcon.c 2006-01-18 08:30:03.000000000 +0000
+++ dpkg-1.13.12.new/src/depcon.c 2006-01-26 13:52:31.000000000
+0000
@@ -127,6 +127,7 @@
*/
if (foundcyclebroken(&thislink,sofar,provider,possi)) return 1;
if
(foundcyclebroken(&thislink,sofar,possi->ed,provider->installed.depended))
return 1;
+ if (findbreakcyclerecursive(provider,&thislink)) return 1;
}
}
}
Gruesse,
--
Frank Lichtenheld <[EMAIL PROTECTED]>
www: http://www.djpig.de/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]