[opensuse-factory] Has zypper /yast sw mgmt priority handling changed in the past few months?
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. -- 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
2009/9/26 David C. Rankin <drankinatty@suddenlinkmail.com>:
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? 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. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On Saturday 26 September 2009 01:12:07 pm Cristian Morales Vega wrote:
2009/9/26 David C. Rankin <drankinatty@suddenlinkmail.com>:
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
2009/9/29 David C. Rankin <drankinatty@suddenlinkmail.com>:
On Saturday 26 September 2009 01:12:07 pm Cristian Morales Vega wrote:
2009/9/26 David C. Rankin <drankinatty@suddenlinkmail.com>:
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.
Yes, that's the way it's supposed to work. This is the thread where all this was discussed: http://lists.opensuse.org/zypp-devel/2008-03/msg00069.html , and this the bug: https://bugzilla.novell.com/show_bug.cgi?id=369827
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.
Well, it's another possibility, but IMHO it is worse. If I trust a repo more than the other (that's why I set a higher priority) I don't want packages from the less trusty repo just because it has a newer version (that perhaps my repo will have just one hout later...). If there is an specific case where I want the latest version I can install it manually and a "zypper up" will not downgrade to the older package even if it has a higher priority (since downgrades aren't allowed). If you really think your proposed behavior makes sense zypp-devel is the place to try to convince people. NOTE: IF YAST BEHAVIOR IS GOING TO NOTORIOUSLY CHANGE IN 11.2 IT SHOULD BE DOCUMENTED IN THE RELEASE NOTES. (yes, I could write it myself, I will do if nobody else does, but in this specific case I would prefer someone with a better than "most of the time understandable" english to write it) -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On Tue, Sep 29, 2009 at 04:36:37PM -0500, David C. Rankin wrote:
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.
Yes, that's how all other package managers (smart, yum, ...) work.
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.
What purpose should the priority have in that case? Seems to me that you want libzypp to ignore the priority. The real bug is that the update repo has priority 20, it should have been 99 like the other repositories. This was a bug in the 11.1 update configuration. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
participants (3)
-
Cristian Morales Vega
-
David C. Rankin
-
Michael Schroeder