[opensuse-packaging] how will zypper treat conflicts/provides/obsoletes?
hello, what will happen if a packageA has something like: Provides: packageB = %version-%release Obsoletes: packageB < %version-%release Conflicts: packageB < %version-%release will zypper use it to upgrade from packageB to packageA? will the Conflicts clause ensure that packageB is completely removed before installing packageA? will something else happen? will nothing at all happen? What I'm actually after is the second question - making sure that in an upgrade, packageB is completely removed, %postun scriptlets and all, before even starting to install packageA. Is a Conflics clause a way to ensure that? Are there any (other) options? thanks m.
On Tue, Mar 21, 2017 at 9:51 AM, jan matejek
hello,
what will happen if a packageA has something like: Provides: packageB = %version-%release Obsoletes: packageB < %version-%release Conflicts: packageB < %version-%release
will zypper use it to upgrade from packageB to packageA? will the Conflicts clause ensure that packageB is completely removed before installing packageA? will something else happen? will nothing at all happen?
What I'm actually after is the second question - making sure that in an upgrade, packageB is completely removed, %postun scriptlets and all, before even starting to install packageA.
Is a Conflics clause a way to ensure that? Are there any (other) options?
It will work, as long as packageB never gets built to go above. But no, it doesn't affect transaction ordering. It works the same way as if it's just a normal upgrade, it just happens to be packageB -> packageA instead. -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Mar 21, 2017 at 4:55 PM, Neal Gompa
On Tue, Mar 21, 2017 at 9:51 AM, jan matejek
wrote: hello,
what will happen if a packageA has something like: Provides: packageB = %version-%release Obsoletes: packageB < %version-%release Conflicts: packageB < %version-%release
will zypper use it to upgrade from packageB to packageA? will the Conflicts clause ensure that packageB is completely removed before installing packageA? will something else happen? will nothing at all happen?
What I'm actually after is the second question - making sure that in an upgrade, packageB is completely removed, %postun scriptlets and all, before even starting to install packageA.
Is a Conflics clause a way to ensure that? Are there any (other) options?
It will work, as long as packageB never gets built to go above. But no, it doesn't affect transaction ordering.
Does RPM has something like "Conflicts(pre)" (to match "Requires(pre)")? -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tuesday 2017-03-21 15:04, Andrei Borzenkov wrote:
Does RPM has something like "Conflicts(pre)" (to match "Requires(pre)")?
Of course not, that would be totally redundant. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
22.03.2017 01:09, Jan Engelhardt пишет:
On Tuesday 2017-03-21 15:04, Andrei Borzenkov wrote:
Does RPM has something like "Conflicts(pre)" (to match "Requires(pre)")?
Of course not, that would be totally redundant.
Normally during update first new version is installed then old version is removed. The question (that you helpfully did not include in your quote) was - is it possible to reverse this, first completely removing old version (which happens to be different package now) before installing new. Does you answer mean that RPM does it already in this case? -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Wednesday 2017-03-22 04:21, Andrei Borzenkov wrote:
22.03.2017 01:09, Jan Engelhardt пишет:
On Tuesday 2017-03-21 15:04, Andrei Borzenkov wrote:
Does RPM has something like "Conflicts(pre)" (to match "Requires(pre)")?
Of course not, that would be totally redundant.
Normally during update first new version is installed then old version is removed. The question (that you helpfully did not include in your quote) was - is it possible to reverse this, first completely removing old version (which happens to be different package now) before installing new. Does you answer mean that RPM does it already in this case?
Requires(pre): X says that X must be present before %pre is executed. However, Conflicts: X is a clear contradiction to that existence (at any time!), and so there is already an order imposed on the transaction. Whether the implementation gets it right is another thing.. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (4)
-
Andrei Borzenkov
-
Jan Engelhardt
-
jan matejek
-
Neal Gompa