[geeks] broken software
Charles Shannon Hendrix
shannon at widomaker.com
Fri Dec 2 10:06:25 CST 2005
We were talking about broken software recently...
I just found a nice little gem in Gnome.
The clock applet won't load. Checking its library dependencies with ldd
I was amazed to find it depends on Firefox, the WWW browser.
Huh?
% ldd /usr/libexec/clock-applet | wc -l
80
A selection of wierd items the clock "depends" on:
% ldd /usr/libexec/clock-applet | wc -l
libgnomeui-2.so.0 => /usr/lib/libgnomeui-2.so.0 (0xb7d8d000)
libbonoboui-2.so.0 => /usr/lib/libbonoboui-2.so.0 (0xb7d2a000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7a03000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7974000)
OK, we expect to pay a heavy price for a unified GUI environment, so
things like this are fairly normal. Bloated, but normal.
However...
libgnome-keyring.so.0 => /usr/lib/libgnome-keyring.so.0 (0xb75d1000)
Why does the clock applet need access to keyrings?
libz.so.1 => /usr/lib/libz.so.1 (0xb7264000)
Why does it need compression libraries?
libplc4.so => not found
libplds4.so => not found
libnspr4.so => not found
These are all Firefox browser libraries... why does it need those?
libexpat.so.0 => /usr/lib/libexpat.so.0 (0xb6f68000)
libssl.so.0 => /usr/lib/libssl.so.0 (0xb6f37000)
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0xb6e36000)
Why does a clock need crypto stuff, and expat?
libasound.so.2 => /usr/lib/libasound.so.2 (0xb6beb000)
The clock applet does not use any sound, so why is the sound library
needed?
libplc4.so => not found
libplds4.so => not found
libnspr4.so => not found
libssl3.so => not found
libsmime3.so => not found
libnss3.so => not found
libsoftokn3.so => not found
More missing Firefox libraries... ???????
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb6b14000)
Kerberos? For a clock?
To be fair, dynamic libraries kind of suck, and GCC often cannot resolve
dependencies without a lot of unecessary ones being added for reasons
which I don't fully understand.
But surely there are ways to prevent this. I have run through the
sources, and the clock applet *DOES NOT NEED* what is linked to it, and
loaded into memory.
I'm tempted to try and do my own build to see if I can reduce memory
consuption and cycles, but the build process for Gnome is rather
painful.
--
shannon "AT" widomaker.com -- ["I wish life was not so short. Languages
take such a time, and so do all the things one wants to know about." - J.
R. R. Tolkien]
More information about the geeks
mailing list