[devel] libcairo.so.2 sucks (Sisyphus-20060420 bad_elf_symbols)

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Апр 20 03:38:49 MSD 2006


On Thu, Apr 20, 2006 at 03:08:48AM +0400, QA Team Robot wrote:
> 	17 NEW bad_elf_symbols added to the list

> libcairomm	/usr/lib/libcairomm-1.0.so.0.0.5	U	cairo_glitz_surface_create
> libcairomm	/usr/lib/libcairomm-1.0.so.0.0.5	U	cairo_pdf_surface_create
> libcairomm	/usr/lib/libcairomm-1.0.so.0.0.5	U	cairo_pdf_surface_create_for_stream
> libcairomm	/usr/lib/libcairomm-1.0.so.0.0.5	U	cairo_pdf_surface_set_dpi
> libcairomm	/usr/lib/libcairomm-1.0.so.0.0.5	U	cairo_ps_surface_create
> libcairomm	/usr/lib/libcairomm-1.0.so.0.0.5	U	cairo_ps_surface_create_for_stream
> libcairomm	/usr/lib/libcairomm-1.0.so.0.0.5	U	cairo_ps_surface_set_dpi

$ hsh-install $TMPDIR/build libcairomm
Preparing packages for installation...
libexpat-2.0.0-alt3.1
libfreetype-2.1.10-alt3
fontconfig-2.3.2-alt7
Updating fonts cache: [ DONE ]
libXau-1.0.0-alt2.1
libXdmcp-1.0.0-alt2
libX11-1.0.0-alt5
libXrender-0.9.0.2-alt5
libpng3-1.2.8-alt3
libcairo-1.0.4-alt1
libstdc++3.4-3.4.5-alt2
libcairomm-0.5.0-alt0.1
$ hsh-shell $TMPDIR/build
$ ldd -r /usr/lib/libcairomm-1.0.so.0.0.5
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00125000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0016b000)
        libc.so.6 => /lib/libc.so.6 (0x0023d000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00356000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0x0035f000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00368000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00458000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x0047d000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x004ac000)
        libm.so.6 => /lib/libm.so.6 (0x00517000)
        /lib/ld-linux.so.2 (0x80000000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x0053a000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x0053d000)
        libdl.so.2 => /lib/libdl.so.2 (0x00542000)
        libz.so.1 => /lib/libz.so.1 (0x00547000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0x0055a000)
undefined symbol: cairo_ps_surface_create       (/usr/lib/libcairomm-1.0.so.0.0.5)
undefined symbol: cairo_pdf_surface_create      (/usr/lib/libcairomm-1.0.so.0.0.5)
undefined symbol: cairo_pdf_surface_set_dpi     (/usr/lib/libcairomm-1.0.so.0.0.5)
undefined symbol: cairo_ps_surface_create_for_stream    (/usr/lib/libcairomm-1.0.so.0.0.5)
undefined symbol: cairo_ps_surface_set_dpi      (/usr/lib/libcairomm-1.0.so.0.0.5)
undefined symbol: cairo_glitz_surface_create    (/usr/lib/libcairomm-1.0.so.0.0.5)
undefined symbol: cairo_pdf_surface_create_for_stream   (/usr/lib/libcairomm-1.0.so.0.0.5)
$

Ой!

$ hsh --no-stuff $TMPDIR/build libcairomm-0.5.0-alt0.1.src.rpm
...
Wrote: /usr/src/RPM/SRPMS/libcairomm-0.5.0-alt0.1.src.rpm
Wrote: /usr/src/RPM/RPMS/i686/libcairomm-0.5.0-alt0.1.i686.rpm
Wrote: /usr/src/RPM/RPMS/i686/libcairomm-devel-0.5.0-alt0.1.i686.rpm
Wrote: /usr/src/RPM/RPMS/i686/libcairomm-doc-0.5.0-alt0.1.i686.rpm
...

$ rpmelfsym $TMPDIR/build/repo/i686/RPMS.hasher/libcairomm-0.5.0-alt0.1.i686.rpm |grep cairo_glitz_surface_create
$ rpmelfsym ~sisyphus/files/i586/RPMS/libcairomm-0.5.0-alt0.1.i586.rpm |grep cairo_glitz_surface_create 
/usr/lib/libcairomm-1.0.so.0.0.5        U       cairo_glitz_surface_create
$ compare_packages -a --requires -- ~sisyphus/files/i586/RPMS/libcairomm-0.5.0-alt0.1.i586.rpm -- $TMPDIR/build/repo/i686/RPMS.hasher/libcairomm-0.5.0-alt0.1.i686.rpm
$

Ой-ой-ой!

Другими словами, библиотека, которая сейчас находится в сизифе,
неработоспособна.  Но после пересборки она "автоматически" становится
работоспособной, причем без изменения зависимостей.  Вот она вся
бинарная совместимость.  Т.е. нет никакой бинарной совместимости. :(

Радует в некотром смысле только одно: робот работает правильно.

> libgdiplus	/usr/lib/libgdiplus.so.0.0.0	U	cairo_ps_surface_create
> libgdiplus	/usr/lib/libgdiplus.so.0.0.0	U	cairo_ps_surface_set_dpi

То же самое.

> librsvg2-utils	/usr/bin/rsvg-convert	U	cairo_pdf_surface_create_for_stream
> librsvg2-utils	/usr/bin/rsvg-convert	U	cairo_ps_surface_create_for_stream

$ LD_BIND_NOW=1 /usr/bin/rsvg-convert
/usr/bin/rsvg-convert: symbol lookup error: /usr/bin/rsvg-convert: undefined symbol: cairo_ps_surface_create_for_stream
$

> python-module-pycairo	/usr/lib/python2.4/site-packages/cairo/_cairo.so	U	cairo_pdf_surface_create
> python-module-pycairo	/usr/lib/python2.4/site-packages/cairo/_cairo.so	U	cairo_pdf_surface_set_dpi
> python-module-pycairo	/usr/lib/python2.4/site-packages/cairo/_cairo.so	U	cairo_ps_surface_create
> python-module-pycairo	/usr/lib/python2.4/site-packages/cairo/_cairo.so	U	cairo_ps_surface_set_dpi

То же самое.

> swfdec-mozilla	/usr/bin/swfdec-mozilla-player	U	swfdec_render_seek

А это вообще странно.  Кажется этот пакет просто забыли удалить из
репозитария:

> swfdec - Flash animations redering library
> * Mon Mar 13 2006 Mikhail Zabaluev <mhz на altlinux> 0.3.6-alt1
> - Release 0.3.6
> - Renamed mozilla plugin package to mozilla-plugin-swfdec      
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060420/c1c999b3/attachment-0001.bin>


Подробная информация о списке рассылки Devel