Re: Our (real) problems



Alex Larsson wrote:
On 31 Aug 2001, Bill Gribble wrote:


All we did was adopt the Gnome environment and write a serious
application which uses it.  The shared libs we require are the standard
Gnome development environment plus Guppi.  If you can compile and run
evolution, all you need to compile gnucash is guppi and a tiny
Scheme program called g-wrap which generates Guile bindings for our
C libs.

Note that this mail was not directed at gnucash in particular, but only used it as an example. I completely understand your viewpoint.

I'm currently looking at the output of ldd /usr/bin/gnucash though, an I'm quite amazed by the things i find there.

libz.so.1 => /usr/lib/libz.so.1 (0x4006d000)
Why is this pulled in?

tiff support ?

libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x401c9000)
Very few apps use this. Gdk could potentially be changed to dynamically load this only when the X input functions are used.

libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x401a8000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x401b2000)
These are needed for session management i guess...

gnome-libs pulls in gdk_imlib, which is unfortunate, since we also use gdk-pixbuf. This will be solved in gnome 2 though.

libgnomesupport.so.0 => /usr/lib/libgnomesupport.so.0 (0x402d5000)
This library seems really bogus.

libgal.so.7 => /usr/lib/libgal.so.7 (0x403e4000)
libunicode.so.0 => /usr/lib/libunicode.so.0 (0x404b2000)
I think gal has unicode handling in it, so this is code duplication. This will be solved in gnome 2 though, because glib 2 will have this code.

libghttp.so.1 => /usr/lib/libghttp.so.1 (0x404d2000)
Do you use this?

Internet banking of some sort ?

libguppidataui.so.11 => /usr/lib/libguppidataui.so.11 (0x404db000)
libguppimath.so.11 => /usr/lib/libguppimath.so.11 (0x40551000)
libguppitank.so.11 => /usr/lib/libguppitank.so.11 (0x40558000)
libguppiplot.so.11 => /usr/lib/libguppiplot.so.11 (0x40564000)
libguppistat.so.11 => /usr/lib/libguppistat.so.11 (0x405cd000)
libguppispecfns.so.11 => /usr/lib/libguppispecfns.so.11 (0x40642000)
libguppidata.so.11 => /usr/lib/libguppidata.so.11 (0x4064b000)
libguppiuseful.so.11 => /usr/lib/libguppiuseful.so.11 (0x406fd000)
Man! guppi could use some library concatenation loving.

hehe ;)

libgnomecanvaspixbuf.so.1 => /usr/lib/libgnomecanvaspixbuf.so.1 (0x407be000)
Really? Do we need an extra library just to get pixmaps in the canvas? Will be fixed in gnome 2 I guess, but there the canvas is it's own library instead.

libzvt.so.2 => /usr/lib/libzvt.so.2 (0x407ce000)
What? Do you use terminal widgets??

Dodgy indeed


libORBitCosNaming.so.0 => /usr/lib/libORBitCosNaming.so.0 (0x4088b000)
libORBit.so.0 => /usr/lib/libORBit.so.0 (0x40894000)
libIIOP.so.0 => /usr/lib/libIIOP.so.0 (0x408d9000)
libORBitutil.so.0 => /usr/lib/libORBitutil.so.0 (0x408e8000)
Some gratious library splitting in ORBit. Or do these need to be separated for some reason? (splitting out CosNaming i can understand though.)

libreadline.so.4 => /usr/lib/libreadline.so.4 (0x40c1e000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x40c44000)
What??? I thought this was a graphical user interface application?

So, for comparison, I did an ldd on RhythmBox. It *actively* uses the gnome libraries, the canvas, gnome-vfs, libxml, gal, gstreamer, libcdaudio and the ogg/vorbis libs. And I will soon add PonG to the list... And it statically links to mplib. I'm also thinking of moving libcdaudio inside the repository, and link statically to it.

In the end, it's pretty awful...

