Bug 201586

Summary: broken dependencies causes a symbol lookup error
Product: [Fedora] Fedora Reporter: Linda Knippers <linda.knippers>
Component: pangoAssignee: Behdad Esfahbod <behdad>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: behdad, tagoh
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 1.14.0-3 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-08-17 19:26:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Linda Knippers 2006-08-07 16:37:02 UTC
Description of problem:

paps: symbol lookup error: /usr/lib64/libpango-1.0.so.0: undefined symbol:
g_type_register_static_simple

Version-Release number of selected component (if applicable):
paps-0.6.6-11.fc6
pango-1.13.5-1
pango-devel-1.13.5-1


How reproducible:

Steps to Reproduce:
1.Just run paps or texttops.
2.
3.
  
Actual results:
paps: symbol lookup error: /usr/lib64/libpango-1.0.so.0: undefined symbol:
g_type_register_static_simple


Expected results:


Additional info:

I'm trying to test some of the recent LSPP changes to the cups
package in rawhide.  

As a result of this problem, cups in rawhide can't print text files
without switching to use texttops.

Comment 1 Akira TAGOH 2006-08-08 04:34:04 UTC
works for me. have you installed the older glib on somewhere perhaps? please try:

$ which paps
$ ldd -r `which paps`

If all the libraries are placed at the usual libdirs. then try rpm -qf
--queryformat="%{name}-%{version}-%{release}.%{arch}\n" <libblahblah.so.x.y.z> then.

Comment 2 Linda Knippers 2006-08-08 14:31:06 UTC
I don't think I have an older glib somewhere but the system is a test
system so its been yum updated a number of times since its original
FC5 installation.  I don't think I've done anything unusual to it,
like moving libraries around though.  

Here's the info you requested. 

[root@cert-e2 filter]# which paps
/usr/bin/paps

[root@cert-e2 filter]# ldd -r `which paps`
        libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00002aaaaaabc000)
        libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00002aaaaacea000)
        libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x0000003bddc00000)
        libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x0000003bdde00000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003bdca00000)
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x0000003bdda00000)
        libcups.so.2 => /usr/lib64/libcups.so.2 (0x00002aaaaaf2c000)
        libz.so.1 => /usr/lib64/libz.so.1 (0x0000003bdd000000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aaaab162000)
        libm.so.6 => /lib64/libm.so.6 (0x00002aaaab37c000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003bde000000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003bdc600000)
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x0000003bde400000)
        libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x0000003bde600000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003728a00000)
        libgnutls.so.13 => /usr/lib64/libgnutls.so.13 (0x0000003bdd200000)
        libexpat.so.0 => /lib64/libexpat.so.0 (0x0000003bdfa00000)
        libgcrypt.so.11 => /usr/lib64/libgcrypt.so.11 (0x0000003bded00000)
        libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x0000003bdeb00000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003bde800000)
undefined symbol: g_type_register_static_simple (/usr/lib64/libpango-1.0.so.0)
undefined symbol: g_type_register_static_simple (/usr/lib64/libpangoft2-1.0.so.0)

[root@cert-e2 filter]# rpm -qf
--queryformat="%{name}-%{version}-%{release}.%{arch}\n" /usr/lib64/libpango-1.0.so.0
pango-1.13.5-1.x86_64
[root@cert-e2 filter]# rpm -qf
--queryformat="%{name}-%{version}-%{release}.%{arch}\n"
/usr/lib64/libpangoft2-1.0.so.0
pango-1.13.5-1.x86_64


Comment 3 Linda Knippers 2006-08-08 14:41:15 UTC
Hmm...I only provided the pango libraries.  Here are the rest (command line
omitted) in case you wanted them all.

/usr/lib64/libgobject-2.0.so.0   glib2-2.10.1-1.x86_64
/usr/lib64/libgmodule-2.0.so.0   glib2-2.10.1-1.x86_64
/lib64/libdl.so.2                glibc-2.4.90-17.x86_64
/usr/lib64/libglib-2.0.so.0      glib2-2.10.1-1.x86_64
/usr/lib64/libcups.so.2          cups-libs-1.2.2-7.x86_64
/usr/lib64/libz.so.1             zlib-1.2.3-1.2.1.x86_64
/lib64/libpthread.so.0           glibc-2.4.90-17.x86_64
/lib64/libm.so.6                 glibc-2.4.90-17.x86_64
/lib64/libcrypt.so.1             glibc-2.4.90-17.x86_64
/lib64/libc.so.6                 glibc-2.4.90-17.x86_64
/usr/lib64/libfreetype.so.6      freetype-2.1.10-5.2.1.x86_64
/usr/lib64/libfontconfig.so.1    fontconfig-2.3.94-1.x86_64
/lib64/ld-linux-x86-64.so.2      glibc-2.4.90-17.x86_64
/usr/lib64/libgnutls.so.13       gnutls-1.4.1-1.x86_64
/lib64/libexpat.so.0             expat-1.95.8-8.2.x86_64
/usr/lib64/libgcrypt.so.11       libgcrypt-1.2.2-1.2.1.x86_64
/usr/lib64/libgpg-error.so.0     libgpg-error-1.1-1.2.1.x86_64
/lib64/libnsl.so.1               glibc-2.4.90-17.x86_64


