ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] XFS - кому он нужен? или продожение шрифтовой темы
@ 2006-03-22 13:44 Valery V. Inozemtsev
  2006-03-22 14:13 ` Michael Shigorin
  0 siblings, 1 reply; 12+ messages in thread
From: Valery V. Inozemtsev @ 2006-03-22 13:44 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 3001 bytes --]

Добрый день.

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

На вопрос "кому он нужен" ответ однозначный - тем кто раздает шрифты с ОДНОГО 
сервера по сети.
Вопрос второй - зачем загружать шрифты Х серверу? По большому счету незачем, 
те приложения которые поддерживают 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

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-22 13:44 [devel] XFS - кому он нужен? или продожение шрифтовой темы Valery V. Inozemtsev
@ 2006-03-22 14:13 ` Michael Shigorin
  2006-03-22 14:30   ` Valery V. Inozemtsev
  0 siblings, 1 reply; 12+ messages in thread
From: Michael Shigorin @ 2006-03-22 14:13 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wed, Mar 22, 2006 at 04:44:31PM +0300, Valery V. Inozemtsev wrote:
> В очередно раз поднялся вопрос о потере иксами сокета фонт
> сервера при его рестарте

Есть такое. (когда не reload)

> Использовать для этого XFS совершенно не обязательно.
> Достаточно вот такого скрипта: /etc/X11/xinit.d/xfonts

Похоже на правду.

> Остается открытым вопрос как сделать так что бы шрифты были
> доступны приложениям не поддерживающим fontconfig сразу после
> установки. это тоже решается, например вот таким скриптом в
> %post [...] хотя я не думаю что это так уж актуально

*term вроде пока актуальны, а у нас не все столько за собой
таскают, как xterm.  aterm полегче будет.  Надо, в общем.

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

Можешь где-нить выложить перед тем, как в сизиф плескать?
В кролики пойду.

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

Давай.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-22 14:13 ` Michael Shigorin
@ 2006-03-22 14:30   ` Valery V. Inozemtsev
  2006-03-22 14:39     ` Michael Shigorin
  0 siblings, 1 reply; 12+ messages in thread
From: Valery V. Inozemtsev @ 2006-03-22 14:30 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 2268 bytes --]

В сообщении от 22 марта 2006 17:13 Michael Shigorin написал(a):
> On Wed, Mar 22, 2006 at 04:44:31PM +0300, Valery V. Inozemtsev wrote:
> > В очередно раз поднялся вопрос о потере иксами сокета фонт
> > сервера при его рестарте
>
> Есть такое. (когда не reload)

по reload не удаляется /tmp/.font-unix

>
> > Использовать для этого XFS совершенно не обязательно.
> > Достаточно вот такого скрипта: /etc/X11/xinit.d/xfonts
>
> Похоже на правду.

у меня сейчас в xorg.conf вообще нет секции Files и
$ xset q
...
Font Path:
  /usr/share/fonts/bitmap/misc/,/usr/share/fonts/bitmap/misc:unscaled,/usr/share/fonts/bitmap/100dpi:unscaled,/usr/share/fonts/bitmap/75dpi:unscaled,/usr/share/fonts/ttf/TrueType,/usr/share/fonts/type1/Type1,/usr/share/fonts/type1/urw,/usr/share/fonts/j2se-sun,/usr/share/fonts/default/TrueType-freefont,/usr/share/fonts/bitmap/terminus
Bug Mode: compatibility mode is disabled
DPMS (Energy Star):
  Standby: 180    Suspend: 240    Off: 300
  DPMS is Enabled
  Monitor is On
Font cache:
  hi-mark (KB): 5120  low-mark (KB): 3840  balance (%): 70
File paths:
  Config file:  /etc/X11/xorg.conf
  Modules path: /usr/lib/X11/modules
  Log file:     /var/log/Xorg.0.log

