[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