Bug 7575

Summary: Ошибка в post скриптах
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: libgphoto2Assignee: Vyacheslav Dikonov <slava>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P5 CC: jinn
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 7079    

Description Anton Farygin 2005-08-05 13:05:45 MSD
При установке пакета libgphoto2:

libgphoto2                            
####################################################################################################
/usr/lib/libgphoto2/print-usb-usermap: error while loading shared libraries:
libgphoto2.so.2: cannot open shared object file: No such file or directory
error: execution of %post scriptlet from libgphoto2-2.1.5-alt1.1 failed, exit
status 127

Судя по всему print-usb-usermap использует библиотеку из этого же пакета.
Соответственно надо сначала сделать ldconfig, потом уже запускать print-usb-usermap.

Да, выставлена переменная DURING_INSTALL
Comment 1 Anton Farygin 2005-08-23 19:04:47 MSD
Какой статус у этой ошибки ? когда ждать исправления ?
Comment 2 Vyacheslav Dikonov 2005-08-25 09:32:26 MSD
Не подтверждаю багу у себя (Сизиф мартовский)

В секции %post пакета gphoto2-2.25-alt1 сначала идет макрос %post_ldconfig, а
затем запуск print-usb-usermap. Таким образом ldconfig делается. Может это
макрос перестал выполняться? 


%post -n lib%name
%post_ldconfig
# create /etc/hotplug/usb/usbcam.usermap
%_libdir/lib%name/print-usb-usermap > %_sysconfdir/hotplug/usb/usbcam.usermap

%postun -n lib%name
%postun_ldconfig
# remove /etc/hotplug/usb/usbcam.usermap
# if erasing the package not as part of a package update
if [ "$1" = 0 ]; then
    %__rm -f %_sysconfdir/hotplug/usb/usbcam.usermap
fi
Comment 3 Anton Farygin 2005-08-25 12:30:35 MSD
%postun_ldconfig никогда не выполняется, если выставлена переменная DURING_INSTALL

Для того, что бы это обойти - делается скрипт в /etc/firsttime.d, который
запускается после установки системы инсталятором.

Скрипт фактически должен содержать все то, что есть в %post, за исключением ldconifg

И естественно %_libdir/lib%name/print-usb-usermap >
%_sysconfdir/hotplug/usb/usbcam.usermap должно выполняться только в том случае,
если не выставлена переменная DURING_INSTALL
Comment 4 Vyacheslav Dikonov 2005-08-25 12:42:52 MSD
Не помню как точно пишется
if $DURING_INSTALL then 
echo -n "%_libdir/lib%name/print-usb-usermap >
%_sysconfdir/hotplug/usb/usbcam.usermap" > /etc/firsttime.d/gphoto2.sh

else %_libdir/lib%name/print-usb-usermap > %_sysconfdir/hotplug/usb/usbcam.usermap
?
Comment 5 Anton Farygin 2005-08-25 12:47:12 MSD
неправильно.

файло /etc/firsttime.d/gphoto2 должен быть в пакете

Ну и его нужно проверить на работоспособность.

А DURING_INSTALL нужно проверять так как это делается в shell. (-z или -n)
Comment 6 Vyacheslav Dikonov 2005-08-25 12:54:27 MSD
Так это же будет хлам в etc! Они хоть оттуда автоматически удаляются?

И с проверкой сложно. Этот INSTALL у меня симпатии и доверия не вызывает, а сбой
системы на несколько дней сейчас обойдется в круглую сумму.
Comment 7 Anton Farygin 2005-08-25 14:22:00 MSD
Это будет не хлам, а реально работающее решение.

Фиксить придется, иначе libgphoto2 будет неработоспособным после установки
системы и в livecd версиях. 

А что значит "Не доверяю DURING_INSTALL" ?

DURING_INSTALL - общепринятый метод для обхода таких граблей при установке пакетов.
Comment 8 Dmitriy Khanzhin 2007-01-18 07:36:11 MSK
Давным-давно FIXED