[maemo-developers] Autobuilder repository priority ?
From: Attila Csipa maemo at csipa.in.rsDate: Sat Oct 31 20:11:35 EET 2009
- Previous message: Autobuilder repository priority ?
- Next message: Autobuilder repository priority ?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Saturday 31 October 2009 14:49:24 Ed Bartosh wrote: > > is IMHO that the repository priorities seem to be wrong. The autobuilder > > should be using the highest version in the TOP PRIORITY repository that > > satisfies a dependency to avoid breakage because of unstable stuff in > > -devel and because otherwise a package can't be promoted without dragging > > other folks' packages with them. Thoughts ? > > The reason of this is that apt designed so that it will always install > higher possible version of package. It's actually rather good than > bad. Imagine what would happen if it would work another way. No new > python-dbus ever :) This is not entirely correct (and definitely not recommended in our case of the autobuilder). Apt uses priorities (both repository and package level priorities can be defined, 'pinned') to decide which package to use to satisfy a dependency, and only if the priorities are equal does it base the choice on version number. Why is the current (same-priority, version only) approach bad ? Say, my app depends on python-dbus. I test it with version A, currently in the SDK and it works just fine. I upload and promote my app. All is well. However, later, the pymaemo team uploads a newer, experimental B version into -devel. From that point on I am NO LONGER ABLE to reliably update my application nor promote it (this actually happened to me, my stuff compiles in SDK, but not in the autobuilder for this very reason). But you can specify a fixed version dependency (the one in SDK and extras), you say ? But THEN I get to the problem of no updates. If bugs get squashed in the -devel version of the library I'm using, the user will never be able to upgrade to it, as my package is insisting on the old version (and the package manager wisely rather skips updates than removing already installed packages). Ubuntu and Debian solve this problem by advising different repository priorities. Stable has a highest priority, Testing is lower and Unstable is lowest. If there is a package in Stable that satisfies my requirement, that's the one that should be used. But then it will never get updated, you say ? Wrong ! Remember what I said up there - if the priority is the same, the version decides. So, the moment a new version of the dependency reaches *Stable*, it will become the highest priority and will get updated. It's a recommendation that dependencies should be REALISTICALLY listed. You should not depend on a high version number just because it's new or even because it's the one bundled on the system (!). You should depend on the minimal version that provides the actual functionality you require. Hope my problem is a bit more clear now. Regards, Attila
- Previous message: Autobuilder repository priority ?
- Next message: Autobuilder repository priority ?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]