Better skip-broken support in yum
For a while i have been working on making better support for yum to handle packages with dependency problems. The current skip-broken plugin has a lot of problems, so i have worked on building the the skip-broken support into yum, without needing a special plugin.
The first step was to make the yum depsolver collect the packages causing problems while it was depsolving.
The second step was to find a good way to skip the packages causing problems and all the deps they have pull in to the yum transaction.
In the latest couple of months there have been some very nice progress in adding a test suite to yum, so there is a good infrastructure for building test cases for the yum code, this is very important in testing the skip-broken functionality, because it is a good way to simulate all kind of dependency problems and to test if code changes is breaking something.
The new skip-broken code is now checked into the yum git HEAD and will be available in yum 3.2.9.
If you want to test it, you can check out the yum git HEAD and check it out.
git clone http://linux.duke.edu/yum/git/yum.git
cd yum
sudo ./yummain.py --skip-broken some-yum-action
The code conflict with then yum-skip-broken plugin, so it have to be removed if you want to test tje new code
Fedora Rawhide is a nice place to test it, there have been a lot of packages with dep problems lately.



[yonas@siempc yum]$ ./yummain.py update
Traceback (most recent call last):
File “./yummain.py”, line 26, in
from yum import Errors
File “/tmp/yum/yum/__init__.py”, line 37, in
import rpmsack
File “/tmp/yum/yum/rpmsack.py”, line 22, in
import misc
File “/tmp/yum/yum/misc.py”, line 19, in
import gpgme
ImportError: No module named gpgme
Thanks for working towards a solution on this problem
yonas:
You have to install ‘pygpgme’ it is a new requirement for the current yum development head.
It’s great to see all the good work going into yum! Thank you.
If you haven’t already, one case I hit with the recent Cogent/Telia spat was yum failing when a particular repo is unreachable. This, of course, causes it to bail, potentially missing security updates, etc., from -updates. It would be nice if built-in skip-broken support understood this scenario, and still depsolved as best as it could with a repo offline. Obviously some dependencies might cause problems, but where it doesn’t ‘best effort’ would be ideal.