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]

Reply via email to