Hi Mr. Deepsolver ;) On Tue, Jan 14, 2014 at 08:06:54PM +0700, Michael Pozhidaev wrote:
I'd like to better understand some zypp (maybe libsolv) implementation details. Could anybody help me, please!
The question is as follows: consider we have a couple of packages a and b. Dependencies rules imply that a requires b. Reflecting that clause should be as (not a or b), right?
But if a is not chosen for installation b gets freedom to have any value, either true or false without any consequent breaks of a solution.
What strategy do zypp use to left the b variable unchanged? I mean left corresponding package uninstalled if it was uninstalled. Is it possible to do that strictly or it always implies some probability?
Thank you a lot for your answer! :))
So this is about the time when the solver is free to choose a literal, not unit propagation. In that case, we only choose positive literals, *and only if we must* (meaning if none of the negative literals are fulfilled). So, in your case, we would never choose b from a "-a|b" rule as long as "a" is not chosen for installation. When we no longer find rules that we need to fulfill, we set all undecided literals to "keep". This makes all rules true. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org To contact the owner, e-mail: zypp-devel+owner@opensuse.org