[devel] XFS - кому он нужен? или продожение шрифтовой темы

Valery V. Inozemtsev =?iso-8859-1?q?shrek_=CE=C1_freesource=2Einfo?=
Ср Мар 22 16:44:31 MSK 2006


Добрый день.

В очередно раз поднялся вопрос о потере иксами сокета фонт сервера при его 
рестарте и в очередной раз я задумался над тем как от него отказаться с 
минимальными потерями. на этот раз плодотворно.

На вопрос "кому он нужен" ответ однозначный - тем кто раздает шрифты с ОДНОГО 
сервера по сети.
Вопрос второй - зачем загружать шрифты Х серверу? По большому счету незачем, 
те приложения которые поддерживают fontconfig прекрасно обходятся и без 
этого. Но пока существуют приложения не поддерживающие fontconfig, шрифты Х 
серверу придется загружать.
Использовать для этого XFS совершенно не обязательно. Достаточно вот такого 
скрипта:
/etc/X11/xinit.d/xfonts
-------------------------------------------------------------------
#!/bin/sh

XFS=

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)
                        exit 0
                ;;
        esac
fi

FONTPATH=`chkfontpath -l | sed -ne 's,\(.*\):\ \(.*\),\2,p'`

[ -n "$FONTPATH" ] || exit 0

for F in $FONTPATH; do
        xset fp+ "$F"
done

xdpyinfo | grep -q FontCache && xset fp rehash
-------------------------------------------------------------------

единственное что придется сделать - добавить один параметр 
в /etc/sysconfig/xfs
Остается открытым вопрос как сделать так что бы шрифты были доступны 
приложениям не поддерживающим fontconfig сразу после установки. это тоже 
решается, например вот таким скриптом в %post
------------------------------------------------------------------------------
XFS=

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)
                                exit 0
                ;;
                esac
fi

XPID=`pidof X`
FONTPATH=$1

[ -n "$FONTPATH" ] || exit 0

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`
                [ -n "$AUTH" ] || continue
                export XAUTHORITY=$AUTH
                if xset q | grep -q "$FONTPATH"; then
                        ACTION="-fp"
                else
                        ACTION="fp+"
                fi
                xset -display :$SERVER $ACTION "$FONTPATH" > /dev/null 2>&1
                xdpyinfo -display :$SERVER | grep -q FontCache &&
                        xset -display :$SERVER fp rehash
        done
fi
------------------------------------------------------------------------------
хотя я не думаю что это так уж актуально

Хотелось бы услышать мнение заинтересованной общественности и в дальнейшем 
прийти к консенсесу

P.S. Для того что бы иксы не теряли сокет xfs при его рестарте по моему будет 
достаточно удалить 25-ю строку (rm -rf /tmp/.font-unix) в /etc/init.d/xfs

-- 
Valery V. Inozemtsev
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060322/dcd5c22d/attachment-0001.bin>


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