On Mon, Jan 31, 2011 at 06:23:37PM +0300, Alexey Tourbin wrote: [...] > Я знаю всего несколько пакетов, где действительно требуется > специальный режим обрезания файлов: а именно, требуется сохранить .symtab. > Один из таких пакетов - glibc. Это делает вопрос насчет strip-макросов > актуальным, т.к. glibc ложится в основу иерархии debuginfo зависимостей. Попадаются ещё ELF'ы, которые предназначены для обработки нестандартными загрузчиками, в т.ч. и не в userspace. Вероятно, такие файлы лучше вообще не трогать. Видно, что сейчас в brp-debuginfo захардкодены исключения /usr/share и /lib/firmware. Я бы добавил туда ещё и /boot с /lib/modules. > Предлагаю реализовать всего один новый strip-макрос - сохранение .symtab > при обрезании - > %название-макроса шелл-глоб > Требуется придумать нвазвание макроса. > Название может включать "keep_symtab" или "strip_debug_only". strip_debug_only не вполне понятен, поскольку не очевидно, что есть debug only. Если смысл макроса в сохранении секции .symtab, то пусть лучше будет %debuginfo_strip_keep_symtab shell-glob-pattern > Актуальный вопрос №2: вид soname-зависимостей между debuginfo-пакетами. > > Сонейм-зависимости между основными пакетами имеют вид > /usr/lib/libfoo.so.1 -> libfoo.so.1 > /usr/lib64/libfoo.so.1 -> libfoo.so.1()(64bit) > > Для debuginfo пакетов будет создана иерархия зависимостей, похожая на > основную, на основе сонеймов. Требуется придумать вид зависимостей > для для сонеймов (ABI-интерфейсы использоваться не будут). Варианты могут > быть такие: > > /usr/lib/debug/usr/lib/libfoo.so.1 -> debug(libfoo.so.1) > /usr/lib/debug/usr/lib64/libfoo.so.1 -> debug64(libfoo.so.1) Такой вариант годится. > /usr/lib/debug/usr/lib/libfoo.so.1.debug -> libfoo.so.1.debug > /usr/lib/debug/usr/lib64/libfoo.so.1.debug -> libfoo.so.1.debug()(64bit) > > /usr/lib/debug/usr/lib/libfoo.so.1.debug -> D-libfoo.so.1 > /usr/lib/debug/usr/lib64/libfoo.so.1.debug -> D-libfoo.so.1()(64bit) Эти варианты не годятся, особенно первый из них, поскольку совпадают с возможными обычными зависимостями на soname. > Менее актуальные вопросы: > 1) Нужны ли другие strip-макросы. Видимо, нужно уметь отключать обработку отдельных файлов по причине "мейнтейнеру виднее", например, %debuginfo_skip_files shell-glob-pattern > 2) Стоит ли обрезать lib*.a архивы. До сих пор эти файлы не стрипались, но и -g до сих пор по умолчанию не было. Не очевидно. > 3) Реорганизация репозитория - стоит ли делать RPMS.debug. Число arch-пакетов практически удвоится -- как это скажется на индексах? -- ldv