On Tue, Jan 5, 2010 at 3:37 AM, Michal Marek
On 5.1.2010 00:03, Jon Nelson wrote:
I see. So in summary, the OBS doesn't look at Obsoletes for preferential rpm dependencies. However, it would appear that it's not looking that Provides, either: the package "bar" is using Provides: foo and yet it is not, apparently, being considered for dependency fulfillment for other packages in the same project. I'm unclear as to whether or not this behavior is expected.
Please read the whole email at http://lists.opensuse.org/opensuse-buildservice/2007-06/msg00012.html. Michael explains that packages with the exact required name take precedence over packages that provide the dependency.
I see. When combined with what Luke was saying: <quote> Whether it's an expansion error or it picks first depends on if foo and bar have the same precedence. If foo and bar are at the same level, so from the same project or both package found under --prefer-pkgs directories, then they conflict and you get an expansion error. If foo is in the current project (precedence 1), but bar is in a build repository path (precedence 2), then foo wins since the scheduler will pick foo over bar. This is how you can rebuild something like glibc in a project and have everything in the project use that glibc instead of the one from openSUSE:Factory when openSUSE:Factory is a build repository path. </quote> The algorithm is something more like this (excluding duplicate provides), when trying to fulfill a dependency: dependency with exact name available? use that and stop. rpm with provides? use that and stop. go to next repository and repeat. In any case, I guess it doesn't really matter. Ultimately, the OBS is not taking Obsoletes into consideration, and that was the big surprise for me. Thanks for the help! -- Jon -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org