[softwaremgmt] Obsoletes and zypp vs. rpm
Hello, I wonder what should be the correct handling of Obsoletes, apparently rpm and zypp differ on its handling which confuses users. You can see it on an example of java-1_6_0-sun-plugin.rpm, which obsoletes java-1.5.0-plugin and thus java-1_5_0-sun-plugin.rpm. So when you try to install both packages, zypper bails on conflicts (*), while rpm allows you to install without any problem (might be due to the fact the obsoleted name is not a package). That of course brings quite some confusion, so I wonder whether this is a desired behavior or if it could be improved in any way. Thanks, Michal (*) You need zypper from factory to find out, on 10.3 the message is quite horrible :) -- To unsubscribe, e-mail: opensuse-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
Michal Svec wrote:
You can see it on an example of java-1_6_0-sun-plugin.rpm, which obsoletes java-1.5.0-plugin and thus java-1_5_0-sun-plugin.rpm. So when you try to install both packages, zypper bails on conflicts (*), while rpm allows you to install without any problem (might be due to the fact the obsoleted name is not a package).
No, that's because you probably did 'rpm -i java-1_6_0-sun-plugin.rpm' while rpm only deletes obsoleted packages when upgrading (-U): # rpm -qa 'java*plugin' java-1_5_0-sun-plugin-1.5.0_update14-8 # rpm -i i586/java-1_6_0-sun-plugin.rpm # rpm -qa 'java*plugin' java-1_5_0-sun-plugin-1.5.0_update14-8 java-1_6_0-sun-plugin-1.6.0.u4-8 # rpm -e java-1_6_0-sun-plugin # rpm -U i586/java-1_6_0-sun-plugin.rpm # rpm -qa 'java*plugin' java-1_6_0-sun-plugin-1.6.0.u4-8 # Michal -- To unsubscribe, e-mail: opensuse-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
On Thu, 14 Feb 2008, Michal Marek wrote:
Michal Svec wrote:
You can see it on an example of java-1_6_0-sun-plugin.rpm, which obsoletes java-1.5.0-plugin and thus java-1_5_0-sun-plugin.rpm. So when you try to install both packages, zypper bails on conflicts (*), while rpm allows you to install without any problem (might be due to the fact the obsoleted name is not a package).
No, that's because you probably did 'rpm -i java-1_6_0-sun-plugin.rpm' while rpm only deletes obsoleted packages when upgrading (-U):
I see, but that still makes a difference, rpm allows you to install both at the same time while zypper does not. How would rpm behave in this scenario? # rpm -ivh java-1_5_0-sun-plugin-0.rpm java-1_6_0-sun-plugin-0.rpm # rpm -Uvh java-1_5_0-sun-plugin-1.rpm java-1_6_0-sun-plugin-1.rpm Would it complain (in the second step, the first step succeeds), uninstall 1_5_0 silently or upgrade both? Michal -- To unsubscribe, e-mail: opensuse-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
* Michal Svec
I see, but that still makes a difference, rpm allows you to install both at the same time while zypper does not.
IIRC, thats a known deficiency.
zypper with the libredcarpet solver behaves similar to the 'original'
rpm command. The rpm package shipped with openSUSE is modified.
The change concerns 'virtual' obsoletes. Our rpm command only matches
'obsoletes' to package _names_. Zypp does a generic capability match
which triggers also for package _provides_.
But please ask Michael Schroeder
* Klaus Kaempf
The change concerns 'virtual' obsoletes. Our rpm command only matches 'obsoletes' to package _names_. Zypp does a generic capability match which triggers also for package _provides_.
See https://bugzilla.novell.com/show_bug.cgi?id=305260 Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
* Klaus Kaempf
* Klaus Kaempf
[Feb 14. 2008 16:10]: The change concerns 'virtual' obsoletes. Our rpm command only matches 'obsoletes' to package _names_. Zypp does a generic capability match which triggers also for package _provides_.
And https://bugzilla.novell.com/show_bug.cgi?id=330992 Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
On Thu, Feb 14, 2008 at 04:10:23PM +0100, Klaus Kaempf wrote:
* Michal Svec
[Feb 14. 2008 16:04]: I see, but that still makes a difference, rpm allows you to install both at the same time while zypper does not.
IIRC, thats a known deficiency.
zypper with the libredcarpet solver behaves similar to the 'original' rpm command. The rpm package shipped with openSUSE is modified.
The change concerns 'virtual' obsoletes. Our rpm command only matches 'obsoletes' to package _names_. Zypp does a generic capability match which triggers also for package _provides_.
But please ask Michael Schroeder
for the glory details ;-)
Depends on the rpm version. rpm3 did not look at provides, unmodified rpm4 looked at provides. We patched that feature *out* in some of our releases. Currently, rpm4 *upstream* (maintained by Panu) does no longer look at the provides, while rpm5 upstream does. Confused enough? 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-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
On Fri, 15 Feb 2008, Michael Schroeder wrote:
I see, but that still makes a difference, rpm allows you to install both at the same time while zypper does not.
IIRC, thats a known deficiency.
zypper with the libredcarpet solver behaves similar to the 'original' rpm command. The rpm package shipped with openSUSE is modified.
The change concerns 'virtual' obsoletes. Our rpm command only matches 'obsoletes' to package _names_. Zypp does a generic capability match which triggers also for package _provides_.
But please ask Michael Schroeder
for the glory details ;-) Depends on the rpm version. rpm3 did not look at provides, unmodified rpm4 looked at provides. We patched that feature *out* in some of our releases.
With "provides", do you also mean "obsoletes"?
Currently, rpm4 *upstream* (maintained by Panu) does no longer look at the provides, while rpm5 upstream does.
As we are not going for rpm5 any time soon, looks like we stick with the same behavior as always. The question is then if we should not change zypp to mimic the rpm behavior. Or, ignore them by default and look at provides/obsoletes only when a conflict happens.
Confused enough?
Yes :-) Thanks, Michal -- To unsubscribe, e-mail: opensuse-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
On Mon, Feb 18, 2008 at 03:32:53PM +0100, Michal Svec wrote:
Depends on the rpm version. rpm3 did not look at provides, unmodified rpm4 looked at provides. We patched that feature *out* in some of our releases.
With "provides", do you also mean "obsoletes"?
I meant that if a package contains an obsoletes, rpm will also obsolete all packages that provide this dependency.
Currently, rpm4 *upstream* (maintained by Panu) does no longer look at the provides, while rpm5 upstream does.
As we are not going for rpm5 any time soon, looks like we stick with the same behavior as always.
The question is then if we should not change zypp to mimic the rpm behavior.
Oh, we already do that. I had to patch rpm in both directions to make it compatible to zypp. Sigh, 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-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
On Mon, 18 Feb 2008, Michael Schroeder wrote:
The question is then if we should not change zypp to mimic the rpm behavior.
Oh, we already do that. I had to patch rpm in both directions to make it compatible to zypp.
At least in 10.3 the behavior is different, if you try to install java-1_5_0-sun-plugin and java-1_6_0-sun-plugin at the same time, with rpm it succeeds, with zypper it fails. Michal -- To unsubscribe, e-mail: opensuse-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
On Mon, Feb 18, 2008 at 04:03:36PM +0100, Michal Svec wrote:
On Mon, 18 Feb 2008, Michael Schroeder wrote:
The question is then if we should not change zypp to mimic the rpm behavior.
Oh, we already do that. I had to patch rpm in both directions to make it compatible to zypp.
At least in 10.3 the behavior is different, if you try to install java-1_5_0-sun-plugin and java-1_6_0-sun-plugin at the same time, with rpm it succeeds, with zypper it fails.
True, but they obsolete each other. So if you first install java-1_5_0-sun-plugin and then java-1_6_0-sun-plugin, java-1_5_0-sun-plugin will be silently gone. I prefer zypp's error message. 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-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
On Mon, 18 Feb 2008, Michael Schroeder wrote:
The question is then if we should not change zypp to mimic the rpm behavior.
Oh, we already do that. I had to patch rpm in both directions to make it compatible to zypp.
At least in 10.3 the behavior is different, if you try to install java-1_5_0-sun-plugin and java-1_6_0-sun-plugin at the same time, with rpm it succeeds, with zypper it fails.
True, but they obsolete each other.
Only 1_6_0 obsoletes 1_5_0, not the other way around.
So if you first install java-1_5_0-sun-plugin and then java-1_6_0-sun-plugin, java-1_5_0-sun-plugin will be silently gone.
That's not true, all packages remain installed. I suppose rpm -U does the trick but certainly not rpm -i. And there I see the confusion, that people might expect zypper in to behave in the same way as rpm -i, but that's obviously not the case. But if there's a consensus the confusion is not there we could let things be as they are now and let it be :) Michal -- To unsubscribe, e-mail: opensuse-softwaremgmt+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-softwaremgmt+help@opensuse.org
participants (4)
-
Klaus Kaempf
-
Michael Schroeder
-
Michal Marek
-
Michal Svec