Postfix a kolize openssl/base vs openssl/ports

Dan Lukes dan at obluda.cz
Wed Jul 8 19:16:52 CEST 2015


On 07/08/15 10:34, Jan Dušátko:
> Dostal jsem se do situace, kdy nesel zkompilovat postfix (v instalacni
> fazi postconf hlasil out of memory, pripadne pokud se podarilo nahodou
> nejakym zazrakem postfix nainstalovat, neumoznil mi start a zase
> postconf hlasil out of memory event. chybejici systemove promenne).
>
> Pricinou uvedeneho problemu byla kolize openssl base vs ports,
> indikatorem problemu tato hlaska:
> /usr/bin/ld: warning: libcrypto.so.7, needed by /usr/lib/libhx509.so,
> may conflict with libcrypto.so.8
> Jedna se o zavlecenou zavislost - krb5 -> libhx509 -> libcrypto (base) a
> ten se ocitne v kolizi s libcrypto z portu.


Spolu jsme to resili telefonem, ale pro ostatni shrnu ...

Problem obecne nastava tehdy, pokud se v systemu pouzivaji dve verze 
teze knihovny.

Pricemz nemusi jit o to, ze se takove dve knihovny pouzivaji primo v 
konkretnim programu. Staci, ze se nejaka takova knihovna pouziva v ramci 
jine knihovny a teprve tahle se pouzije ve vyslednem programu.

Proste, v jednom programu se nesmi takove knihovny sejit ani neprimo.

Technicky jde o to, ze linker pri sestavovani povazuje vsechny symboly 
stejneho jmena za identicke, takze jim priradi pamet - a pak je trochu 
problem, kdyz ruzne casti kodu (pochazejici z ruzne verze knihoven) 
pracuje s toutez pameti "po svem" a aniz o sobe tyto ruzne kody navzajem 
vedi.

OpenSSL je nejtypictejsim kandidatem na tenhle problem - pouziva se v 
systemu, pouzivaji ho i nektere odvozene systemoe knihovny, a soucasne 
existuje verze v portech.

Jakmile treti aplikace pouziva OpenSSL z portu, nemuze soucasne pouzit 
jakoukoliv systemovou knihovnu, ktera sama pouziva systemove OpenSSL.

Aplikac epouzivajici systemovy Kerneros a soucasne umoznuji pouzit 
portove OpenSSL jsou typicky pripad.

Ale v podstate je chyba portu, ze vubec dovoli tuhle kombinaci optionu ...

Dan





More information about the Users-l mailing list