On Thu, Aug 30, 2007 at 08:23:19PM +0400, Valery V. Inozemtsev wrote: [...] > %install > %__mkdir_p %buildroot%_fontsdir/%fname > %__install -m644 *.ttf %buildroot%_fontsdir/%fname Почему не просто "mkdir -p" и "install"? > %_bindir/mkfontscale %buildroot%_fontsdir/%fname Зачем %_bindir? > %__ln_s fonts.scale %buildroot%_fontsdir/%fname/fonts.dir Почему не просто "ln -s"? > %__mkdir_p %buildroot%_sysconfdir/X11/fontpath.d > %__ln_s ../../..%_fontsdir/%fname %buildroot%_sysconfdir/X11/fontpath.d/ttf-%fname:pri=50 Аналогичные вопросы. > имена симлинков в /etc/X11/fontpath.d следующие: > для ttf шрифтов ttf-%name:pri=50 > для otf - otf-%name:pri=50 > для type1 - type1-%name:pri=40 > для bitmap - bitmap-%name:pri=20 если шрифты не зависят от локали и bitmap-%name:pri=10 для зависимых > от локали. > ":pri=" это порядок в котором шрифты будет выбираться Ой как сложно. Может завести пачку макросов, например, %make_fontpath_ttf(%fname,50) или что-нибудь ещё более простое? > далее триггер (только для пакетов у которых не меняется имя, изменяется только %version или %release): > %triggerin -- %name <= 0.2-alt1 Почему %triggerin?? Тогда уж %triggerun или %triggerpostun > [ ! -x %_sbindir/chkfontpath -a ! -f %_sysconfdir/X11/fs/config ] || \ > %_sbindir/chkfontpath -q -r %_fontsdir/%fname ||: Условие написано с ошибкой. Лучше уж простой, но правильный if: if [ -x %_sbindir/chkfontpath -a -f %_sysconfdir/X11/fs/config ]; then %_sbindir/chkfontpath -q -r %_fontsdir/%fname ||: fi > %_sysconfdir/X11/fontpath.d/* Каталог %_sysconfdir/X11/fontpath.d/ тоже хорошо бы замакрить. > что тут заворачивать в макросы мне не понятно. спек для примера во вложении 1. каталог %_sysconfdir/X11/fontpath.d; 2. команда на создание ссылки в %buildroot%_sysconfdir/X11/fontpath.d/; 3. весь триггер от начала и до конца. -- ldv