Comment 4 Akira TAGOH 2006-08-09 02:21:44 UTC
Thanks for the info. it looks like Pango's dependencies are broken.

# nm -D /usr/lib64/libpango-1.0.so.0 | grep g_type_register_static_simple
                 U g_type_register_static_simple
# rpm2cpio glib2-2.10.1-1.x86_64.rpm | cpio -i --make-directories
4394 blocks
]# nm -D usr/lib64/libgobject-2.0.so.0 | grep g_type_register
0000000000026a60 T g_type_register_dynamic
0000000000026bf0 T g_type_register_fundamental
00000000000271c0 T g_type_register_static
# rpm2cpio glib2-2.10.2-1.fc5.1.x86_64.rpm | cpio -i --make-directories
4549 blocks
# nm -D usr/lib64/libgobject-2.0.so.0 | grep g_type_register
0000000000026a60 T g_type_register_dynamic
0000000000026bf0 T g_type_register_fundamental
00000000000271c0 T g_type_register_static
# rpm2cpio glib2-2.10.3-1.x86_64.rpm | cpio -i --make-directories
4565 blocks
# nm -D usr/lib64/libgobject-2.0.so.0 | grep g_type_register
0000000000026af0 T g_type_register_dynamic
0000000000026c80 T g_type_register_fundamental
0000000000027250 T g_type_register_static
# rpm2cpio glib2-2.11.0-1.x86_64.rpm | cpio -i --make-directories
4506 blocks
# nm -D usr/lib64/libgobject-2.0.so.0 | grep g_type_register
0000000000027dd0 T g_type_register_dynamic
0000000000027f60 T g_type_register_fundamental
00000000000286b0 T g_type_register_static
0000000000028b40 T g_type_register_static_simple

So reassigning to pango.


Comment 5 Behdad Esfahbod 2006-08-09 04:21:11 UTC
This one's nasty.  It has nothing to do with pango.  Pango doesn't require glib
2.12, but what the error message is, is that the Pango rpm has been built
against glib 2.12.

I believe this is not a real bug in Fedora, as you seem to be installing Pango
from devel but have glib2 from FC4 era.   Anyway, reassigning to mclasen to decide.

Comment 6 Behdad Esfahbod 2006-08-09 05:13:27 UTC
CC myself.

Comment 7 Linda Knippers 2006-08-09 14:18:30 UTC
Actually, I have the glib from the my original FC5 installation.  I've
done yum updates since then.  



Comment 8 Akira TAGOH 2006-08-15 04:51:39 UTC
Well, it doesn't necessarily have nothing to do with pango, but it may depends
on who is responsible for this bug. I mean whether glib has to keep the
compatibilities for macros as well or not.
Apparently g_type_register_static_simple is used through G_DEFINE_TYPE macro
etc. and Pango uses it. since Pango can be built against either version of glib,
it sounds like a glib bug though, adding Requires: glib2 >= 2.11.0 for a
workaround would be helpful to avoid an upgrade issue IMHO.
If we can't deal with this issue on glib by FC6 GA, workaround is a must.

Comment 9 Matthias Clasen 2006-08-15 15:25:47 UTC
nothing to do here, really. Selectively installing FC6 rpms on an FC5 system is
not supported. In FC6, we have a new enough glib...

Comment 10 Linda Knippers 2006-08-15 15:30:55 UTC
I wasn't exactly selectively installing FC6 rpms on an FC5 system.
I did a yum update (yes, with the development repository enabled)
of cups, which pulled in a bunch of dependencies, and ended up with 
something that didn't quite work.

It does seem like there's a dependency that's missing.



Comment 11 Matthias Clasen 2006-08-15 15:33:34 UTC
Hmm, ok.

In this case it might be easiest to just add a glib 2.10 requirement to pango.

GTK+ already has such a requirement, so most pango-using apps should be fine, just
not the elite few which manage to use pango without gtk...

Comment 12 Behdad Esfahbod 2006-08-17 19:26:33 UTC
Ok, updated glib dep to 2.12 (not 2.10 which already was the case.)  Rebuilding.