>
> > Остается открытым вопрос как сделать так что бы шрифты были
> > доступны приложениям не поддерживающим fontconfig сразу после
> > установки. это тоже решается, например вот таким скриптом в
> > %post [...] хотя я не думаю что это так уж актуально
>
> *term вроде пока актуальны, а у нас не все столько за собой
> таскают, как xterm.  aterm полегче будет.  Надо, в общем.

во-первых, мне не хотелось бы в %post делать такой скрипт, во-вторых не так 
часто меняются терминальные шрифты, можно и иксы рестартануть

>
> > Хотелось бы услышать мнение заинтересованной общественности и в
> > дальнейшем прийти к консенсесу
>
> Можешь где-нить выложить перед тем, как в сизиф плескать?

сегодня планирую плеснуть xorg-x11-xfs с измененным инитскриптом и конфигом, 
но этого никто не заметит

> В кролики пойду.

первый кролик это я сам

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

вообще я просто предлагал это проверить

-- 
Valery V. Inozemtsev

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-22 14:30   ` Valery V. Inozemtsev
@ 2006-03-22 14:39     ` Michael Shigorin
  2006-03-22 18:38       ` Valery V. Inozemtsev
  0 siblings, 1 reply; 12+ messages in thread
From: Michael Shigorin @ 2006-03-22 14:39 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wed, Mar 22, 2006 at 05:30:08PM +0300, Valery V. Inozemtsev wrote:
> > > В очередно раз поднялся вопрос о потере иксами сокета фонт
> > > сервера при его рестарте
> > Есть такое. (когда не reload)
> по reload не удаляется /tmp/.font-unix

Дык.

> > > Использовать для этого XFS совершенно не обязательно.
> > > Достаточно вот такого скрипта: /etc/X11/xinit.d/xfonts
> > Похоже на правду.
> у меня сейчас в xorg.conf вообще нет секции Files и
> $ xset q
> ...
> Font Path:

Только тогда надо не забыть отметить данную фичу в пакетных
xorg.conf и fs/config (может, и в описании xfs).

> > > Остается открытым вопрос как сделать так что бы шрифты были
> > > доступны приложениям не поддерживающим fontconfig сразу
> > > после установки. это тоже решается, например вот таким
> > > скриптом в %post [...] хотя я не думаю что это так уж
> > > актуально
> > *term вроде пока актуальны, а у нас не все столько за собой
> > таскают, как xterm.  aterm полегче будет.  Надо, в общем.
> во-первых, мне не хотелось бы в %post делать такой скрипт,

Ну так он вообще напоминает макрос (или helper для него).

> во-вторых не так часто меняются терминальные шрифты, можно и
> иксы рестартануть

А вот этим-то мне предложения отказаться от xfs и не нравились -- 
последний раз, когда наступил на подобное "не часто", было весьма
неприятно рестартовывать.

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

Заремарил, поживём.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-22 14:39     ` Michael Shigorin
@ 2006-03-22 18:38       ` Valery V. Inozemtsev
  2006-03-22 19:35         ` Dmitry V. Levin
  2006-03-22 20:09         ` Vitaly Lipatov
  0 siblings, 2 replies; 12+ messages in thread
From: Valery V. Inozemtsev @ 2006-03-22 18:38 UTC (permalink / raw)
  To: ALT Devel discussion list


[-- Attachment #1.1: Type: text/plain, Size: 451 bytes --]

> > > *term вроде пока актуальны, а у нас не все столько за собой
> > > таскают, как xterm.  aterm полегче будет.  Надо, в общем.
> >
> > во-первых, мне не хотелось бы в %post делать такой скрипт,
>
> Ну так он вообще напоминает макрос (или helper для него).

скрипт в атаче. кто нибудь, объясните в двух словах как из него сделать 
макрос, а то смотрю на то что у меня есть в /etc/rpm/macros.d и до конца не 
могу вкуриться

-- 
Valery V. Inozemtsev

[-- Attachment #1.2: fonts.sh --]
[-- Type: application/x-shellscript, Size: 714 bytes --]

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-22 18:38       ` Valery V. Inozemtsev
@ 2006-03-22 19:35         ` Dmitry V. Levin
  2006-03-22 20:55           ` Michael Shigorin
  2006-03-24  8:20           ` Valery V. Inozemtsev
  2006-03-22 20:09         ` Vitaly Lipatov
  1 sibling, 2 replies; 12+ messages in thread
