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
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l