On 09/30/2010 09:31 AM, Andreas K. Huettel wrote:
>
> Hi,
>
> Just by accident I noticed during emerge something that may lead to major
> confusion: the just stabilized openssl-1.0.0-r3 contains the following code:
>
> pkg_postinst() {
> ...
> has_version ${CATEGORY}/${PN}:0.9.8 && return 0
> preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
> }
>
> However, portage in my case first updated openssl (slot 0) from 0.9.8 to this
> version, _printing out the preserve_old_lib_notify message_, and then
> afterwards installed openssl-0.9.8o-r2.
The preserve_old_lib_notify message in postinst is invalid if the
package doesn't actually own the file. It would be safer to check
for the file in $D during preinst than to check in $ROOT in postinst
like that function does.
Also, if the openssl-0.9.8o-r2 gets pulled in later then it should
bail out due to a file collision, since it's not allows for two
different SLOTs to install the same file(s).
> Net result: if I had relied on the elog messages alone, I would have messed
> up my system by deleting the required files from openssl:0.9.8...
>
> I have no clue how this could be improved, though. Any ideas?
>
> Cheers, Andreas
>
--
Thanks,
Zac