From: Dmitry V. Levin @ 2006-03-22 19:35 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 505 bytes --]

On Wed, Mar 22, 2006 at 09:38:13PM +0300, Valery V. Inozemtsev wrote:
> > > > *term вроде пока актуальны, а у нас не все столько за собой
> > > > таскают, как xterm.  aterm полегче будет.  Надо, в общем.
> > >
> > > во-первых, мне не хотелось бы в %post делать такой скрипт,
> >
> > Ну так он вообще напоминает макрос (или helper для него).
> 
> скрипт в атаче. кто нибудь, объясните в двух словах как из него сделать 
> макрос,

Записать скрипт в файл и в макросе вызывать его.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-22 18:38       ` Valery V. Inozemtsev
  2006-03-22 19:35         ` Dmitry V. Levin
@ 2006-03-22 20:09         ` Vitaly Lipatov
  1 sibling, 0 replies; 12+ messages in thread
From: Vitaly Lipatov @ 2006-03-22 20:09 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 22 March 2006 21:38, Valery V. Inozemtsev wrote:
> > > > *term вроде пока актуальны, а у нас не все столько за
> > > > собой таскают, как xterm.  aterm полегче будет.  Надо, в
> > > > общем.
> > >
> > > во-первых, мне не хотелось бы в %post делать такой скрипт,
> >
> > Ну так он вообще напоминает макрос (или helper для него).
>
> скрипт в атаче. кто нибудь, объясните в двух словах как из
> него сделать макрос, а то смотрю на то что у меня есть в
> /etc/rpm/macros.d и до конца не могу вкуриться
Я бы не хотел чтобы это него сделали макрос. Скорее назвать 
осмысленно и вызывать из макроса.

-- 
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! WINE! LaTeX! LyX! http://freesource.info


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-22 19:35         ` Dmitry V. Levin
@ 2006-03-22 20:55           ` Michael Shigorin
  2006-03-24  8:20           ` Valery V. Inozemtsev
  1 sibling, 0 replies; 12+ messages in thread
From: Michael Shigorin @ 2006-03-22 20:55 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wed, Mar 22, 2006 at 10:35:06PM +0300, Dmitry V. Levin wrote:
> > > > во-первых, мне не хотелось бы в %post делать такой скрипт,
> > > Ну так он вообще напоминает макрос (или helper для него).
                                              ^^^^^^
> > скрипт в атаче. кто нибудь, объясните в двух словах как из
> > него сделать макрос,
> Записать скрипт в файл и в макросе вызывать его.

Что и предлагалось.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-22 19:35         ` Dmitry V. Levin
  2006-03-22 20:55           ` Michael Shigorin
@ 2006-03-24  8:20           ` Valery V. Inozemtsev
  2006-03-24  9:58             ` Sergey Vlasov
  1 sibling, 1 reply; 12+ messages in thread
From: Valery V. Inozemtsev @ 2006-03-24  8:20 UTC (permalink / raw)
  To: ALT Devel discussion list


