[sisyphus] synaptic

Sviataslau Svirydau =?iso-8859-1?q?Sviataslau=5FSvirydau_=CE=C1_epam=2Ecom?=
Пн Янв 19 02:33:04 MSK 2004



Dmitry Plotnikov пишет:

>>>При старте synaptic видим следующее:
>>>(synaptic:3985): Gtk-CRITICAL **: file gtkwidget.c: line 1827
>>>(gtk_widget_hide): assertion `GTK_IS_WIDGET (widget)' failed
>>>
>>>После обновления apt (apt-0.5.5cnc4.1-alt7) synaptic при обновлении
>>>списка пакетов вылетает с Segmentation fault.
>>>Если надо могу прислать вывод strace.
>>>
>>>      
>>>
>>Попробуйте один раз выполнить apt-get update, далее обновление
>>списка пакетов в synaptic'е должно происходить без ошибок (баг
>>известен, но нет 
>>    
>>
>Не помогло.
>
>  
>
>>смысла его фиксить это для libapt-0.5.5 нет смысла и желания ;-)).
>>Есть вполне обоснованная надежда, что synaptic >= 0.47-alt2.1 не 
>>страдает этим (я пока не проверял).
>>    
>>
>Ну тады ждём.
>  
>
Похоже, мои надежды не оправдались :(

Ошибка всё ещё имеет место быть. Проявляется в libapt-pkg во время 
проверки отпечатка ключа для репозитория. Может выражаться в виде 
сегфолта или ошибки с сообщением о том, что метом вернул непонятный ответ.

Проблема в том, что в libapt-pkg при чтении vendors.list в pkgSourceList 
создаётся vector<Vendor const *> VendorList. Далее указатели из этого 
списка запоминаются также в списке репозиториев (см. 
apt-pkg/rpm/rpmindexfile.cc). При чтении sources.list (а в synaptic это 
может происходить несколько раз) таже перечитывается vendors.list, 
причём содержимое VendorsList предварительно чистится (но ссылки в 
списке репозиториев остаются!). Естественно, что после этого всякое 
можно ожидать от программы...

Приложенный патч вроде бы как исправляет поведение libapt-pkg в этом 
месте, но всё равно это dirty hack, исправлять надо бы глобально... А 
что касается затронутого участка кода, то в обоих случаях (с патчем и 
без) логика не совсем верна, как мне кажется. В одном случае 
возвращаемому репозиторию всегда устанавливается запрошенный Vendor, в 
другом случае - может вернуться репозиторий с другим Vendor'ом... и это 
было  правильно, если б не приводило к сегфолту, т.к. вроде бы 
теоретически возможно существование нескольких репозиториев с одним 
именем, но подписанных разными ключами.

Кстати об именах репозиториев. С точки зрения apt в sources.list 
Sisyphus у нас обзывается i586. Предлагаю сделать в следующих сборках апт:
subst 's,/Sisyphus \(i[56]86\), Sisyphus/\1,' /etc/sources.list
Это ни на чём не должно отразиться, только предоставит моральное 
удовлетворение :)

[ещё раз] кстати, неплохо было бы размазать sources.list по 
sources.list.d...

-- 
Regards,
Sviatoslav Sviridov <Sviataslau_Svirydau at epam.com>
/* icq: 10845380; jid: svd at altlinux.org; */
--
You will be attacked by a beast who has the body of a wolf, the tail of
a lion, and the face of Donald Duck.

----------- следующая часть -----------
An embedded and charset-unspecified text was scrubbed...
Name: apt-0.5.15cnc5-alt-findrepos.patch
URL: <http://lists.altlinux.org/pipermail/sisyphus/attachments/20040119/2ce27452/attachment-0002.ksh>


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