Description of problem: yum-skip-broken plugin doesn't enable yum to skip installation of packages with broken dependencies. Version-Release number of selected component (if applicable): Installed Packages yum.noarch 3.2.5-1.fc7 installed yum-metadata-parser.x86_64 1.1.0-2.fc7 installed yum-plugin-kmdl.noarch 0.7-9.fc7 installed yum-skip-broken.noarch 1.1.7-1.fc7 installed yum-utils.noarch 1.1.7-1.fc7 installed How reproducible: Every time. Steps to Reproduce: 1.yum --skip-broken update 2. 3. Actual results: Error: Missing Dependency: /boot/vmlinuz-2.6.22.4-65.fc7 is needed by package nvidia-graphics100.14.09-kmdl-2.6.22.4-65.fc7 Error: Missing Dependency: /boot/vmlinuz-2.6.22.4-65.fc7 is needed by package nvidia-graphics100.14.11-kmdl-2.6.22.4-65.fc7 and no updates are installed. Expected results: Installation of packages without dependency problems. Additional info: I noted this behaviour in comment #10 of BZ249194, but the use of yum-skip-broken is only really there as a work around, so I'm opening this here as a problem with yum-skip-broken in its own right. Attaching output of yum -d 6 --skip-broken update
Created attachment 204291 [details] output of yum -d 6 --skip-broken update
This error is caused by the kmdl plugin there adds extra packages to the transcation after skip-broken has been run and removed the packages with bad dependecies there was in the original transaction. There is no way skip broken can handle that. Dependency Process ending Running "postresolve" handler for "kmdl" plugin ---> Package nvidia-graphics100.14.11-kmdl-2.6.22.5-76.fc7.x86_64 1:100.14.11-91.fc7 set to be installed ---> Package nvidia-graphics100.14.09-kmdl-2.6.22.5-76.fc7.x86_64 1:100.14.09-90.fc7 set to be installed --> Running transaction check
Yes - it appears that skip-broken runs as a preresolve_hook and kmdl as a postresolve_hook. I tried to add a run_priority patch to yum to allow modules to specify a priority, but pre always runs before post (plugins are run in python dict order which is arbitrary).
Created attachment 205351 [details] Patch to allow run_priority attribute of plugins to get run order correct
Plugins is designed to run i different hooks, and pre will always run before post, it is the whole idea :) Your patch only works inside the same plugin hook. I only think this issue can be solved, if some kind of skip broken is implemented inside the yum depsolver. Your patch look interesting by the way, i might be usefull in other cases. I will mail it to the yum-devel list for comments.
The curious thing is that I'm sure the --skip-broken plugin used to fix this problem. Indeed, its suggested as a workaround in BZ 249194. I wonder what changed.
That bug was about using yum-kernel-module, which works from the preresolve hook. You are using yum-fedorakmod which runs from the postresolve hook.
Maybe it is because the installonlyn is been intregrated in yum-cli, earlier it was a plugin. You can try to change the kmdl plugin to run as pre instead of post. what is the output from yum -d3 --disableplugin=kmdl update
(In reply to comment #7) > That bug was about using yum-kernel-module, which works from the preresolve > hook. You are using yum-fedorakmod which runs from the postresolve hook. > it is the kmdl plugin from the ATrpms repo, but it is also running from the postresolve hook
Created attachment 205501 [details] Output of yum -d3 --disableplugin=kmdl update Attaching output of: yum -d3 --disableplugin=kmdl update This command works, except that it doesn't install the kmdl for the new kernel which is what the kmdl plugin is designed to do.