Bug 380317

Summary: undefined symbol: g_dpgettext
Product: [openSUSE] openSUSE 11.0 Reporter: Jiri Slaby <jslaby>
Component: GNOMEAssignee: E-mail List <gnome-bugs>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: aj, coolo, kra, ma
Version: Factory   
Target Milestone: ---   
Hardware: x86-64   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: list of non-suse provided packages

Description Jiri Slaby 2008-04-16 09:20:57 UTC
Run 32-bit gtk application on 64-bit:

$ ./firefox
.../firefox-bin: symbol lookup error: /usr/lib/libgtk-x11-2.0.so.0: undefined symbol: g_dpgettext

$ ldd -r /usr/lib/libgtk-x11-2.0.so.0
        linux-gate.so.1 =>  (0xf7f82000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xf7bc0000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xf7b39000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xf7b2f000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xf7af1000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xf79cf000)
        libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xf79cb000)
        libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xf79c7000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xf79c1000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xf79a6000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xf796b000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xf7965000)
        libdl.so.2 => /lib/libdl.so.2 (0xf7961000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xf78c0000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xf783e000)
        libm.so.6 => /lib/libm.so.6 (0xf7818000)
        libc.so.6 => /lib/libc.so.6 (0xf76d5000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xf76a6000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xf7697000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xf768d000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xf7689000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0xf7680000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xf7678000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xf766d000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xf7645000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xf75d2000)
        libz.so.1 => /lib/libz.so.1 (0xf75be000)
        libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xf75bb000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf75a1000)
        /lib/ld-linux.so.2 (0xf7f83000)
        libpcre.so.0 => /usr/lib/libpcre.so.0 (0xf7577000)
        libglitz.so.1 => /usr/lib/libglitz.so.1 (0xf754f000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xf752a000)
        libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0xf7525000)
        libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xf751c000)
        libexpat.so.1 => /lib/libexpat.so.1 (0xf74f5000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xf74f1000)
undefined symbol: g_assertion_message_expr      (/usr/lib/libpangoft2-1.0.so.0)
undefined symbol: g_assertion_message_expr      (/usr/lib/libpango-1.0.so.0)
undefined symbol: g_assertion_message   (/usr/lib/libpango-1.0.so.0)
undefined symbol: g_assertion_message_expr      (/usr/lib/libgdk-x11-2.0.so.0)
undefined symbol: g_assertion_message   (/usr/lib/libgdk-x11-2.0.so.0)
undefined symbol: g_assertion_message_expr      (/usr/lib/libgdk_pixbuf-2.0.so.0)
undefined symbol: g_assertion_message   (/usr/lib/libgdk_pixbuf-2.0.so.0)
undefined symbol: g_assertion_message_expr      (/usr/lib/libgtk-x11-2.0.so.0)
undefined symbol: g_dpgettext   (/usr/lib/libgtk-x11-2.0.so.0)
undefined symbol: g_assertion_message   (/usr/lib/libgtk-x11-2.0.so.0)



Whereas when I downgrade to the 10.3 gtk2-32bit (2.12.0-5.4) package, it is:
ldd -r /usr/lib/libgtk-x11-2.0.so.0
        linux-gate.so.1 =>  (0xf7f7f000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xf7bd3000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xf7b4f000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xf7b45000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xf7b07000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xf79e5000)
        libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xf79e1000)
        libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xf79dd000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xf79d7000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xf79bc000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xf7981000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xf797b000)
        libdl.so.2 => /lib/libdl.so.2 (0xf7977000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xf78d6000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xf7854000)
        libm.so.6 => /lib/libm.so.6 (0xf782e000)
        libc.so.6 => /lib/libc.so.6 (0xf76eb000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xf76bc000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xf76ad000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xf76a3000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xf769f000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0xf7696000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xf768e000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xf7683000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xf765b000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xf75e8000)
        libz.so.1 => /lib/libz.so.1 (0xf75d4000)
        libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xf75d1000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf75b7000)
        /lib/ld-linux.so.2 (0xf7f80000)
        libpcre.so.0 => /usr/lib/libpcre.so.0 (0xf758d000)
        libglitz.so.1 => /usr/lib/libglitz.so.1 (0xf7565000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xf7540000)
        libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0xf753b000)
        libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xf7532000)
        libexpat.so.1 => /lib/libexpat.so.1 (0xf750b000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xf7507000)
