Author | Topic |
|
Posted: 11.03.10 13:03. Post subject: Зависимости между компонентами в librcc
Помогите, пожалуйста, разобраться с зависимостями между компонентами при сборке пакетов librcc. GTK GUI я не собираю. Поэтому, на данный момент, имеется два пакета: librcc0 и librcc-devel. Согласно политики упаковки разделяемых библиотек http://en.opensuse.org/Packaging/Shared_Library_Packaging_Policy в librcc0 можно включить только %{_libdir}/librcc.so.* и %{_libdir}/librccui.so.* %{_libdir}/rcc с содержимым и документация не должны находиться в этом пакете. Я делаю отдельный пакет, например rcc-engines. Туда отправляются %{_libdir}/rcc, %{_sysconfdir}/rcc.xml и файлы документации за исключением каталога examples. В librcc-devel упаковываются заголовочные файлы, ссылки на библиотеки и каталог examples. Правильно ли такое решение с точки зрения функционала? Будет ли работать librcc.so.0 без пакета с engines и конфигурационного файла? И нужна ли librcc.so.0 для engines?
|
|
|
Replys - 10
[new only]
|
|
|
| administrator
|
|
|
Posted: 11.03.10 16:00. Post subject: rcc-engines - это до..
rcc-engines - это дополнительные движки авто-определения. Без них не будет авто-определение работать, но библиотека будет запускаться и использовать кодировку по умолчанию, а это может приводить к неправильной перекодировке. Впрочем, Enca и LibRCD можно вкомпилировать прямо внутрь, но скажем western, который определяет ISO8859-1 или UTF-8, - нет. Кроме engines там, кстати, еще есть rcc-external в /usr/bin, который тоже нужен библиотеке. Используется модулем перевода (тут штука хитрая: libtranslate который переводит юзает glib2; xmms, для которого все изначально и делалось - glib1; а если слинковать вместе в одном процессе glib1 и glib2, то все падает, - поэтому мне пришлось выносить код работающий с libtranslate в отдельный процесс). При отсутсвии думаю будет ругаться, но падать не будет, но надо проверять. Резюмируя: rcc-engines и rcc-external являются неотъемлимой частью библиотеки и она особого смысла без них не имеет. Но, если требование не включать ничего кроме /usr/lib/lib* невозможно обойти, то в принципе можно завернуть и одну библиотеку, но стоит хотя бы выпатчить английский язык из дефолтового конфига в src/rccconfig.c
|
|
|
|
Posted: 11.03.10 16:25. Post subject: Всё понял. Я соберу ..
Всё понял. Я соберу rcc-engines и rcc-external (я его как-то упустил) отдельным пакетом rcc-runtime и пропишу жёстко в зависимости к librcc.
|
|
|
|
Posted: 11.03.10 16:48. Post subject: Что-то я не вижу rcc..
Что-то я не вижу rcc-external. При какой конфигурации он должен компилироваться? Сейчас у меня выглядит так: Configuration: POSIX Threading Support: yes External IConv Library: no LibCharset Library: no Dynamic Engine Loading Support: yes Enca Charset Detection Support: dynamic LibRCD Charset Detection Support: yes LibGUESS Charset Detection Support: no Multilanguage support with DB4: no Language autodetection using aspell: yes Libtranslate support: no Libtranslate Timed Translate: no User Interfaces: GTK User Interface: no GTK2 User Interface: no Directories: RCC Data Directory: /usr/lib/rcc/ Ещё такое предупреждение rpmlint: I: A function overflows or underflows an array access. This could be a real error, but occasionaly this condition is also misdetected due to loop unrolling or strange pointer handling. So this is warning only, please review. W: librcc0 arraysubscript rccstring.c:67
|
|
|
|
Posted: 11.03.10 17:26. Post subject: Ключи конфигурации: ..
Ключи конфигурации: %{configure} \ --disable-static \ --disable-bdb \ --disable-libtranslate \ --disable-gtk2
|
|
|
|
| administrator
|
|
|
Posted: 11.03.10 20:50. Post subject: 0. Да такое решение ..
0. Да такое решение видится мне оптимальным. 1. Сори попутал, rcc-external тоже кладется в '/usr/lib/rcc/' 2. В настоящий момент rcc-external используется только для модуля перевода. Т.е. если вырубать libtranslate, то rcc-external не нужен.
|
|
|
|
Posted: 11.03.10 21:39. Post subject: При сборке в Factory..
При сборке в Factory (GCC 4.5) вот такие ошибки: I: A function overflows or underflows an array access. This could be a real error, but occasionaly this condition is also misdetected due to loop unrolling or strange pointer handling. So this is warning only, please review. W: librcc0 arraysubscript rccstring.c:67 I: Program causes undefined operation (likely same variable used twiceand post/pre incremented in the same expression). e.g. x = x++; Split it in two operations. W: librcc0 sequence-point librcc.c:404, 511 Меня это очень беспокоит. Хотелось бы получить безукоризненный пакет.
|
|
|
|
| administrator
|
|
|
Posted: 11.03.10 21:48. Post subject: Какой хороший в SuSE..
|
|
|
|
Posted: 11.03.10 23:13. Post subject: Второе предупреждени..
Второе предупреждение пока осталось, в 511 строке.
|
|
|
|
| administrator
|
|
|
Posted: 11.03.10 23:19. Post subject: Извиняюсь, не замети..
Извиняюсь, не заметил вторую строчку. Поправил патч, лежит там-же.
|
|
|
|
Posted: 11.03.10 23:44. Post subject: Большое спасибо. Теп..
Большое спасибо. Теперь всё замечательно.
|
|
|
|