[opensuse-buildservice] the impact of 'Prefer' during dependency solving
How does a 'Prefer: x' in prjconf influence the solver which calculates the required packages for build? Does it only affect failures like 'have choice for x < N: A B'? Or would it also affect the selected version of 'x' if two pkgs provide 'x' in different versions? The prjconf in Factory and 42.2 have "Prefer: -ffmpeg2-devel". This pkg provides 'pkgconfig(x) = 1'. Another pkg "x2" in the projects above provides 'pkgconfig(x) = 2'. There are pkgs which have "BuildRequires: pkgconfig(x)" and I think the solver just picks the one with the higher version number, so the "Prefer:" is likely unneeded. Within Factory and 42.2 the "Prefer:" does not cause trouble. In a private prj with Factory or 42.2 as base project the "Prefer:" does cause trouble, because there is likely no "UnPrefer:". In that private prj there is a pkg "x0" which provides "pkgconfig(x) = 0". The private repo has "Prefer: -x0" in prjconf. In addition there are pkgs which have one of "BuildRequires: pkgconfig(x)", "BuildRequires: pkgconfig(x) = 0", "BuildRequires: pkgconfig(x) = 1" and "BuildRequires: pkgconfig(x) < 2". Since "Prefer: -ffmpeg2-devel" was added to Factory/42.2 all pkgs with "BuildRequires: pkgconfig(x) < 2" are now in state unresolvable: have choice for pkgconfig(x) < 2: x0 ffmpeg2-devel This could be solved by adding 'Prefer: ffmpeg2-devel' to prjconf. How would such change affect pkgs with "BuildRequires: pkgconfig(x)"? Will the solver pick "ffmpeg2-devel" or "x2" for unversioned BuildRequires? Olaf
participants (1)
-
Olaf Hering