undefined symbol: g_assertion_message_expr      (/usr/lib/libpangoft2-1.0.so.0)
undefined symbol: g_assertion_message_expr      (/usr/lib/libpango-1.0.so.0)
undefined symbol: g_assertion_message   (/usr/lib/libpango-1.0.so.0)

And ff starts just fine.
Comment 1 JP Rosevear 2008-04-16 12:52:31 UTC
On 11.0 and 10.3 Firefox is by default a 64bit application.  Are you using GNOME:STABLE or something else from the build service?
Comment 2 Jiri Slaby 2008-04-16 15:13:30 UTC
Firefox 3b5 obtained from ftp.mozilla.org.

Anyway it doesn't matter what it is, if I compile this on 32-bit (debian) machine with libgtk2.0-dev 2.12.9-3:
#include <stdio.h>
#include <glib/gstrfuncs.h>
#include <glib/gi18n.h>

int main(void)
{
        puts(Q_("a"));

        return 0;
}

by
$ gcc a.c -oac -Wall `pkg-config gtk+-x11-2.0 --cflags --libs`

and copy on the 64-bit one and execute, I get
./ac: symbol lookup error: ./ac: undefined symbol: g_dpgettext
Comment 3 Jiri Slaby 2008-04-16 16:09:32 UTC
Fedora handles this just fine with gtk2-2.12.9-5.fc9.i386. (The same executable built on debian).

BTW the executable doesn't work on the none of gtk2-32bit packages. (firefox does on the older -- 10.3 update)
Comment 4 JP Rosevear 2008-04-16 16:30:14 UTC
I'm not seeing the problems on the latest 64bit factory:
jpr@linux-yvvr:~/Desktop> ldd -r /usr/lib/libgtk-x11-2.0.so.0
	linux-gate.so.1 =>  (0xffffe000)
	libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xf7b9c000)
	libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xf7b15000)
	libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xf7b0b000)
	libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xf7acd000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0xf79ab000)
	libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xf79a7000)
	libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xf79a3000)
	libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xf799d000)
	libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xf7982000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xf7947000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xf7942000)
	libdl.so.2 => /lib/libdl.so.2 (0xf793e000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xf788a000)
	libcairo.so.2 => /usr/lib/libcairo.so.2 (0xf7808000)
	libm.so.6 => /lib/libm.so.6 (0xf77e2000)
	libc.so.6 => /lib/libc.so.6 (0xf769f000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xf7670000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0xf7661000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0xf7657000)
	libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xf7653000)
	libXi.so.6 => /usr/lib/libXi.so.6 (0xf764a000)
	libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xf7642000)
	libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xf7637000)
	libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xf760f000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xf759c000)
	libz.so.1 => /lib/libz.so.1 (0xf7588000)
	libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xf7585000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf756b000)
	/lib/ld-linux.so.2 (0xf7f63000)
	libpcre.so.0 => /usr/lib/libpcre.so.0 (0xf7541000)
	libglitz.so.1 => /usr/lib/libglitz.so.1 (0xf7519000)
	libpng12.so.0 => /usr/lib/libpng12.so.0 (0xf74f2000)
	libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0xf74ed000)
	libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xf74e4000)
	libexpat.so.1 => /lib/libexpat.so.1 (0xf74bd000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0xf74b9000)

jpr@linux-yvvr:~/Desktop> rpm -q gtk2-32bit
gtk2-32bit-2.12.9-17

