Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 493120

Summary: www-client/chromium is broken after gnome-3.8 update
Product: Gentoo Linux Reporter: Agostino Sarubbo <ago>
Component: Current packagesAssignee: Chromium Project <chromium>
Status: RESOLVED CANTFIX    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=472416
Whiteboard:
Package list:
Runtime testing required: ---

Description Agostino Sarubbo gentoo-dev 2013-12-02 10:38:09 UTC
ago@stonebridge ~ $ chromium
chromium-browser: symbol lookup error: chromium-browser: undefined symbol: hb_icu_get_unicode_funcs
Comment 1 Mike Gilbert gentoo-dev 2013-12-02 15:56:39 UTC
What version of chromium?

Is /usr/lib64/chromium-browser/chrome linked with libharfbuzz-icu.so.0?
Comment 2 Agostino Sarubbo gentoo-dev 2013-12-02 17:14:05 UTC
(In reply to Mike Gilbert from comment #1)
> What version of chromium?
latest stable.
 
> Is /usr/lib64/chromium-browser/chrome linked with libharfbuzz-icu.so.0?

I don't know, since I need a functionally chrome I recompiled it.

I pointed out the bug because revdep-rebuild does not catch it.
Comment 3 Mike Gilbert gentoo-dev 2013-12-02 17:21:07 UTC
Ok, well there is nothing we can really look into without additional information about the system. If you have already rebuilt chromium and have no backup copy, then there is nothing we can do at all.
Comment 4 Agostino Sarubbo gentoo-dev 2013-12-02 20:43:09 UTC
On broken system, chrome is not linked with libharfbuzz-icu.so.0, is linked with libharfbuzz.so.0 and revdep-rebuild does not complain about. (I'm using --ignore-built-slot-operator-deps y)

ldd on chrome on broken system, requested by Pawel:

ldd /usr/lib64/chromium-browser/chrome
        linux-vdso.so.1 (0x00007fff31d11000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007fd6d018f000)
        libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007fd6cff85000)
        libXss.so.1 => /usr/lib64/libXss.so.1 (0x00007fd6cfd81000)
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007fd6cfb6f000)
        librt.so.1 => /lib64/librt.so.1 (0x00007fd6cf967000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fd6cf763000)
        libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007fd6cf513000)
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007fd6cf1ed000)
        libXtst.so.6 => /usr/lib64/libXtst.so.6 (0x00007fd6cefe7000)
        libgtk-x11-2.0.so.0 => /usr/lib64/libgtk-x11-2.0.so.0 (0x00007fd6ce9b9000)
        libgdk-x11-2.0.so.0 => /usr/lib64/libgdk-x11-2.0.so.0 (0x00007fd6ce707000)
        libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00007fd6ce4fa000)
        libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x00007fd6ce2d7000)
        libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00007fd6cdfd4000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00007fd6cddb5000)
        libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 (0x00007fd6cda5b000)
        libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00007fd6cd810000)
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007fd6cd572000)
        libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007fd6cd337000)
        libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007fd6cd127000)
        libevent-2.0.so.5 => /usr/lib64/libevent-2.0.so.5 (0x00007fd6ccee0000)
        libplc4.so => /usr/lib64/libplc4.so (0x00007fd6cccdb000)
        libnspr4.so => /usr/lib64/libnspr4.so (0x00007fd6cca9d000)
        libsmime3.so => /usr/lib64/libsmime3.so (0x00007fd6cc870000)
        libnss3.so => /usr/lib64/libnss3.so (0x00007fd6cc534000)
        libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007fd6cc309000)
        libicui18n.so.51 => /usr/lib64/libicui18n.so.51 (0x00007fd6cbf09000)
        libicuuc.so.51 => /usr/lib64/libicuuc.so.51 (0x00007fd6cbb96000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fd6cb980000)
        libprotobuf.so.7 => /usr/lib64/libprotobuf.so.7 (0x00007fd6cb686000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd6cb46a000)
        libpng15.so.15 => /usr/lib64/libpng15.so.15 (0x00007fd6cb240000)
        libjpeg.so.8 => /usr/lib64/libjpeg.so.8 (0x00007fd6cafeb000)
        libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007fd6cade5000)
        libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007fd6cabe2000)
        libre2.so.0 => /usr/lib64/libre2.so.0 (0x00007fd6ca984000)
        libpci.so.3 => /usr/lib64/libpci.so.3 (0x00007fd6ca778000)
        libasound.so.2 => /usr/lib64/libasound.so.2 (0x00007fd6ca499000)
        libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007fd6ca296000)
        libopus.so.0 => /usr/lib64/libopus.so.0 (0x00007fd6ca057000)
        libsnappy.so.1 => /usr/lib64/libsnappy.so.1 (0x00007fd6c9e51000)
        libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fd6c9af0000)
        libxslt.so.1 => /usr/lib64/libxslt.so.1 (0x00007fd6c98b6000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fd6c95be000)
        libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007fd6c9363000)
        libminizip.so.1 => /usr/lib64/libminizip.so.1 (0x00007fd6c9157000)
        libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007fd6c8f2e000)
        libspeechd.so.2 => /usr/lib64/libspeechd.so.2 (0x00007fd6c8d25000)
        libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 (0x00007fd6c8ae8000)
        libudev.so.1 => /lib64/libudev.so.1 (0x00007fd6c88d6000)
        libFLAC.so.8 => /usr/lib64/libFLAC.so.8 (0x00007fd6c86a0000)
        libspeex.so.1 => /usr/lib64/libspeex.so.1 (0x00007fd6c8487000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/libstdc++.so.6 (0x00007fd6c8180000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/libgcc_s.so.1 (0x00007fd6c7f6a000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fd6c7bc6000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007fd6c79a7000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fd6d04c8000)
        libffi.so.6 => /usr/lib64/libffi.so.6 (0x00007fd6c779f000)
        libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007fd6c759b000)
        libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00007fd6c736f000)
        libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007fd6c7165000)
        libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007fd6c6f5a000)
        libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00007fd6c6cc0000)
        libEGL.so.1 => /usr/lib64/libEGL.so.1 (0x00007fd6c6aa2000)
        libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007fd6c6844000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fd6c662d000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fd6c641d000)
        libplds4.so => /usr/lib64/libplds4.so (0x00007fd6c6219000)
        libicudata.so.51 => /usr/lib64/libicudata.so.51 (0x00007fd6c4acd000)
        libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007fd6c48b0000)
        libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007fd6c46a6000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007fd6c44a2000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007fd6c429c000)
        libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007fd6c409a000)
        libxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0 (0x00007fd6c3e95000)
        libxcb-xfixes.so.0 => /usr/lib64/libxcb-xfixes.so.0 (0x00007fd6c3c8e000)
        libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007fd6c3a82000)
        libglapi.so.0 => /usr/lib64/libglapi.so.0 (0x00007fd6c385c000)
        libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 (0x00007fd6c3644000)
        libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007fd6c343e000)


