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

Reply via email to