As well I compiled your test problem:
jpr@linux-yvvr:~/Desktop> ./ac 
a

Are you certain that you have nothing from packman or the Build Service that could be causing problems?
Comment 5 Jiri Slaby 2008-04-16 18:33:23 UTC
Created attachment 208398 [details]
list of non-suse provided packages

$ rpm -qa --qf '%{NAME}-%{VERSION}: %{VENDOR}\n'|grep -v 'SUSE LINUX Products GmbH'|sort >nonSUSE_packages.txt

I don't know, I'll dig in further. rpm -Va 'g*' print out only some prelink warnings.
Comment 7 Michael Adam 2008-05-01 22:12:29 UTC
I have upgraded to factory repos from 10.3+upgrades.
running x86_64.
Only active repos: factory-oss, factory-non-oss, and factory-debug.

I also see the problem:

nirvana:~ # ldd -r /usr/lib/libgtk-x11-2.0.so.0 > /dev/null
undefined symbol: g_assertion_message_expr      (/usr/lib/libpangoft2-1.0.so.0)
undefined symbol: g_assertion_message_expr      (/usr/lib/libpango-1.0.so.0)
undefined symbol: g_assertion_message   (/usr/lib/libpango-1.0.so.0)
undefined symbol: g_assertion_message_expr      (/usr/lib/libgdk-x11-2.0.so.0)
undefined symbol: g_assertion_message   (/usr/lib/libgdk-x11-2.0.so.0)
undefined symbol: g_assertion_message_expr      (/usr/lib/libgdk_pixbuf-2.0.so.0)
undefined symbol: g_assertion_message   (/usr/lib/libgdk_pixbuf-2.0.so.0)
undefined symbol: g_assertion_message_expr      (/usr/lib/libgtk-x11-2.0.so.0)
undefined symbol: g_dpgettext   (/usr/lib/libgtk-x11-2.0.so.0)
undefined symbol: g_assertion_message   (/usr/lib/libgtk-x11-2.0.so.0)
nirvana:~ # 

Cheers, Michael
Comment 8 JP Rosevear 2008-05-01 23:26:58 UTC
Comment #7 is I think bug 382523
Comment 9 JP Rosevear 2008-05-01 23:50:33 UTC
 In comment #2 you built against 2.12.9 and ran it against 2.12.0, gtk is backwards compatible (ie old interfaces don't disappear) but its not forwards compatible - ie in this case new symbols appeared in 2.12.9 and were linked against (probably through macros) and those are not available on older systems.

I talked to the mozilla people, and 2.10.x is the minimum requirement.  I could not find the FF binary to test on your machine.

Btw, you can get FF 3.0b5 for 10.3 from:
http://download.opensuse.org/repositories/mozilla:/beta/openSUSE_10.3/

