Bug 22308

Summary: incomplete formal deps -- undefined symbol: fribidi_get_type
Product: Sisyphus Reporter: Ivan Zakharyaschev <imz>
Component: libfribidiAssignee: Yuri N. Sedunov <aris>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aris, damir, mike, rider
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on: 15079, 22309    
Bug Blocks:    

Description Ivan Zakharyaschev 2009-11-17 00:27:11 MSK
abiword-2.6.8-alt3

I have apt-get-installed abiword in a system with older libraries, and in reality, abiword uses symbols from newer versions of the libraries, but apt doesn't understand this because the "abiword" package lacks the corresponding formal dependencies:

$ abiword /mnt/usbmem1/zv.doc 
abiword: symbol lookup error: abiword: undefined symbol: fribidi_get_type
$ ldd -r /usr/bin/abiword 
	linux-gate.so.1 =>  (0xb800c000)
	libpangoxft-1.0.so.0 => /usr/lib/libpangoxft-1.0.so.0 (0xb7fda000)
	libXft.so.2 => /usr/lib/libXft.so.2 (0xb7fc8000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0xb7edf000)
	libglade-2.0.so.0 => /usr/lib/libglade-2.0.so.0 (0xb7ec8000)
	libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7a9d000)
	libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7963000)
	libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb78c3000)
	libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb78a9000)
	libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb788d000)
	libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7863000)
	libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7821000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb77a6000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb777c000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7740000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb773b000)
	libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xb7687000)
	libm.so.6 => /lib/libm.so.6 (0xb765f000)
	libgnomeprintui-2-2.so.0 => /usr/lib/libgnomeprintui-2-2.so.0 (0xb7620000)
	libgnomeprint-2-2.so.0 => /usr/lib/libgnomeprint-2-2.so.0 (0xb75b6000)
	libz.so.1 => /lib/libz.so.1 (0xb75a2000)
	libgnomeui-2.so.0 => /usr/lib/libgnomeui-2.so.0 (0xb7518000)
	libgnome-2.so.0 => /usr/lib/libgnome-2.so.0 (0xb7505000)
	libpopt.so.0 => /lib/libpopt.so.0 (0xb74fc000)
	libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb74f7000)
	libenchant.so.1 => /usr/lib/libenchant.so.1 (0xb74f0000)
	libfribidi.so.0 => /usr/lib/libfribidi.so.0 (0xb74e2000)
	libwv-1.2.so.3 => /usr/lib/libwv-1.2.so.3 (0xb7465000)
	libgsf-1.so.114 => /usr/lib/libgsf-1.so.114 (0xb7433000)
	libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb740d000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb731f000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7300000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xb72e7000)
	libc.so.6 => /lib/libc.so.6 (0xb7198000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb718e000)
	libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb718c000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7174000)
	libdl.so.2 => /lib/libdl.so.2 (0xb716e000)
	libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb7162000)
	libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb715c000)
	libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb70e3000)
	libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0xb704f000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0xb703f000)
	libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb703c000)
	libXi.so.6 => /usr/lib/libXi.so.6 (0xb7032000)
	libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb702a000)
	libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb7021000)
	libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xb701e000)
	libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb7019000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6ff9000)
	libpcre.so.3 => /lib/libpcre.so.3 (0xb6fca000)
	/lib/ld-linux.so.2 (0xb800d000)
	libgnomecanvas-2.so.0 => /usr/lib/libgnomecanvas-2.so.0 (0xb6f9c000)
	libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0xb6f84000)
	libbonoboui-2.so.0 => /usr/lib/libbonoboui-2.so.0 (0xb6f27000)
	libgnomevfs-2.so.0 => /usr/lib/libgnomevfs-2.so.0 (0xb6ecf000)
	libgconf-2.so.4 => /usr/lib/libgconf-2.so.4 (0xb6e9d000)
	libgnome-keyring.so.0 => /usr/lib/libgnome-keyring.so.0 (0xb6e8b000)
	libSM.so.6 => /usr/lib/libSM.so.6 (0xb6e82000)
	libICE.so.6 => /usr/lib/libICE.so.6 (0xb6e69000)
	libbonobo-2.so.0 => /usr/lib/libbonobo-2.so.0 (0xb6e0f000)
	libbonobo-activation.so.4 => /usr/lib/libbonobo-activation.so.4 (0xb6dfb000)
	librt.so.1 => /lib/librt.so.1 (0xb6df2000)
	libbz2.so.1 => /lib/libbz2.so.1 (0xb6de1000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0xb6ddc000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb6dd6000)
	libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xb6d93000)
	libglitz.so.1 => /usr/lib/libglitz.so.1 (0xb6d6b000)
	libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0xb6d66000)
	libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xb6d5e000)
	libresolv.so.2 => /lib/libresolv.so.2 (0xb6d48000)
	libgailutil.so.18 => /usr/lib/libgailutil.so.18 (0xb6d41000)
	libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0xb6cf2000)
	libdbus-glib-1.so.2 => /usr/lib/libdbus-glib-1.so.2 (0xb6cd6000)
	libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb6c9f000)
	libgnutls.so.13 => /usr/lib/libgnutls.so.13 (0xb6c26000)
	libgcrypt.so.11 => /usr/lib/libgcrypt.so.11 (0xb6baa000)
	libavahi-glib.so.1 => /usr/lib/libavahi-glib.so.1 (0xb6ba6000)
	libavahi-common.so.3 => /usr/lib/libavahi-common.so.3 (0xb6b99000)
	libavahi-client.so.3 => /usr/lib/libavahi-client.so.3 (0xb6b89000)
	libutil.so.1 => /lib/libutil.so.1 (0xb6b85000)
	libuuid.so.1 => /lib/libuuid.so.1 (0xb6b82000)
	libORBitCosNaming-2.so.0 => /usr/lib/libORBitCosNaming-2.so.0 (0xb6b7e000)
	libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0xb6b6d000)
	libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0xb6b69000)
