[devel] автогенерация debug-пакетов в rpm

Andrey Rahmatullin wrar на altlinux.org
Сб Авг 7 09:36:23 UTC 2010


On Sat, Aug 07, 2010 at 06:29:08AM +0300, Kirill A. Shutemov wrote:
> Я попробовал перетащить наш rpm на более живой beecrypt.
> 
> Обновлённый beecrypt и патченый rpm (ветка beecrypt) лежит у меня в git.
> rpm притворяется, что работает. Нужно хорошенько его потестировать.
> Наверняка что-нибудь сломано.
> 
> Ещё я не уверен, правильно ли сделал переезд на новый soname libbeecrypt.
> Посмотрите, пожалуйста.
> 
> debuginfo теперь (с новым beecrypt) похож на рабочий. Потребовалось немного
> напильника. И, конечно, ещё понадобиться, но для proof of concept сойдёт.
> Смотрите ветку debuginfo у меня в git.
В /people/wrar/packages/hello.git в ветке debug лежит спек с добавленными
ровно двумя строчками:

%def_enable debug (чтоб собиралось с -g)
%debug_package (чтоб создавался дебаг-пакет)

Создался пакет hello-debug с таким содержимым:

drwxr-xr-x    2 root    root                0 Авг  7 15:24 /usr/lib/debug/.build-id
drwxr-xr-x    2 root    root                0 Авг  7 15:24 /usr/lib/debug/.build-id/36
lrwxrwxrwx    1 root    root               21 Авг  7 15:24 /usr/lib/debug/.build-id/36/515c96c9c09363cd0fbe9156e2926013a087bd -> ../../../../bin/hello
lrwxrwxrwx    1 root    root               25 Авг  7 15:24 /usr/lib/debug/.build-id/36/515c96c9c09363cd0fbe9156e2926013a087bd.debug -> ../../usr/bin/hello.debug
drwxr-xr-x    2 root    root                0 Авг  7 15:24 /usr/lib/debug/usr
drwxr-xr-x    2 root    root                0 Авг  7 15:24 /usr/lib/debug/usr/bin
-rwxr-xr-x    1 root    root            26780 Авг  7 15:24 /usr/lib/debug/usr/bin/hello.debug
drwxr-xr-x    2 root    root                0 Авг  7 15:24 /usr/src/debug/hello-2.4
drwxr-xr-x    2 root    root                0 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib
drwxr-xr-x    2 root    root                0 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib
-rw-r--r--    1 root    root             3050 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib/close-stream.c
-rw-r--r--    1 root    root             4522 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib/closeout.c
-rw-r--r--    1 root    root              856 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib/exitfail.c
-rw-r--r--    1 root    root              759 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib/exitfail.h
-rw-r--r--    1 root    root            22370 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib/quotearg.c
-rw-r--r--    1 root    root            11981 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib/quotearg.h
-rw-r--r--    1 root    root             1322 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib/xalloc-die.c
-rw-r--r--    1 root    root             8152 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib/xalloc.h
-rw-r--r--    1 root    root             3327 Авг  7 15:24 /usr/src/debug/hello-2.4/gnulib/lib/xmalloc.c
drwxr-xr-x    2 root    root                0 Авг  7 15:24 /usr/src/debug/hello-2.4/src
-rw-r--r--    1 root    root             5774 Авг  7 15:24 /usr/src/debug/hello-2.4/src/hello.c

У него, кстати, нет зависимостей ни на что, включая главный пакет.

В hello/src/hello.c внесено изменение специального вида, позволяющее
протестировать нужность пакета hello-debug. Сначала этот пакет не
установлен:

Reading symbols from /usr/bin/hello...(no debugging symbols found)...done.
(gdb) r
Starting program: /usr/bin/hello 

Program received signal SIGSEGV, Segmentation fault.
0x08048bba in exit ()
(gdb) bt
#0  0x08048bba in exit ()
#1  0x0804a4f3 in ?? ()
#2  0x4ef47c66 in __libc_start_main () from /lib/libc.so.6
#3  0x08048ac1 in exit ()

Теперь установлен:

Reading symbols from /usr/bin/hello...Reading symbols from
/usr/lib/debug/usr/bin/hello.debug...done.
done.
(gdb) r
Starting program: /usr/bin/hello 

Program received signal SIGSEGV, Segmentation fault.
0x08048bba in main (argc=1, argv=0xbfffefd4) at hello.c:63
63        *((char*)0) = 0;
(gdb) bt
#0  0x08048bba in main (argc=1, argv=0xbfffefd4) at hello.c:63


-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(6):

> >"Что было бы, если бы ALT Linux Team производила самолеты?" :-)
> А Вы не пользуйтесь Сизифом ;)
"Да нет, ничего, мы привыкли" (TM). Просто, гхм, слегка оторопь берет,
когда таким вот способом из биплана в полете делают дирижабль: вначале
отламывают крылья, а уж потом начинают искать баллоны с гелием :-)
		-- morozov in sisyphus@
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20100807/a2c3a9dc/attachment.bin>


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