Bug 3669

Summary: wrong %postun breaks upgrade
Product: Sisyphus Reporter: Sergey Vlasov <vsu>
Component: ms-fonts-ttfAssignee: Vyacheslav Dikonov <slava>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P2    
Version: unstable   
Hardware: all   
OS: Linux   

Description Sergey Vlasov 2004-02-12 17:03:37 MSK
postuninstall scriptlet (through /bin/sh):
/usr/sbin/chkfontpath --remove /usr/share/fonts/default/TrueType-ms

Так нельзя - %postun вызывается в том числе и при обновлении пакета, причём
%postun от старого пакета выполняется после %post от нового пакета. В результате
после обновления шрифты оказываются недоступны.

Должно быть так:

if [ "$1" = "0" ]; then
        /usr/sbin/chkfontpath -q -r /usr/share/fonts/default/TrueType-ms ||:
fi

(||: нужно, чтобы возможные ошибки - например, если каталог уже удалён из списка
- не останавливали удаление пакетов)

Ещё необходимо добавить %triggerpostun на старую версию пакета для устранения
последствий ошибки в предыдущих версиях (иначе после первого обновления на
исправленную версию каталог со шрифтами всё равно будет удалён из списка).
Comment 1 Michael Shigorin 2004-02-12 18:06:54 MSK
в vera-fonts-ttf (#3691) сделал так: 

%post
%_bindir/fc-cache %ttfdir
%_sbindirchkfontpath -q --add %ttfdir

%postun
if [ "$1" = "0" ]; then
        %_sbindirchkfontpath -q --remove %ttfdir ||:
fi

%triggerpostun -- %name < 1.10-alt2
echo "Fixing faulty fontpath removal in 1.10-alt1"
%_bindir/fc-cache %ttfdir
%_sbindirchkfontpath -q --add %ttfdir
Comment 2 Michael Shigorin 2004-02-12 18:10:56 MSK
эээ... даже так (thanks vsu):

%post
%_bindir/fc-cache %ttfdir ||:
%_sbindir/chkfontpath -q --add %ttfdir ||:

%postun
if [ "$1" = "0" ]; then
        %_sbindir/chkfontpath -q --remove %ttfdir ||:
fi

%triggerpostun -- %name < 1.10-alt2
%_sbindir/chkfontpath -q --add %ttfdir ||:
Comment 3 Vyacheslav Dikonov 2004-02-19 01:17:58 MSK
Исправления внесены.
Comment 4 Sergey Vlasov 2004-02-21 20:56:36 MSK
seems to be fixed