FS#11623 - undefined symbol gtk_file_system_error_quark in ruby-gtk2
Attached to Project:
Community Packages
Opened by Stéphane Travostino (eazy) - Monday, 29 September 2008, 08:56 GMT
Last edited by Andrea Scarpino (BaSh) - Monday, 20 October 2008, 08:56 GMT
Opened by Stéphane Travostino (eazy) - Monday, 29 September 2008, 08:56 GMT
Last edited by Andrea Scarpino (BaSh) - Monday, 20 October 2008, 08:56 GMT
|
Details
Description:
The Ruby-Gnome2 (0.17.0-1) binding misses the "gtk_file_system_error_quark" symbol. I was trying to compile Fantasdic (http://www.gnome.org/projects/fantasdic/), I installed the latest ruby-gnome2 package and upon starting I get the following message: /usr/bin/ruby: symbol lookup error: /usr/lib/ruby/site_ruby/1.8/i686-linux/gtk2.so: undefined symbol: gtk_file_system_error_quark Here's some info found on Google about the issue: https://bugs.launchpad.net/ubuntu/+source/ruby-gnome2/+bug/245955 It seems that Ubuntu found a workaround on this issue on the release candidate of 0.17.0. So I suspect it should be fixed in 0.17.0, but there's no mention of it on the Ruby-Gnome2 bug tracker. I attach the PKGBUILD for Fantasdic. |
This task depends upon
It builds perfectly for me (i686)
my pkgbuild is same of your, only some fixes for arrays:
ArchLinux testing updated today, i686
gtk2 version 2.14.3-1
ruby version 1.8.7_p72-2
http://rafb.net/p/wV30y510.html
So I suspect this bug applies to ruby-gtk2, not ruby-gnome2.
See Tanath's bug report on the Ubuntu link I posted..
$ y -Qo /usr/lib/ruby/site_ruby/1.8/i686-linux/gtk2.so
/usr/lib/ruby/site_ruby/1.8/i686-linux/gtk2.so è contenuto in ruby-gtk2 0.17.0-1
$ nm /usr/lib/ruby/site_ruby/1.8/i686-linux/gtk2.so | grep gtk_file_system_error
U gtk_file_system_error_quark
$ ldd /usr/lib/ruby/site_ruby/1.8/i686-linux/gtk2.so
linux-gate.so.1 => (0xb80d9000)
libruby.so.1.8 => /usr/lib/libruby.so.1.8 (0xb7f1c000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7f18000)
librt.so.1 => /lib/librt.so.1 (0xb7ef3000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7e3e000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7aae000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7a24000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7a09000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb79ee000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb79e4000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb79a2000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb7937000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb78fc000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb78f8000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb78e0000)
libdl.so.2 => /lib/libdl.so.2 (0xb78dc000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0xb78aa000)
libm.so.6 => /lib/libm.so.6 (0xb7884000)
libc.so.6 => /lib/libc.so.6 (0xb7742000)
/lib/ld-linux.so.2 (0xb80da000)
libpcre.so.0 => /lib/libpcre.so.0 (0xb7710000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb7621000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xb761e000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb761b000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7616000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0xb75b0000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7589000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7514000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7500000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb74d5000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb74ae000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb749f000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7497000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb7494000)
libXi.so.6 => /usr/lib/libXi.so.6 (0xb748c000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb7486000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb747c000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xb743a000)
libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb7438000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7420000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb73ff000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb73fc000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb73f7000)
I updated the ruby-gtk2 package (with dependencies) and it gives me the same error.
So I removed (-Rcs) ruby-gtk2 and fantasdic, I reinstalled the latest gtk2 binding, recompiled fantasdic and it's the same.
$ ls -l /usr/lib/ruby/site_ruby/1.8/i686-linux/gtk2.so
-rwxr-xr-x 1 root root 1137456 1 ott 22:34 /usr/lib/ruby/site_ruby/1.8/i686-linux/gtk2.so*
I don't know if it's useful, but I attach my gtk2.so, so you can compare with yours.
http://rafb.net/p/7vY1je65.html
My and your gtk2.so files are the same (obviously)
nopaste me a full makepkg output
thanks
Does your gtk2.so provide the gtk_file_system_error_quark symbol?
Later today I'm testing the package on a friend's Archlinux box and see if it works.
still I don't understand why this bug didn't affect Andrea. When will the updated package hit testing?
I'm more busy in these days.
patch applied in 0.18.0-2
arch:$ y -Qi ruby-gtk2
Nome : ruby-gtk2
Versione : 0.18.0-2
I do some searchs, it seems that ruby-gtk2 uses some private stuff that was deleted in GTK+ 2.14. I think Andrea is working on stable which has GTK 2.12, am I right ?
The upstream patch is here to avoid a compile error ; the problem is that linking ruby-gtk2 with GTK+ 2.12 makes ruby-gtk2 relying on private symboles deleted in GTK+ 2.14, thus failing at runtime. I see three ways to solve this bug:
* compile with GTK+ 2.14. Not a brillant idea since it may make ruby-gtk2 may crash in stable :)
* wait for GTK+ 2.14 to reach stable
* don't rely on private symbols even for GTK+ 2.12 (replace #ifdef GTK_FILE_SYSTEM_ERROR by #if 0 in the patch)
Personally, I prefer the third solution, but the question is: why upstream didn't choose it ? I'll ask if I can find my sourceforge account ;) (http://sourceforge.net/tracker/index.php?func=detail&aid=2025651&group_id=53614&atid=470969)
Refs:
http://osdir.com/ml/gnome.gtk+.devel.general/2004-02/msg00127.html
http://mail.gnome.org/archives/svn-commits-list/2008-June/msg04258.html
thanks Simon for your explanation
Thank you Andrea and thank you Simon.