The majority of our clients are using custom Linux Distributions and they are using older versions of GTK+. Our application depends on features available in GTK+ >= 2.10 so, I need to figure out how to distribute the application with all of its dependencies.
So, I used ldd to determine all of the dependencies. The output is listed below. ->ldd interwrite-learning-systray linux-gate.so.1 => (0xffffe000) libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7c49000) libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7bc3000) libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7ba7000) libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7b90000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7b69000) libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb7b61000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7b36000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb7b28000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7b1f000) libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb7b1c000) libXi.so.6 => /usr/lib/libXi.so.6 (0xb7b14000) libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb7b0e000) libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb7b05000) libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7b00000) libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7ac1000) libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb7a51000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb7960000) libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7926000) libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7923000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb791f000) libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7919000) librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7910000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb787b000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7864000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7723000) /lib/ld-linux.so.2 (0xb7fb1000) libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb76f7000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb768c000) libz.so.1 => /usr/lib/libz.so.1 (0xb7678000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7658000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb7655000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7631000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb762c000) So, I copied all of the shared libraries into a sub directory of the application directory called "lib/" for testing. I then used the following commands. ->export LD_LIBRARY_PATH=../lib ->./interwrite-learning-systray Everything runs okay on my system with GTK+ 2.10 I then ran ldd again to see if my application was linked against the libraries that I'm providing in the application directory and sure enough, it is. The output is below. ->ldd interwrite-learning-systray linux-gate.so.1 => (0xffffe000) libgtk-x11-2.0.so.0 => ../lib/libgtk-x11-2.0.so.0 (0xb7c0d000) libgdk-x11-2.0.so.0 => ../lib/libgdk-x11-2.0.so.0 (0xb7b87000) libatk-1.0.so.0 => ../lib/libatk-1.0.so.0 (0xb7b6b000) libgdk_pixbuf-2.0.so.0 => ../lib/libgdk_pixbuf-2.0.so.0 (0xb7b54000) libm.so.6 => ../lib/libm.so.6 (0xb7b2d000) libpangocairo-1.0.so.0 => ../lib/libpangocairo-1.0.so.0 (0xb7b25000) libfontconfig.so.1 => ../lib/libfontconfig.so.1 (0xb7afa000) libXext.so.6 => ../lib/libXext.so.6 (0xb7aeb000) libXrender.so.1 => ../lib/libXrender.so.1 (0xb7ae3000) libXinerama.so.1 => ../lib/libXinerama.so.1 (0xb7ae0000) libXi.so.6 => ../lib/libXi.so.6 (0xb7ad8000) libXrandr.so.2 => ../lib/libXrandr.so.2 (0xb7ad2000) libXcursor.so.1 => ../lib/libXcursor.so.1 (0xb7ac8000) libXfixes.so.3 => ../lib/libXfixes.so.3 (0xb7ac3000) libpango-1.0.so.0 => ../lib/libpango-1.0.so.0 (0xb7a85000) libcairo.so.2 => ../lib/libcairo.so.2 (0xb7a15000) libX11.so.6 => ../lib/libX11.so.6 (0xb7924000) libgobject-2.0.so.0 => ../lib/libgobject-2.0.so.0 (0xb78e9000) libgmodule-2.0.so.0 => ../lib/libgmodule-2.0.so.0 (0xb78e6000) libdl.so.2 => ../lib/libdl.so.2 (0xb78e2000) libgthread-2.0.so.0 => ../lib/libgthread-2.0.so.0 (0xb78dd000) librt.so.1 => ../lib/librt.so.1 (0xb78d4000) libglib-2.0.so.0 => ../lib/libglib-2.0.so.0 (0xb783e000) libpthread.so.0 => ../lib/libpthread.so.0 (0xb7827000) libc.so.6 => ../lib/libc.so.6 (0xb76e6000) /lib/ld-linux.so.2 (0xb7f67000) libpangoft2-1.0.so.0 => ../lib/libpangoft2-1.0.so.0 (0xb76bb000) libfreetype.so.6 => ../lib/libfreetype.so.6 (0xb764f000) libz.so.1 => ../lib/libz.so.1 (0xb763b000) libexpat.so.1 => ../lib/libexpat.so.1 (0xb761b000) libXau.so.6 => ../lib/libXau.so.6 (0xb7618000) libpng12.so.0 => ../lib/libpng12.so.0 (0xb75f4000) libXdmcp.so.6 => ../lib/libXdmcp.so.6 (0xb75ef000) So, according the ldd output above, it should work. So, I copied the application over to a test system using an older version of GTK+ and executed the following commands. ->export LD_LIBRARY_PATH=../lib ->./interwrite-learning-systray And I get a segmentation fault. I then tried ldd and gdb and I get an instant segmentation fault. If I unset the LD_LIBRARY_PATH variable and then try ldd and gdb, they work but the application fails because it's linking against older libraries. Any ideas would be greatly appreciated. _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list