mether's Fedora Blog

Random thoughts, usually on Fedora

Preventing dependency breakage

Fedora has a increasingly large number of software packages.

# yum repolist
Loaded plugins: presto, refresh-packagekit, remove-with-leaves
repo id repo name status
livna rpm.livna.org for 11.91 – i386 enabled: 3
rawhide Fedora – Rawhide – Developmental packa enabled: 15,078
rpmfusion-free-rawhide RPM Fusion for Fedora Rawhide – Free enabled: 469
rpmfusion-nonfree-rawhide RPM Fusion for Fedora Rawhide – Nonfre enabled: 122
repolist: 15,672

That’s a impressive number of packages and growing at a very fast rate. Good news for everyone. However dependency breakage is not that uncommon.

https://admin.fedoraproject.org/updates/F11/FEDORA-2009-10088?_csrf_token=0e53ac11a223380d5c82fcad8d18a816da59454c

http://mso-chronicles.blogspot.com/2009/09/broken-deps-libassso3.html

That’s not good news for anyone. It reduces trust in the Fedora Project and people blame the maintainers or even worse, they blame yum for it. It is not reasonable to expect maintainers to do a perfect job. We really need to ensure that absolutely no packages get pushed out without a basic dependency check. It does not matter whether it is a security update. It does not matter that it will take a few hours or even a day more. I don’t want to see another dependency breakage when using the official Fedora repositories. Never again.

Written by mether

October 1, 2009 at 12:54 am

Posted in Uncategorized

Tagged with ,

23 Responses

