[opensuse-packaging] Be very careful with Requires(pre)!
Hi Packagers, some days I stumbled over an oddity in the wicked package. Rpm allowed the deinstallation of the "wicked" and "libwicked-0-6" packages even if wicked-service was still installed. It turned out that the issue was with Requires(pre). What many packagers seem to not know is that this means two things: - the package is needed in the prein scriptlet - the package is no longer needed after the installation (!) This is also cleary stated in the rpm's documentation: http://rpm.org/user_doc/more_dependencies.html#scriptlet-dependencies Note that this was not a problem for PreReq, as it is identical to Requires(pre,preun) and thus the package needs to be kept installed. But it's dangerous to simply change PreReq to Requires(pre), as seemed to be done for a large amount of packages. So I'd like to ask all of you to check your packages if you have a Requires(pre) that's also needed at runtime. The most correct way of fixing this is to simply add another line without the (pre): Requires(pre): libwicked-0-6 = %{version} Requires: libwicked-0-6 = %{version} Thank you, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Friday 2017-10-13 15:04, Michael Schroeder wrote:
Requires(pre): libwicked-0-6 = %{version} Requires: libwicked-0-6 = %{version}
Humm. Speaking of wicked, why does wicked even have this (Requires) dependency? ELF deps are supposed to get autodiscovered. And the fact that it is called libwicked-0.so.6 rather than libwicked-0.so suggests that it is not dlopened either. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Friday 2017-10-13 15:04, Michael Schroeder wrote:
Requires(pre): libwicked-0-6 = %{version} Requires: libwicked-0-6 = %{version}
Humm. Speaking of wicked, why does wicked even have this (Requires) dependency? ELF deps are supposed to get autodiscovered. And the fact that it is called libwicked-0.so.6 rather than libwicked-0.so suggests that it is not dlopened either. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (2)
-
Jan Engelhardt
-
Michael Schroeder