[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] export of LD_LIBRARY_PATH in e_start_main.c



Carsten Haitzler (The Rasterman) wrote:
On Sun, 17 Dec 2006 22:13:05 -0500 Mike Frysinger <vapier@gentoo.org> babbled:

On Sunday 17 December 2006 17:54, Carsten Haitzler wrote:
this is part of the setup that enlightenment_start does to make sure e
finds libraries in the prefix it's installed in. basically this is there
for when people install, e17, evas, eet, etc. in, for example, /opt/e17 or
/usr/local which is the default, and on linux DONT add /opt/e17/lib to
/etc/ld.so.conf or if on bsd DONT add it to LD_LIBRARY_PATH. this means
that things "just work". e also adds to $PATH too to make sure it can
execute things in its own install prefix. it detects this on the fly at
runtime because e is actually relocatable at runtime and doesnt need a
recompile to be moved. this also handles the problem where users do silly
things like install libs multiple times in different prefixes - the
LD_LIBRARY_PATH makes the "prefix local" libs preferred over others (i.e.
the ones e17 was most likely compiled against).
it sounds like you're trying to compensate for people who fucked up their install and dont know how to properly do things and thereby screwing over correct setups ...

no - i'm trying to make e relocatable runtime without having to go set a whole
lot of magic environment variables - just run enlightenment_start and it will
"work".

Hm... Unfortunately setting those environment variables magically does affect the rest of the system too, not only e17. I thought about it and must say that I'd prefer it if setting those variables were left to the admin (or the one who installs software). I do agree that having several different versions of the same lib installed is not preferable, but sometimes it happens for good reason. I guess I too would consider having enlightenment relocatable useful for the unexperienced user (although I doubt that kind of user would shift enlightenment around once it's working), but I think if possible e_start_main.c should only set LD_LIBRARY_PATH if e's install location is really non-standard and not covered by the system (ld.so.conf or ld.so.conf.d/). I don't have an exact plan how to achieve relocatability without setting LD_LIBRARY_PATH, maybe s.th. like QTDIR or the option Mike proposed in this thread.

Regards,   Nick.