[-- Attachment #1.1: Type: text/plain, Size: 675 bytes --]

В сообщении от 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

[-- Attachment #1.2: xfont --]
[-- Type: text/plain, Size: 851 bytes --]

%_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 \

%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

%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

[-- Attachment #1.3: xfontpath.sh --]
[-- Type: application/x-shellscript, Size: 1710 bytes --]

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-24  8:20           ` Valery V. Inozemtsev
@ 2006-03-24  9:58             ` Sergey Vlasov
  2006-03-24 10:35               ` Valery V. Inozemtsev
  0 siblings, 1 reply; 12+ messages in thread
From: Sergey Vlasov @ 2006-03-24  9:58 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 4331 bytes --]

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 <<EOF
> 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

Выглядит как набор кривых хаков :(

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-24  9:58             ` Sergey Vlasov
@ 2006-03-24 10:35               ` Valery V. Inozemtsev
  2006-03-24 11:20                 ` Sergey Vlasov
  0 siblings, 1 reply; 12+ messages in thread
From: Valery V. Inozemtsev @ 2006-03-24 10:35 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 3335 bytes --]

> > %add_bitmapfont_path()	%_bindir/mkfontdir %1; \
> > 	%_bindir/fc-cache %1; \
> > 	%prefix/lib/rpm/xfontpath.sh -a %1 \
>
> ';' здесь писать не нужно - '\' после обработки макросов превратится в
> конец строки, который потом и попадёт в shell.

угу, исправлю

>
> Кроме того, не лучше ли будет засунуть все эти команды в скрипт, добавив к
> нему опции, указывающие тип шрифта?

да, надо подумать

>
> И стоит ли экономить '_' - не лучше ли назвать этот макрос
> %add_bitmap_font_path ?

думаю не стоит, исправлю

> > %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?

тоже верно, исправлю

> > #!/bin/sh
> >
> > PROG="${0##*/}"
> >
> > XFS=
> > USEXFS=0
> > XSET=
> > ADD=0
> > FONTPATH=
> > CHKFONTPATH=
> >
> > Usage()
> > {
> > 	[ "$1" = 0 ] || exec >&2
> > 	cat <<EOF
> > 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
>
> Выглядит как набор кривых хаков :(

мне оно тоже не нравится, поэтому я и предлагал не заморачиваться с 
доступностью шрифтов скразу после установки в прогах не поддерживающих 
fontconfig. однако оно работает

-- 
Valery V. Inozemtsev

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] XFS - кому он нужен? или продожение шрифтовой темы
  2006-03-24 10:35               ` Valery V. Inozemtsev
@ 2006-03-24 11:20                 ` Sergey Vlasov
  0 siblings, 0 replies; 12+ messages in thread
From: Sergey Vlasov @ 2006-03-24 11:20 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 3139 bytes --]

On Fri, Mar 24, 2006 at 01:35:58PM +0300, Valery V. Inozemtsev wrote:
> > > #!/bin/sh
> > >
> > > PROG="${0##*/}"
> > >
> > > XFS=
> > > USEXFS=0
> > > XSET=
> > > ADD=0
> > > FONTPATH=
> > > CHKFONTPATH=
> > >
> > > Usage()
> > > {
> > > 	[ "$1" = 0 ] || exec >&2
> > > 	cat <<EOF
> > > 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 для задания
> > режима работы, а каталог отдельно?
> 
> не думаю что это принципиально

Тогда Usage неправильный - каталог не указывается как отдельный параметр.
Ну и можно придраться к отсутствию обработки ситуации, когда опция --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
> >
> > Выглядит как набор кривых хаков :(
> 
> мне оно тоже не нравится, поэтому я и предлагал не заморачиваться с 
> доступностью шрифтов скразу после установки в прогах не поддерживающих 
> fontconfig. однако оно работает

Надо будет придумать, как сделать при запуске X что-нибудь такое, чтобы
это работать перестало ;)

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2006-03-24 11:20 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-03-22 13:44 [devel] XFS - кому он нужен? или продожение шрифтовой темы Valery V. Inozemtsev
2006-03-22 14:13 ` Michael Shigorin
2006-03-22 14:30   ` Valery V. Inozemtsev
2006-03-22 14:39     ` Michael Shigorin
2006-03-22 18:38       ` Valery V. Inozemtsev
2006-03-22 19:35         ` Dmitry V. Levin
2006-03-22 20:55           ` Michael Shigorin
2006-03-24  8:20           ` Valery V. Inozemtsev
2006-03-24  9:58             ` Sergey Vlasov
2006-03-24 10:35               ` Valery V. Inozemtsev
2006-03-24 11:20                 ` Sergey Vlasov
2006-03-22 20:09         ` Vitaly Lipatov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git