On Wed, Apr 14, 2010 at 1:48 PM, Dan Nelson <dnel...@allantgroup.com> wrote:
> 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
>

as I said: almost all new versions of libraries (those that developer
knows what he/she is doing) maintain functions that are compatible
with previous versions functions .. that's why gtk continue (right
now) working on my box

> It's much safer to just leave the libraries alone.

agree

> Just because you
> upgraded libpng doesn't mean that your old gtk binary will stop working

I disagree .. I have a program that depends on 'libpng.so.5' .. I
tried to execute it after upgrade 'png' and it don't started becase
the system lacks 'libpng.so.5'

I solved the situation RECOMPILING the program .. doing that the
program linked against NEW 'libpng.so.6' and when I tried to execute
it once again it works fine

> 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.
>

mmm .. I think it's not true because I maintain a port and i'm VERY
VERY restricted to update the port because I depends on a mentor that
will ONLY update the port in fbsd svn tree if I sent to him the
tinderbox log of the sucessfully build of the port .. so I have not
much patience to do all this things so I update the port and do ALL
task including constructing the package into tinderbox ONLY when a new
version of the program is available .. and I think that exists a lot
of ports maintainers that are in same situation

do you agree with me that it's difficult to a port maintainer to
update his/her port because of this restriction????

could be a good idea to plan and implement a system to allow fbsd
ports maintainers to maintain easyly the own ports via web or mail
ONCE a fbsd mentor have uploaded his/her port to fbsd svn
tree?????????????

>> 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"

Reply via email to