On Fri, Mar 24, 2006 at 11:20:12AM +0300, Valery V. Inozemtsev wrote: > В сообщении от 22 марта 2006 22:35 Dmitry V. Levin написал(a): > > On Wed, Mar 22, 2006 at 09:38:13PM +0300, Valery V. Inozemtsev wrote: > > > > > > *term вроде пока актуальны, а у нас не все столько за собой > > > > > > таскают, как xterm. aterm полегче будет. Надо, в общем. > > > > > > > > > > во-первых, мне не хотелось бы в %post делать такой скрипт, > > > > > > > > Ну так он вообще напоминает макрос (или helper для него). > > > > > > скрипт в атаче. кто нибудь, объясните в двух словах как из него сделать > > > макрос, > > > > Записать скрипт в файл и в макросе вызывать его. > > в атаче файлы с макросами и с хелпером к нему, исправления/добвления > приветствуются > > -- > Valery V. Inozemtsev > %_fontsdir %_datadir/fonts > > %_bitmapfontsdir %_fontsdir/bitmap > %_type1fontsdir %_fontsdir/type1 > %_ttffontsdir %_fontsdir/ttf > %_otffontsdir %_fontsdir/otf > %_speedofontsdir %_fontsdir/speedo > > %add_bitmapfont_path() %_bindir/mkfontdir %1; \ > %_bindir/fc-cache %1; \ > %prefix/lib/rpm/xfontpath.sh -a %1 \ ';' здесь писать не нужно - '\' после обработки макросов превратится в конец строки, который потом и попадёт в shell. Кроме того, не лучше ли будет засунуть все эти команды в скрипт, добавив к нему опции, указывающие тип шрифта? И стоит ли экономить '_' - не лучше ли назвать этот макрос %add_bitmap_font_path ? > %add_type1font_path() %_bindir/mkfontscale %1; \ > %_bindir/mkfontdir %1; \ > %_bindir/fc-cache %1; \ > %prefix/lib/rpm/xfontpath.sh -a %1 > > %add_ttffont_path() %_sbindir/ttmkfdir -d %1 -o %1/fonts.dir 2>/dev/null; \ > %_sbindir/ttmkfdir -d %1 -o %1/fonts.scale 2>/dev/null; \ > %_bindir/fc-cache %1; \ > %prefix/lib/rpm/xfontpath.sh -a %1 А что мешает здесь сначала сгенерировать fonts.scale с помощью ttmkfdir, а потом, как и в других случаях, вызвать mkfontdir? > %add_otffont_path() %add_ttffont_path > > %add_bitmapfont_path_first() %_bindir/mkfontdir %1; \ > %_bindir/fc-cache %1; \ > %prefix/lib/rpm/xfontpath.sh -fa %1 > > %remove_font_path() %prefix/lib/rpm/xfontpath.sh -r %1 > #!/bin/sh > > PROG="${0##*/}" > > XFS= > USEXFS=0 > XSET= > ADD=0 > FONTPATH= > CHKFONTPATH= > > Usage() > { > [ "$1" = 0 ] || exec >&2 > cat < Usage: $PROG option[s] directory > > Valid options are: > -a, --add=DIRECTORY Add directory to font path > -r, --remove=DIRECTORY Remove directory from font path Именно так - с параметром? Или всё-таки --add или --remove для задания режима работы, а каталог отдельно? > -f, --first Make --add to put the directory first (not last) > in the path > EOF > > [ -n "$1" ] && exit "$1" || exit > } > > [ -n "$*" ] || Usage > > TEMP=`getopt -n "$PROG" -o a:r:f -l add:,remove:,first -- "$@"` || Usage > eval set -- "$TEMP" > > if [ -r /etc/sysconfig/xfs ]; then > source /etc/sysconfig/xfs > case "$XFS" in > yes|Yes|YES|true|True|TRUE|on|On|ON|Y|y|1) > USEXFS=1 > ;; > esac > fi > > while :; do > case "$1" in > -a|--add) > shift > [ -n "$XSET" ] || XSET="fp+" > ADD=1 > [ -n "$CHKFONTPATH" ] || CHKFONTPATH="-q -a" > FONTPATH="$1" > shift > ;; > -r|--remove) > shift > XSET="-fp" > ADD=0 > CHKFONTPATH="-q -r" > FONTPATH="$1" > shift > ;; > -f|--first) > XSET="+fp" > ADD=1 > CHKFONTPATH="-q -fa" > shift > ;; > --) > shift > break > ;; > esac > done > > eval /usr/sbin/chkfontpath "$CHKFONTPATH" "$FONTPATH" >/dev/null 2>&1 > > if [ "$USEXFS" = 0 ]; then > XPID=`pidof X` > if [ -n "$XPID" ]; then > for n in $XPID; do > SERVER=`awk -F: '{print(substr($2,1,1))}' /proc/$n/cmdline` > [ -n "$SERVER" ] || continue > AUTH=`awk -F-auth '{print($2)}' /proc/$n/cmdline` > [ -r "$AUTH" ] || continue > export XAUTHORITY="$AUTH" > FP=`xset -display :"$SERVER" q | grep -q "$FONTPATH"; echo $?` > if [ "$FP" = 1 -o "$ADD" = 0 ]; then > xset -display :"$SERVER" "$XSET" "$FONTPATH" > /dev/null 2>&1 > fi > xdpyinfo -display :"$SERVER" | grep -q FontCache && > xset -display :"$SERVER" fp rehash > done > fi > fi Выглядит как набор кривых хаков :(