Be very careful with Requires(pre)!

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Be very careful with Requires(pre)!

Michael Schroeder-4

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                                   [hidden email]
SUSE LINUX GmbH,           GF Jeff Hawn, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Be very careful with Requires(pre)!

Jan Engelhardt-4
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: [hidden email]
To contact the owner, e-mail: [hidden email]