ldd /usr/lib64/libharfbuzz.so.0
        linux-vdso.so.1 (0x00007fff999ff000)                                                                                                                                        
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f6e5441c000)                                                                                                        
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f6e5417e000)                                                                                                        
        libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007f6e53f60000)                                                                                                      
        libc.so.6 => /lib64/libc.so.6 (0x00007f6e53bbc000)                                                                                                                          
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6e539a0000)                                                                                                              
        librt.so.1 => /lib64/librt.so.1 (0x00007f6e53797000)                                                                                                                        
        libz.so.1 => /lib64/libz.so.1 (0x00007f6e53581000)                                                                                                                          
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f6e53371000)                                                                                                                      
        /lib64/ld-linux-x86-64.so.2 (0x00007f6e549b6000)
Comment 5 Mike Gilbert gentoo-dev 2013-12-02 21:16:40 UTC
Ok, so I'm guessing this probably broke when you upgraded from harfbuzz-0.9.12 to harfbuzz-0.9.23. The symbols you are missing got moved between libraries starting with harfbuzz-0.9.18; see bug 472416.

harfbuzz should have undergone an SONAME change at that point, but the upstream failed to do so.

The lack of an SONAME change means that revdep-rebuild will not detect the breakage.

The harfbuzz ebuild has a subslot change, so chromium would be automatically rebuilt for most users; ignoring the slot-operator deps means that this doest not happen on your system.

In summary: revdep-rebuild is working as expected; the failure here is by the harfbuzz developers upstream.

I think this is a CANTFIX for us.
Comment 6 Paweł Hajdan, Jr. (RETIRED) gentoo-dev 2013-12-03 19:33:00 UTC
(In reply to Mike Gilbert from comment #5)
> I think this is a CANTFIX for us.

Agreed. Using --ignore-built-slot-operator-deps y has its drawbacks. :-/

By the way, feel free to file a separate bug for revdep-rebuild not detecting this. With more thorough checks (probably beyond ldd, but also checking symbols) it should catch this.