On 5/22/07, Jeremy Roberson <[EMAIL PROTECTED]> wrote: > 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. > Perhaps it's because some libraries are not ABI compatible with your old system. I'd suggest you trying to copy as few libraries as possible to the old system rather than the whole stack of libraries GTK+ depends on. > 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 >
-- Best Regards Shixin Zeng _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list