Comment 10 Michael Adam 2008-05-02 07:18:02 UTC
(In reply to comment #8 from JP Rosevear)
> Comment #7 is I think bug 382523
> 

Oh thanks a lot for the hint!
That solved a couple of issues for me!

Michael
Comment 11 Jiri Slaby 2008-05-02 09:35:54 UTC
Name        : firefox                      Relocations: (not relocatable)
Version     : 2.9.95                            Vendor: openSUSE Build Service
Release     : 3.13                          Build Date: St 30. duben 2008, 13:57:16 CEST
Install Date: Pá 2. květen 2008, 11:30:44 CEST      Build Host: build04
Group       : Productivity/Networking/Web/Browsers   Source RPM: firefox-2.9.95-3.13.src.rpm
Size        : 25017725                         License: MPL/GPL/LGPL
Signature   : DSA/SHA1, St 30. duben 2008, 14:01:39 CEST, Key ID 026b47f3766da614
URL         : http://www.mozilla.org/
Summary     : Mozilla Firefox Web Browser
Description :
Mozilla Firefox, formerly known as Phoenix and Firebird, is a redesign
of the Mozilla browser component, similar to Galeon, K-Meleon and
Camino, but written using the XUL user interface language and designed
to be cross-platform. It is a stand-alone application instead of part
of the Mozilla Application Suite.


Authors:
--------
    Mozilla Foundation <drivers@mozilla.org>
Distribution: mozilla:beta / SUSE_Factory


Does not work (i386 package):
/usr/lib/firefox/firefox-bin: symbol lookup error: /usr/lib/libgtk-x11-2.0.so.0: undefined symbol: g_dpgettext
I have to have gtk2-32bit-2.12.0-5.4 to get it working.
Comment 12 Jiri Slaby 2008-05-02 09:40:08 UTC
Comment #9 is wrong. 2.12.0 works, 2.12.9 does not -- with firefox. The compiled i386 executable (on machine with 2.12.9) doesn't run on any of them.

The mentioned machine is not my machine, it's yet another one which hits the regression too.
Comment 13 Anders Johansson 2008-06-01 10:39:30 UTC
This problem also affects real player, which won't start on 11.0 because of this missing symbol
Comment 14 Anders Johansson 2008-06-01 10:44:39 UTC
The problem seems to be that glib2-32bit is missing. I'm still running with 2.14 from 10.3, it was never updated.

There seems to be lots of -32bit packages missing from 11.0, I've had several problems caused by missing -32bit
Comment 15 Anders Johansson 2008-06-10 16:46:05 UTC
glib2-32bit is still missing. I consider this a blocker bug
Comment 16 Stephan Kulow 2008-06-11 05:56:23 UTC
No idea how you updated, but there is no glib2 library package anymore - and as such is also no glib2-32bit package there.

coolo@linux-wcg3#~>rpm -q --whatprovides glib2-32bit
libglib-2_0-0-32bit-2.16.3-18

Comment 17 Stephan Kulow 2008-06-11 06:25:13 UTC
I tried to reproduce the problem, btw and for me changing to 32bit firefox didn't pull in 32bit xulrunner, but left the 64bit one, so I got this:
coolo@linux-wcg3#~>firefox
Could not find compatible GRE between version 1.9b5 and 1.9b5.
Comment 18 Stephan Kulow 2008-06-11 06:26:45 UTC
ah, it pulled runner190 in 64bit, but some dependency was satisfied by runner181-32bit around. 
Comment 19 Stephan Kulow 2008-06-11 06:29:42 UTC
if I fix that, it works just fine for me. 32bit firefox looks a bit uglier as it can't find my KDE theme as 32bit, but that's to be expected. The bug is WORKSFORME.

But #2 has a simpler test case, there might be something hidden.
Comment 20 Jiri Slaby 2008-06-11 06:47:23 UTC
Seems like fixed now.
Comment 21 Anders Johansson 2008-06-11 07:09:54 UTC
Re #16: I updated from DVD, which left glib2-3bit from 10.3 and did not install libglib-2_0-0-32bit
Comment 22 Jiri Slaby 2008-06-11 07:11:52 UTC
Then I think I hit the same problem. I had glib2-32bit until now too.
Comment 23 Stephan Kulow 2008-06-11 07:41:55 UTC
then provide your yast logs in a new bug report.
Comment 24 Rainer Klier 2008-06-23 07:43:38 UTC
(In reply to comment #21 from Anders Johansson)
> Re #16: I updated from DVD, which left glib2-3bit from 10.3 and did not install
> libglib-2_0-0-32bit

this was also the case for me.
this bug also hits me on exactly the same way!

after upgrading from 10.3 to 11.0 i had NO libglib-2_0-0-32bit!
but i had that old glib2-3bit.

after deleting glib2-3bit and installing libglib-2_0-0-32bit 32bit-gnome-applications are working again.

i think this is update-bug.
Comment 25 Rainer Klier 2008-06-24 10:20:29 UTC
(In reply to comment #23 from Stephan Kulow)
> then provide your yast logs in a new bug report.
> 

but where can yast logs be found?