Bug 12054

Summary: Исключена сборка пакета libgd2-devel-static
Product: Sisyphus Reporter: Roman Savochenko <rom_as>
Component: libgd2-develAssignee: Dmitry V. Levin <ldv>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: at, crux
Version: unstable   
Hardware: all   
OS: Linux   

Description Roman Savochenko 2007-06-17 18:38:24 MSD
Если Sisyphus и продукты на основе него не позиционируются как платформа 
для сборки сторонних приложений, то так и скажите и мы множество 
последующих вопросов закроем.
Comment 1 at@altlinux.org 2007-06-18 04:32:23 MSD
Как статические библиотеки связаны с возможностью сборки сторонних приложений?
Вы чего-то недоговариваете.
Comment 2 at@altlinux.org 2007-06-18 04:40:34 MSD
Кстати, в этом пакете предусмотрена условная запаковка devel-static.
Так что если кажется, что это поможет, то можно пересобрать это пакет
rpm --rebuild --enable static gd2-2.0.34-alt3.src.rpm
Comment 3 Roman Savochenko 2007-06-18 09:42:54 MSD
(In reply to comment #1)
> Как статические библиотеки связаны с возможностью сборки сторонних 
приложений?
> Вы чего-то недоговариваете.
Вопрос в общем-то политический, однако с тенью практического неудобства 
с моей стороны.
Ну надо собрать с gd2 без зависимости на X, как прикажете это сделать?
Про пересобрать пакет gd2 с включением статической библиотекой я знаю. И 
именно так сделал, но знаете-ли в других дистрах я такой нужды не 
ощущал.

Comment 4 Dmitry V. Levin 2007-06-18 11:11:29 MSD
В пакете libgd2-2.0.34-alt2 нет зависимости на X.

Линковка со статическими библиотеками есть особое средство, которое редко
востребовано в реальной жизни.

Я согласен включить _по_умолчанию_ сборку libgd2-devel-static только в том
случае, если вы сможете продемонстрировать потребность в _этой_ статической
библиотеке.
Comment 5 Roman Savochenko 2007-06-18 12:28:39 MSD
Сильно сомневаюсь, что libgd2 даже установится на систему без иксов или 
её библиотеки (libX11.so.6) с такой родословной, не то что-бы 
запуститься.
[roman@roman lib]$ ldd libgd.so.2.0.34
        linux-gate.so.1 =>  (0xffffe000)
        libXpm.so.4 => /usr/lib/libXpm.so.4 (0xa7e8e000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xa7e6f000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xa7e3f000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xa7dc5000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xa7da1000)
        libz.so.1 => /lib/libz.so.1 (0xa7d8d000)
        libm.so.6 => /lib/libm.so.6 (0xa7d67000)
        libc.so.6 => /lib/libc.so.6 (0xa7c41000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xa7b53000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xa7b33000)
        /lib/ld-linux.so.2 (0x75555000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xa7b2f000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xa7b2a000)
        libdl.so.2 => /lib/libdl.so.2 (0xa7b26000)
Comment 6 Dmitry V. Levin 2007-06-18 14:46:24 MSD
$ readelf -d /usr/lib/libgd.so.2.0.34 |fgrep NEEDED
 0x00000001 (NEEDED)                     Shared library: [libXpm.so.4]
 0x00000001 (NEEDED)                     Shared library: [libjpeg.so.62]
 0x00000001 (NEEDED)                     Shared library: [libfontconfig.so.1]
 0x00000001 (NEEDED)                     Shared library: [libfreetype.so.6]
 0x00000001 (NEEDED)                     Shared library: [libpng12.so.0]
 0x00000001 (NEEDED)                     Shared library: [libz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
Comment 7 Roman Savochenko 2007-06-18 16:10:49 MSD
Интересно, а откуда тогда ldd берёт такую информацию?
Про различие между ldd и readelf не знал. Спасибо за ликбез. :)
Comment 8 Dmitry V. Levin 2007-06-18 16:19:32 MSD
ldd показывает список всех библиотек, которые загружаются, в т.ч. библиотеки, от
которых зависят библиотеки, от которых зависят библиотеки, ..., от которых
зависит целевой файл.
Comment 9 Roman Savochenko 2007-06-18 16:41:12 MSD
Тогда это проблемы не решает. Всёравно зависимость на libX11 вытянется. 
Кроме того, у меня указанная команда говорит:
[root@server lib]# readelf -d libgd.so.2.0.4 | fgrep NEEDED
 0x00000001 (NEEDED)                     Shared library: [libpng12.so.0]
 0x00000001 (NEEDED)                     Shared library: [libjpeg.so.62]
 0x00000001 (NEEDED)                     Shared library: [libfreetype.so.6]
 0x00000001 (NEEDED)                     Shared library: [libXpm.so.4]
 0x00000001 (NEEDED)                     Shared library: [libX11.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
Comment 10 Dmitry V. Levin 2007-06-18 16:50:04 MSD
У меня
$ rpmquery libgd2
libgd2-2.0.34-alt3
А у вас?

В конечном итоге я не понял, чем вас смущает libX11.so.6?
Comment 11 Roman Savochenko 2007-06-18 16:54:15 MSD
Извиняюсь. Не ту версию распечатал. Но это не имеет значения ибо через 
ibXpm.so.4 иксы потянутся однозначно:
[root@roman lib]# readelf -d libXpm.so.4 | fgrep NEEDED
 0x00000001 (NEEDED)                     Shared library: [libX11.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
Comment 12 Roman Savochenko 2007-06-18 16:56:34 MSD
Ну для встраиваемых систем с ограниченными ресурсами X будут явно 
лишними. Без иксов мне удавалось вложиться в 50Мб, без сжатия.
Comment 13 Dmitry V. Levin 2007-06-18 17:04:03 MSD
При сборке встраиваемой библиотеки желательно просто отключить поддержку
ненужного вам функционала, например, XPM.

Кстати, при линковке с libgd.a в ваше приложение попадают части libX11?
Comment 14 Roman Savochenko 2007-06-18 17:16:54 MSD
(In reply to comment #13)
> При сборке встраиваемой библиотеки желательно просто отключить 
поддержку
> ненужного вам функционала, например, XPM.
Тоже вариант. Хотя до этого момента казалось проще указанную библиотеку 
слинковать статически.
 
> Кстати, при линковке с libgd.a в ваше приложение попадают части libX11?
Нет. Я умышленно не использовал TrueType шрифты.

Comment 15 Roman Savochenko 2007-09-21 17:07:47 MSD
Кстати да. В Дебиане, с этой целью, доступен пакет libgd2-noxpm.