Subscribe to comments with RSS.

  1. Amen!!!!!!!!!!!

    Mark T. Kennedy

    October 1, 2009 at 2:30 am

  2. The mandriva community use a tool called youri ( http://youri.zarb.org/ ) to detect such breakage ( then we do not always act :/ bt that’s another story ). Maybe you could adapt it to check fedora repository ?
    The documentation is far from being written, but the developpers are there to answer to your questions.

    It is based on http://www.edos-project.org/xwiki/bin/Main/rpmcheck , which unfortunatly seems not working with yum

    Misc

    October 1, 2009 at 2:31 am

  3. As an aside, this is another good reason to recommend PackageKit to users, since PK already incorporates the “skip-broken” functionality that otherwise they have to either figure out or glean from someone else.

    Paul W. Frields

    October 1, 2009 at 2:48 am

    • It’s really unfortunate, yum is not using skip-broken by default in Fedora. A lot of the problems wouldn’t affect so many people badly if that setting was enabled by default. They would still see the problem since yum would inform of the packages being skipped. The maintainers would some time to fix the problem without panicking. It’s one of the tweaks that we could to improve the user experience. We just don’t.

      mether

      October 1, 2009 at 3:50 am

      • Skip-broken would improve the user experience for who ?

        * Desktop users: skip-broken would imrpove their user experience, yes. But those users might prefer to use PK anyway, so no problem. Those who decide to use the CLI (yum), should be aware of what they are doing

        * System admins: skip-broken could have horrible consequences for them. When something goes wrong (broken dep for example), you want to know it. You want to be sure you notice it. Yum failing is kind of the best way to be absolutely sure that the user (in this case) notices the dependancy problem. Then if he so desires he can update with skip-broken.

        I use skip-broken, and I love it. But still, I prefer it not to be enabled by default, for those exact reasons.

        bochecha

        October 1, 2009 at 4:29 pm

    • I’m a desktop user, as far as I know I do most of my updates through pakagekit but it don’t seem to work correctly:

      1) the panel indicate I need to make some updates.
      2) tell computer to update.
      3) Horrible error message telling me that not all packages were updated.
      4) live sadly ever after with a annoying “ever on” warning telling me that there are updates to be installed, that I know that cannot be installed due to broken dependency.

      This is how it’s happening to me, when I use my ‘desktop user’ hat.

  4. sigh.

    skip-broken.

    How about this -when the autoqa stuff is in place -we can turn skip-broken on by default.

    Seth Vidal

    October 1, 2009 at 7:41 am

    • I actually think that the impact of skip-broken would be *more* before the autoqa stuff is in place because without autoqa preventing those problems in the first place, our users are routinely suffering from broken dependencies. See the recent number of posts in fedora-list and fedoraforum.org for a small sample.

      mether

      October 1, 2009 at 8:02 am

  5. bochecha,

    Desktop users should all be using PackageKit is idealistic. In reality a lot of desktop users will continue to use Yum and they don’t necessarily know about this option. Ask around among Fedora users in a linux conference if you want to confirm this.

    Sys-admins if they care get a list of packages skipped at the end and can run repository checks if they want. Making a huge number of users suffer is not the right solution.

    mether

    October 1, 2009 at 4:34 pm

    • So let me get this straight. We have a “huge number” of users who are NOT using PK on the desktop and ARE using yum from the cli but are unable to set skip_broken=1 in their yum.conf?

      that seems odd.

      Seth Vidal

      October 1, 2009 at 5:28 pm

      • Not unable. Unaware of the option and yes, the unaware percentage is very significant. Again, don’t depend on my words. Go ahead and talk to Fedora users and see how many of them are aware of it.

        mether

        October 1, 2009 at 5:47 pm

    • « Desktop users should all be using PackageKit is idealistic. In reality a lot of desktop users will continue to use Yum and they don’t necessarily know about this option. »

      I know. I’m a desktop user, and I use yum. But like I said:
      « Those who decide to use the CLI (yum), should be aware of what they are doing »

      Like everyone, I didn’t know about skip-broken at the beginning. And then, I learned how to use it.

      Basically, yum desktop users should only face the problem once, then they learn about skip-broken. That’s not suffering, that’s learning. If one is not willing to learn, he should be using easier tools, i.e. PK. If he still wants to use more complex tools without learning how to use them, then he’s in trouble, but he chose to 😉

      bochecha

      October 1, 2009 at 5:29 pm

      • Then inform them! You don’t have to wait for me to do it. Write up how to add skip_broken=1 to yum.conf it’s pretty simple!

        Put it in the forums if you want.

        Seth Vidal

        October 1, 2009 at 5:49 pm

      • I don’t see why we should force them to learn about a option instead of setting it by default and giving a better out of the box experience. The less users have to fiddle with their systems, the better off we are.

        It might take a lot more than one experience for them to learn about this option. They might just choose to leave Fedora instead. We lose users and potential contributors as well.

        mether

        October 1, 2009 at 5:51 pm

  6. Seth Vidal,

    I already tell users about the option and have wasted a lot of time doing that. Instead of doing this over and over again, I would like see the option set by default so that yum is not so fragile in the face of breakages. The downsides before were that users wouldn’t be aware of the dependency breakage but now that yum lists the skipped packages, that problem is gone.

    Assuming that we won’t get a perfectly maintained repository and aren’t going to ensure that anytime soon, this seems to be the way to go to me. Anyway, I have my opinions clear. Its your decision on how you want to handle it.

    mether

    October 1, 2009 at 5:58 pm

  7. […] dependency breakage – Part II My previous post has generated a bunch of discussions and I think it is worthwhile highlighting what I believe is […]

  8. Don’t get me wrong, I could be mistaken.

    But if PK has skip-broken enabled, why is my PK System Update failing on broken IBus dependencies on F11?

    twilightomni

    October 1, 2009 at 10:17 pm

    • Because skip-broken is not a perfect solution. Not all errors in transaction can be detected easily before they actually happen. It is a workaround to certain kinds of dependency issues. That’s all.

      mether

      October 1, 2009 at 10:29 pm

  9. For general edification: AutoQA is already doing dependency checks on all supported releases daily:

    https://fedorahosted.org/pipermail/autoqa-results/2009-October/subject.html

    AutoQA is also intended in future to provide the capability to do a check on submitted packages and refuse to push them if they cause dependency breakage. Of course, that’d require involvement / agreement of several teams to become practice.

    There’s an update on the progress of AutoQA at each weekly QA project meeting, if you’re interested in following its development, which is rapid. The full logs are available here:

    http://fedoraproject.org/wiki/QA/Meetings

    and I generally provide a summary of the AutoQA progress report in the QA section of each Fedora Weekly News.

    Adam Williamson

    October 2, 2009 at 3:29 am

  10. […] wanted to highlight something related to Rahul’s recent posts about dependency problems in Fedora […]

  11. There are at least two broad categories of sysadmins: a dedicated sysadmin at a large installation who checks his log every morning, and a sysadmin who occasionally checks in on a Fedora box for a small/medium business. The former will check his yum logs every morning, probably deploys from kickstart, if not something fancier, and knows yum options pretty well. The latter will get his machine 0wned because he didn’t get an automatic security update because some package is hung on a dependency conflict and/or his yum metadata is broken again. DAMHINT.

    Bill McGonigle

    October 2, 2009 at 7:06 am

  12. I really see this as a build system issue, and thus should be fixed in Koji. For this, I suggest that before the package is pushed as an update, it should be installed on a machine where ALL fedora packages are installed, if there is a dependency problem then, the maintainers of the other packages should notified about the problem. And this way, the user will have a flawless updating experience.

    Hicham

    October 3, 2009 at 6:00 pm


Comments are closed.