Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Русскоязычное Linux-сообщество ([info]lj_ru_linux)
@ 2019-02-21 12:03:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Добавление core X11-шрифтов в FontPath X-сервера в Debian Linux
Товарищи, здравствуйте.

Я по-прежнему использую core X11 fonts.

В свете того, что из Debian исключили пакет xfs, а пересобрать libxft2 с нужными ключами и опакетить оба компонента под Debian 9 я так и не собрался, фрагмент моего xorg.conf сейчас выглядит так:

Section "Files"
	ModulePath   "/usr/lib/xorg/modules"
	FontPath     "unix/:7100"
	FontPath     "/usr/share/fonts/X11/misc"
	FontPath     "/usr/share/fonts/X11/cyrillic"
	FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
	FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
	FontPath     "/usr/share/fonts/X11/Type1"
	FontPath     "/usr/share/fonts/X11/100dpi"
	FontPath     "/usr/share/fonts/X11/75dpi"
	FontPath     "built-ins"
	FontPath	"/usr/share/fonts/opentype/cantarell"

	#
	# ... ещё 100+ строк аналогичного содержания
	#

	FontPath	"/usr/share/fonts/truetype/yanone-kaffeesatz"
EndSection


В каждом из каталогов из списка – сгенерённые fonts.dir и fonts.scale.

Хотя, если бы в системе был xfs, то весь этот зоопарк попал бы в
/etc/X11/fs/config, но от этого не перестал бы быть зоопарком.

И вот хочется этот процесс автоматизировать:


  • автоматически регистрировать/дерегистрировать в xorg.conf и/или
    /etc/X11/fs/config каталоги при установке и удалении шрифтов;

  • автоматически создавать fonts.dir и fonts.scale при
    установке/обновлении пакетов и удалять при удалении.



В Debian 6 и ранее всем этим занимался Defoma ([1], [2]), но метаинформацию ему
предоставляли сопровождающие пакетов со шрифтами (чего сейчас они
делать, естественно, не будут).

Сейчас я посмотрел на соотв. триггеры в Debian 9, но состояние там
малоутешительное: в /etc/X11/fonts/* можно создать свои
*.dir/*.scale/*.alias (через dh_installxfonts), но, во-первых, это
должен сделать сам сопровождающий пакета, и, во-вторых, это работает
только для шрифтов, устанавливаемых в /usr/share/fonts/X11/:

# PROMISE: DH NOOP WITHOUT tmp(usr/share/fonts/X11)

foreach my $package (@{$dh{DOPACKAGES}}) {
        my $tmp=tmpdir($package);

        # Find all font directories in the package build directory.
        my @fontdirs;
        foreach my $parentdir ("$tmp/usr/share/fonts/X11/") {
                opendir(DIR, $parentdir) || next;
                @fontdirs = grep { -d "$parentdir/$_" && !/^\./ } (readdir DIR);
                closedir DIR;
        }

        # ...
}


Можно ли решить проблему через дебиановские триггеры? Может, я таки до
конца не разобрался?

Или какие альтернативы посоветуете?

Дебановских машин несколько (рабочая, домашняя, несколько мобильных),
поэтому подход "напиши на bash цикл и запускай его каждый раз после
обновления пакетов" не нравится.

Запускать виртуальную машину со старым Debian Squeeze и xfs и забирать
шрифты с tcp://squeeze-vm:7100 тоже не хочется.

Всем заранее спасибо.


(Читать комментарии) (Добавить комментарий)