On Saturday 26 September 2009 01:12:07 pm Cristian Morales Vega wrote:
2009/9/26 David C. Rankin
: Devs,
Has the way zypper/yast deals with the specified priority of repositories changed in the past few months? I have several scripts that automate keeping a local repository of rpms where the local repository has the lowest number (highest) priority. In the past, I could leave the repository enabled and run an update and if newer versions of packages existed in OBS or in the openSuSE Update repos (online), the newer versions would be downloaded.
Now it seems if newer versions exist online, they are ignored if the local update repo is enabled. It seems like now the lowest number/highest priority repo is considered by zypper to have the newest updates due to its priority even if newer versions of the package exist online.
Has anything changed here? If so, where is it written up so I can tweak my scripts to accommodate the changes. Thanks.
Can I suppose you noted this change after the 11.1 release, in Factory?
You suppose quite a bit. After we got done testing Beta5, I was a bit tired of 11.1 ;-)
Anyway, that has always been the intended behavior. The installed package should be the one from the repository with the highest priority (IMHO this is the only behavior that makes sense). The only case where this will not be true is if there is another rule that forbids the change ("zypper up" doesn't allows vendor changes or downgrades, but "zypper dup" does).
The GUI apps (YaST, update applet) are a special case. They take some decisions by themself, without asking to libzypp, so its behavior can be different (yes, it sucks, I know). But this is just a problem we have while the apps migrate to use more of libzypp, this is a work in progress (so it has been changing in each of the latest releases). I'm not a ZYpp dev, but I think this (http://lists.opensuse.org/zypp-devel/2009-09/msg00020.html) has to do with this... but if was added to libzypp three days ago I don't expect to be already used in the GUI apps. If zypper and a GUI app behavior differ, trust zypper.
Christian, Thank you for the explanation and the link. The precise behavior at issue is the logic (if it exists) that says "look to the repo with the highest priority TO THE EXCLUSION of the rest of the configured repositories EVEN THOUGH a NEWER VERSION of the package EXISTS in a repository with LOWER priority. That's what seems to be happening and that's the one that is causing me heartburn. Here is an example of what I'm seeing. Repo Priority Package Name ------- ----------- ---------------------------------------- lowrepo 99 superRPM-0.1.2-5.6.x86_64.rpm highrepo 20 superRPM-0.1.2-3.4.x86_64.rpm What I see on an update with both repositories enabled is that the system would choose to install superRPM-0.1.2-3.4.x86_64.rpm from highrepo even though superRPM-0.1.2-5.6.x86_64.rpm in lowrepo is a newer version. What I'm used to seeing (and the way I think is probably should work) is that the system selects superRPM-0.1.2-5.6.x86_64.rpm which is the latest version regardless of the priority. In other words, the newest package wins. The only time priority should be an issue is if there is a tie in the packages (same package), then the rpm should come from high repo. What is your understanding about the way it works? -- David C. Rankin, J.D.,P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org