hadess kara:~/Cvs/rhythmbox/src$ ldd rhythmbox
	libm.so.6 => /lib/libm.so.6 (0x0ff68000)
	libdb3.so.3 => /usr/lib/libdb3.so.3 (0x0fe6e000)
	libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x0fe1d000)
	libdl.so.2 => /lib/libdl.so.2 (0x0fdfa000)
	libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0x0fdd7000)
	libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x0fdae000)
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x0fd7c000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x0fc5a000)
	libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x0fc30000)
	libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x0fbf8000)
	libz.so.1 => /usr/lib/libz.so.1 (0x0fbc8000)
	libgst.so.0 => /usr/local/lib/libgst.so.0 (0x0fb5a000)
	libgnomevfs.so.0 => /usr/lib/libgnomevfs.so.0 (0x0fb03000)
	libgconf-gtk-1.so.1 => /usr/lib/libgconf-gtk-1.so.1 (0x0fadd000)
	libgconf-1.so.1 => /usr/lib/libgconf-1.so.1 (0x0fa7d000)
	liboaf.so.0 => /usr/lib/liboaf.so.0 (0x0fa40000)
	libORBitCosNaming.so.0 => /usr/lib/libORBitCosNaming.so.0 (0x0fa17000)
	libORBit.so.0 => /usr/lib/libORBit.so.0 (0x0f99d000)
	libIIOP.so.0 => /usr/lib/libIIOP.so.0 (0x0f974000)
	libORBitutil.so.0 => /usr/lib/libORBitutil.so.0 (0x0f952000)
	libgthread-1.2.so.0 => /usr/lib/libgthread-1.2.so.0 (0x0f930000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x0f8f9000)
	libgal.so.9 => /usr/lib/libgal.so.9 (0x0f7be000)
	libgnomeprint.so.15 => /usr/lib/libgnomeprint.so.15 (0x0f705000)
	libglade-gnome.so.0 => /usr/lib/libglade-gnome.so.0 (0x0f6d4000)
	libglade.so.0 => /usr/lib/libglade.so.0 (0x0f69a000)
	libxml.so.1 => /usr/lib/libxml.so.1 (0x0f5eb000)
	libgdk_pixbuf.so.2 => /usr/lib/libgdk_pixbuf.so.2 (0x0f5b1000)
	libgnomecanvaspixbuf.so.1 => /usr/lib/libgnomecanvaspixbuf.so.1 (0x0f58d000)
	libgnomeui.so.32 => /usr/lib/libgnomeui.so.32 (0x0f465000)
	libart_lgpl.so.2 => /usr/lib/libart_lgpl.so.2 (0x0f436000)
	libgdk_imlib.so.1 => /usr/lib/libgdk_imlib.so.1 (0x0f3ee000)
	libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0x0f22c000)
	libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0x0f1ca000)
	libgnome.so.32 => /usr/lib/libgnome.so.32 (0x0f18e000)
	libgnomesupport.so.0 => /usr/lib/libgnomesupport.so.0 (0x0f169000)
	libesd.so.0 => /usr/lib/libesd.so.0 (0x0f142000)
	libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x0f0fc000)
	libvorbisfile.so.0 => /usr/lib/libvorbisfile.so.0 (0x0f0d5000)
	libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x0f094000)
	libogg.so.0 => /usr/lib/libogg.so.0 (0x0f070000)
	libcdaudio.so.1 => /usr/lib/libcdaudio.so.1 (0x0f03f000)
	libc.so.6 => /lib/libc.so.6 (0x0eee1000)
	libpopt.so.0 => /lib/libpopt.so.0 (0x0eebb000)
	libwrap.so.0 => /lib/libwrap.so.0 (0x0ee93000)
	/lib/ld.so.1 => /lib/ld.so.1 (0x30000000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x0ee5c000)
hadess kara:~/Cvs/rhythmbox/src$ ldd rhythmbox | wc -l
     47





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