Если Sisyphus и продукты на основе него не позиционируются как платформа для сборки сторонних приложений, то так и скажите и мы множество последующих вопросов закроем.
Как статические библиотеки связаны с возможностью сборки сторонних приложений? Вы чего-то недоговариваете.
Кстати, в этом пакете предусмотрена условная запаковка devel-static. Так что если кажется, что это поможет, то можно пересобрать это пакет rpm --rebuild --enable static gd2-2.0.34-alt3.src.rpm
(In reply to comment #1) > Как статические библиотеки связаны с возможностью сборки сторонних приложений? > Вы чего-то недоговариваете. Вопрос в общем-то политический, однако с тенью практического неудобства с моей стороны. Ну надо собрать с gd2 без зависимости на X, как прикажете это сделать? Про пересобрать пакет gd2 с включением статической библиотекой я знаю. И именно так сделал, но знаете-ли в других дистрах я такой нужды не ощущал.
В пакете libgd2-2.0.34-alt2 нет зависимости на X. Линковка со статическими библиотеками есть особое средство, которое редко востребовано в реальной жизни. Я согласен включить _по_умолчанию_ сборку libgd2-devel-static только в том случае, если вы сможете продемонстрировать потребность в _этой_ статической библиотеке.
Сильно сомневаюсь, что 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)
$ 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]
Интересно, а откуда тогда ldd берёт такую информацию? Про различие между ldd и readelf не знал. Спасибо за ликбез. :)
ldd показывает список всех библиотек, которые загружаются, в т.ч. библиотеки, от которых зависят библиотеки, от которых зависят библиотеки, ..., от которых зависит целевой файл.
Тогда это проблемы не решает. Всёравно зависимость на 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]
У меня $ rpmquery libgd2 libgd2-2.0.34-alt3 А у вас? В конечном итоге я не понял, чем вас смущает libX11.so.6?
Извиняюсь. Не ту версию распечатал. Но это не имеет значения ибо через 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]
Ну для встраиваемых систем с ограниченными ресурсами X будут явно лишними. Без иксов мне удавалось вложиться в 50Мб, без сжатия.
При сборке встраиваемой библиотеки желательно просто отключить поддержку ненужного вам функционала, например, XPM. Кстати, при линковке с libgd.a в ваше приложение попадают части libX11?
(In reply to comment #13) > При сборке встраиваемой библиотеки желательно просто отключить поддержку > ненужного вам функционала, например, XPM. Тоже вариант. Хотя до этого момента казалось проще указанную библиотеку слинковать статически. > Кстати, при линковке с libgd.a в ваше приложение попадают части libX11? Нет. Я умышленно не использовал TrueType шрифты.
Кстати да. В Дебиане, с этой целью, доступен пакет libgd2-noxpm.