In the last episode (Apr 14), Leinier Cruz Salfran said: > i want to know if there is a possibility to avoid current strict libraries > linking .. i will explain myself > > for example .. i have installed 'gtk' (2.18) that depends on library > 'libpng.so.5' (png) .. and i will upgrade 'png' port to a superior > version that install the library 'libpng.so.6' BUUUTTTT 'gtk' will not be > upgraded, so it will still depending on 'libpng.so.5' .. so here is my > question: there is a way to avoid this?????? i means that 'gtk' load > 'libpng.so' (that is a symbolic link to 'libpng.so.6') instead of > 'libpng.so.5' at runtime
The whole reason for a library version bump is because the libraries are not compatible with each other, usually due to a function being removed or its argument list changing, or a structure changing size. Symlinking one version onto another version might work, but only if the application doesn't use any of the removed or changed functions. http://article.gmane.org/gmane.comp.graphics.png.devel/3283 It's much safer to just leave the libraries alone. Just because you upgraded libpng doesn't mean that your old gtk binary will stop working (assuming you are using "portupgrade" or "portmaster -w" which preserves old libraries of course). Anyway, the FreeBSD port maintainers usually bump the revision of dependant ports when a major library like libpng gets upgraded, to force everyone to upgrade anything that depends on it. > i think this is a VERY VERY strict rule because in linux programs load > 'lib*.so' instead 'lib*.so.#' except if that program was linked to > 'lib*.so.#' at compilation time no, the rule is the same in Linux. Programs load "lib*.so.#" there also: (d...@linuxbox) ~># ldd /usr/bin/rrdtool linux-vdso.so.1 => (0x00007fff4f9ff000) librrd.so.2 => /usr/lib64/librrd.so.2 (0x00007fa047716000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007fa04759b000) libpng.so.3 => /usr/lib64/libpng.so.3 (0x00007fa04745f000) libz.so.1 => /lib64/libz.so.1 (0x00007fa04734b000) libart_lgpl_2.so.2 => /usr/lib64/libart_lgpl_2.so.2 (0x00007fa047234000) libm.so.6 => /lib64/libm.so.6 (0x00007fa0470df000) libc.so.6 => /lib64/libc.so.6 (0x00007fa046e9f000) /lib64/ld-linux-x86-64.so.2 (0x00007fa04785e000) -- Dan Nelson dnel...@allantgroup.com _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"