[gobolinux-users] Source repositories and other suggestions

Martin Baldan martinobal at gmail.com
Wed Nov 29 00:03:56 UTC 2006

On 11/28/06, Jonas Karlsson <jonka750 at student.liu.se > wrote:
> On Tue, 28 Nov 2006 02:25:40 +0100, Martin Baldan <martinobal at gmail.com>
> wrote:

> Linked in libraries = the libraries that are made available by
> SymlinkProgram
> Linked against libraries = the libraries the binary is compiled against
> The libraries that are loaded are the versions that the executable is
> compiled against, in my example firefox loaded the file
> /System/Links/Libraries/libpangocairo-1.0.so.0. This is decided by 'ld'
> during the linking fase of the compilation and cannot be changed (unless
> one recompiles firefox).

Let's see if I got it: "linked against"  libraries are the ones  the
executable will "ask for" when run; that is, the program will search for a
file in a specific location, and this is embedded in the program's object
code. But in this location there is a link pointing somewhere.
SymlinkProgram  decides where this link should point to (the "linked in"
library) and creates the link.  For instance, you say:

For example my firefox links against
> /System/Links/Libraries/libpangocairo-1.0.so.0 (part of Pango), so I can
> use any version of Pango that has that library version and the one linked
> in atm is which firefox would use, as the link
/System/Links/Libraries/libpangocairo-1.0.so.0 is updated to reflect which
> version of Pango that is active. So far I can select which version to use.

So,  /System/Links/Libraries/libpangocairo- 1.0.so.0 , the "linked against"
library, is just a link, regularly updated to the "active" version, the real
library that will be used, right? For instance, in my system it now points
to ../../../Programs/Pango/1.13.2/lib/libpangocairo-1.0.so.0  , which in
turn points to libpangocairo-1.0.so.0.1302.0 , which I guess is the actual
library that will be loaded.

Now my point is, even if Firefox does not require a specific version of
libpangocairo (such as libpangocairo-1.0.so.0.1302.0) but only a version
range (such as libpangocairo-1.0.so.0 ), I think there could be a file (or a
database) with updated information about which specific versions of the
libpangocairo-1.0.so.0 version range have been actually tested (even users
could automatically help with the tests, and create a shared pool of
knowledge about actual, tested compatibilities). So, if
libpangocairo-1.0.so.0.1302.0 has been tested with firefox, it can be
automatically "linked in" by SymlinkProgram. If none of the  available
versions have been tested, the system may warn the user, who would decide
what to do (try untested libraries or wait until they are tested). The
update manager would check for newly tested library versions from time to
time, and either update the links automatically or ask the user. I think
your XChat example illustrates, rather than contradict, this concept.

In other words, what SymlinkProgram would do is that, instead of  just
"linking in" the libpango version found in /Programs/Pango/current , it
would also check that this version is present in, say,
/System/Links/TestedWith/Firefox/2.0/Programs/Pango/current (if you are
compiling Firefox2.0)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.gobolinux.org/pipermail/gobolinux-users/attachments/20061129/f7f4218d/attachment.htm 

More information about the gobolinux-users mailing list