undefined symbol: fribidi_get_type	(/usr/bin/abiword)
$ 

apt> showpkg libfribidi
Package: libfribidi
Versions: 
0.10.9-alt2(/var/lib/apt/lists/ftp.altlinux.org_pub_distributions_ALTLinux_p5_branch_i586_base_pkglist.classic)
0.10.4-alt3(/var/lib/rpm/Packages)

Reverse Depends: 
  fribidi,libfribidi 0.10.4-alt3
  libfribidi-devel,libfribidi 0.10.9-alt2
  fribidi,libfribidi 0.10.9-alt2
Dependencies: 
0.10.9-alt2 - libc.so.6(GLIBC_2.0) (0 (null)) libc.so.6(GLIBC_2.1.3) (0 (null)) libc.so.6(GLIBC_2.3.4) (0 (null)) rtld(GNU_HASH) (0 (null)) 
0.10.4-alt3 - /sbin/ldconfig (0 (null)) /sbin/ldconfig (0 (null)) libc.so.6 (0 (null)) libc.so.6(GLIBC_2.0) (0 (null)) libc.so.6(GLIBC_2.1.3) (0 (null)) libc.so.6(GLIBC_2.3) (0 (null)) 
Provides: 
0.10.9-alt2 - /usr/lib/libfribidi.so.0.0.0 libfribidi libfribidi.so.0 
0.10.4-alt3 - /usr/lib/libfribidi.so.0.0.0 libfribidi libfribidi.so.0 
Reverse Provides: 
libfribidi 0.10.4-alt3
libfribidi 0.10.9-alt2
apt> 

One way to solve this problem would be to versionize symbols in libfribidi and rebuild abiword.
Comment 1 Damir Shayhutdinov 2009-11-17 09:06:06 MSK
I don't see how this is abiword's problem. This is clearly a fribidi failure.
Comment 2 Anton Farygin 2009-11-17 09:40:23 MSK
fribidy на nobody, теперь и для 5.1
Comment 3 Michael Shigorin 2010-09-26 14:15:38 MSD
*** Bug 22309 has been marked as a duplicate of this bug. ***
Comment 4 Michael Shigorin 2010-09-26 14:18:09 MSD
Насколько понимаю, эквивалент будет сделан автоматически при следующей пересборке fribidi (с генерацией set provides).  Поскольку bug #22308 и так уже там, отмечаю его как дубль.