[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libpango update broke iceape synaptic and more



Steve Kemp wrote:
On Tue Sep 04, 2007 at 11:54:23 -0500, Don wrote:

I am using "sid" and yesterday my update/upgrade broke iceape, synaptic, and some others. I've had problems with libpango before, but this one has me stumped. I don't see anyone else having this problem, so I must conclude something is wrong with my installation.

  I see it too, on my AMD64 system:

skx@vain:~$ firefox /usr/lib/iceweasel/firefox-bin: symbol lookup error: /usr/lib/libpangoft2-1.0.so.0: undefined symbol: g_once_init_enter_impl

  Interestingly the symbol is defined:

  skx@vain:~$ nm -D /usr/lib/libpangoft2-1.0.so.0 |grep g_once_
                   U g_once_init_enter_impl
                   U g_once_init_leave

  I ran firefox under strace and I can see the system load and open
 the correct .so so I'm a little stumped too.

  I can't see any open bug reports, so I'd suggest you submit one.
 FWIW I fetched the source and rebuilt it locally, but the problem
 persists..

Steve
--


>  Thanks for the hint.  I've now "solved" the problem.
>
>   Running ldd against the named library I see this:
>
>           libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00002ac8b5c58000)
>
>   That is *incorrect*,  I have the /lib/libglib* file upon my system
> and no idea where it came from! The correct files are located in /usr/lib/ - archiving /lib/libglib* made the problem go away.
>

> Steve
> --

Nice find Steve, but I have not quite the exact same problem. Even though I'm fairly Deb-Linux savvy, I'm lost in this area. I did, however do some looking and ran the nm and ldd. nm came up with same undefined. ldd came up with following (much edited out):

kali:~# ldd -v /usr/lib/libpangocairo-1.0.so.0
   libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0xb7e7c000)

kali:~# ldd -v /usr/lib/libpangoft2-1.0.so.0
   libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0xb7da4000)

Hmmm ... the "/usr/local" looks strange to me compared to what you found and where you said it should be. Not knowing any better, I used "updatedb" and then "locate libglib" and got the following (edited):

/opt/gtk/lib/libglib-2.0.la
/opt/gtk/lib/libglib-2.0.so
/opt/gtk/lib/libglib-2.0.so.0
/opt/gtk/lib/libglib-2.0.so.0.1200.2
/usr/lib/libglib-1.2.so.0
/usr/lib/libglib-1.2.so.0.0.10
/usr/lib/libglib-2.0.a
/usr/lib/libglib-2.0.la
/usr/lib/libglib-2.0.so
/usr/lib/libglib-2.0.so.0
/usr/lib/libglib-2.0.so.0.1400.0
/usr/local/lib/libglib-2.0.la
/usr/local/lib/libglib-2.0.so
/usr/local/lib/libglib-2.0.so.0
/usr/local/lib/libglib-2.0.so.0.1200.2

I see (I think) that it is apparently pointing to the /usr/local/lib copy which is version 1200.2 instead of the /usr/lib copy which has version 1400.0 Am I correct in this thinking?

If this is the problem, how do I fix it? (I know I could copy the later version from /usr/lib into /usr/local/lib but that seems a very klugey and unwise fix.)

Anyone else feel free to jump in here - I miss my computer and hate the one I'm using, forgive me if this message did not thread properly. And if anyone wants to try educating me on why the "local" is needed, I'm listening.

Thanks,
Don



Reply to: