Nagy Gabor wrote:
>>From 08ea7d37ae38f26d24ba2d3aba5f7272dee2ab73 Mon Sep 17 00:00:00 2001
> From: Nagy Gabor <[EMAIL PROTECTED]>
> Date: Fri, 4 Jul 2008 20:18:00 +0200
> Subject: [PATCH] Resolvedeps rework
> 
> I divided resolvedeps into 2 functions. The new _alpm_resolvedep function 
> will resolve one dependency,
> for example the 'foo>=1.0-1' dependency.  It can be useful in sync_addtarget 
> refactoring.
> 
> The resolvedeps parameters were changed, to be coherent with recursedeps:
> * the target-list is an alpm_list* instead of alpm_list**. This is OK, 
> because alpm_list_add == alpm_list_add_last
> * syncpkg param was removed. list contains the to-be-installed packages, 
> resolvedeps will add the required dependencies into this list
> * trans param was removed, it was used in QUESTION() only, which can be used 
> on the main (handle->trans) transaction only
>   (because the front-end cannot access our pseudo-transactions at all!)
> 
> The patch fixes some wrong dynamic pmdepmissing_t usage.
> 

I had a quick reading of the new code, and it looked good to me.

> sync1003.py now fails. This is not a bug, but a behavior change, which needs 
> some explanation:
> The old resolvedeps didn't elect packages from 'remove' list. I've dropped 
> this (but can be
> reimplemented trivially by adding a 2nd excluding list param to 
> _alpm_resolvedep), because I don't want
> that 2nd excluding list param. In fact, in real life, we ~never need this 
> rule. Resolvedeps is called
> before checkconflicts, so only -Su's %REPLACES% packages are sitting in 
> 'remove' list. This means, that we have
> the replacement packages in our target list. Usually "foo replaces bar" 
> means, that bar isn't in our repos
> any more, so resolvedeps *cannot* elect it; but usually it won't try it at 
> all, because foo is in the target
> list, and it is expected to satisfy 'bar>=1.0-1'-like dependencies too. In 
> exotic cases this is not true
> (like in sync1003.py), then resolvedeps elect bar (new version). Since 
> checkdeps and checkconflicts is done
> after resolvedeps, this cannot cause any harm. (In sync1003.py pacman simply 
> removes and reinstalls pkg2 now.)
> 

I would suggest just dropping that pactest.

_______________________________________________
pacman-dev mailing list
[email protected]
http://archlinux.org/mailman/listinfo/pacman-dev

Reply via email to