FreeBSD - шрифты как в винде!

Пересборка freetype2 и сопутствующие телодвижения…


Как известно, чтобы в иксах ОС семейства UNIX работали true-type шрифты и делали буковки жутко красивыми, помимо наличия этих самых шрифтов и правки определенных конфигурационных файлов, еще необходимо пересобрать утилиту freetype2.
Вот как раз о сборке этой самой утилиты под FreeBSD мы здесь и поговорим.
Итак, у нас установлена система FreeBSD 6.0 (актуально и для 7.0) с каталогами и папками по умолчанию, то есть ОС ставилась в стандартном режиме с максимальным числом пакетов.
Версии некоторых утилит:
gmake: GNU Make 3.81
freetype: freetype2-2.1.10_1 (У меня при установке как из пакетов так и из портов в FreeBSD 7.0 почему-то по любому ставится версия 1.3.1, хотя при установке из портов pkg_info и рапортует о том что мы имеем самую свежую версию freetype2, внутри всё та же 1.3.1, с ней все эти финты не пройдут). Так, что, по-любому, придётся качать “сырки” с оффсайта или из distfiles с любого зеркала FreeBSD.
Версию gmake можно узнать по команде:
а версию freetype:
Итак, скачиваем архив с freetype2.
Распаковываем скачанный архив в отдельную папку (у меня это home/user/install/) и переходим в нее сначала с помощью файл-менеджера (лучший файл-менеджер это XTerm;)). В этой директории ищем файл ./include/freetype/config/ftoption.h и открываем его на редактирование. Теперь, делаем то, ради чего и затевается пересборка: ищем строку
/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
и убираем операторы комментария (/**/), а строку сдвигаем так, чтобы символ # был в самом начале строки (не забудьте убрать знаки комментария в конце строки) . Сохраняем изменения, выходим из редактора и переходим в нашу директорию, но уже из консоли:
Теперь, если мы выполним команду:
$ ./configure или $ ./configure –prefix=/usr или даже $ ./configure -help
то получим в ответ вот это:
Please try
‘GNUMAKE=<GNU make command name> ./configure’.
or >&2
‘GNUMAKE=”makepp –norc-substitution” ./configure’.
И вот тут Вам должно стать понятно, почему вначале я упомянул утилиту gmake!
Обратите внимание, что из сообщения выходит, будто нам требуется GNU make минимум версии 3.79.1, но ведь у нас в системе уже стоит версия 3.8… Не берите в голову, по крайней мере сейчас. В будущем, если это будет нужно, Вы во всем разберетесь. А пока…
А пока открываем наш любимый MC (или другой файл-менеджер, к примеру, Konqueror в KDE (а лучше vi или nano в терминале ;)) и переходим все в ту же директорию ~/install/freetype-2.3.7. В этой директории открываем для редактирования, как Вы думаете, какой файл? – Не заморачивайтесь, я сам скажу. Тот самый файл configure и находим в нем такие строки:
GNUMAKE=make
fi
меняем GNUMAKE=make на GNUMAKE=gmake (добавляем всего лишь одну букву g) сохраняем и закрываем файл.
Снова в консоли пишем:
$ ./configure -help
и… видим, что все работает! теперь командуем:
(если система устанавливалась стандартно, как в нашем случае, то не нужно добавлять –prefix) и ждем пока скрипт закончит работу. Ошибок не выскочило? –Тогда идем дальше. Набираем команду:
именно gmake а не make, как это обычно делается.
После удачного выполнения команды gmake вводим (ессно рутом):
и снова почувствуйте разницу: вместо make install - gmake install
Если все обошлось без ошибок, можно считать, что freetype2 обновлен.
Если Вы находитесь в иксах, то перезапустите их и лицезрейте разницу, если конечно Вы уже подправили все конфиги и разместили в нужном месте TrueType шрифты.
О том, как править конфиги, описано в этих статьях и топиках:
http://linuxforum.ru/index.php?showtopic=12690
http://www.opennet.ru/base/X/font_as_windows.txt.html
От себя:
Что касается TTF шрифтов, то я всегда просто переношу все файлы *.ttf из пупочки \Windows\Fonts в директорию нужного юзера в пупочку .fonts, после рестарта иксов шрифты оттуда подхватываются автоматически.
Что касается конфигов, то пример файла /usr/local/etc/fonts/local.conf или ~/.fonts.conf вместе с разбором полётов можно посмотреть здесь: http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/x-fonts.html
У меня файл ~/.fonts.conf выглядит следующим образом:
<!DOCTYPE fontconfig SYSTEM “fonts.dtd”>
<fontconfig>
<match target=”font”>
<test name=”size” compare=”less”>
<double>14</double>
</test>
<edit name=”antialias” mode=”assign”>
<bool>false</bool>
</edit>
</match>
<match target=”font”>
<test name=”pixelsize” compare=”less” qual=”any”>
<double>14</double>
</test>
<edit mode=”assign” name=”antialias”>
<bool>false</bool>
</edit>
</match>
<match target=”pattern” name=”family”>
<test qual=”any” name=”family”>
<string>fixed</string>
</test>
<edit name=”family” mode=”assign”>
<string>mono</string>
</edit>
</match>
<match target=”pattern” name=”family”>
<test qual=”any” name=”family”>
<string>console</string>
</test>
<edit name=”family” mode=”assign”>
<string>mono</string>
</edit>
</match>
<match target=”pattern” name=”family”>
<test qual=”any” name=”family”>
<string>mono</string>
</test>
<edit name=”spacing” mode=”assign”>
<int>100</int>
</edit>
</match>
<match target=”pattern” name=”family”>
<test qual=”any” name=”family”>
<string>Helvetica</string>
</test>
<edit name=”family” mode=”assign”>
<string>sans-serif</string>
</edit>
</match>
<match target=”font”>
<test qual=”all” name=”rgba”>
<const>unknown</const>
</test>
<edit name=”rgba” mode=”assign”>
<const>rgb</const>
</edit>
</match>
</fontconfig>
Так как он здесь запостился, работать наверняка не будет.
Должно быть так:

Владельцы “электронных гаубиц” очевидно должны удалить последнюю секцию (естественно сохранив закрывающий тэг </fontconfig>) . И не забывайте о правильной табуляции внутри XML файлов!
И ещё одна вещь на которую следует обратить внимание это правильное количество точек на дюйм - DPI в разрешении вашего монитора. Для виндовых шрифтов dpi должно составлять 96.
Даём команду:
resolution: 96×96 dots per inch
Если вывод отличается от этого, нужно изменить dpi.
Я применяю способ правки скрипта startx. Всё очень просто. Открываем в текстовом редакторе от имени супер-пользователя файл: /usr/local/bin/startx и находим там секцию вида (она первая сверху):
sysserverrc=/usr/local/lib/X11/xinit/xserverrc
defaultclient=xterm
defaultserver=/usr/local/bin/X
defaultclientargs=”"
defaultserverargs=”" - вставляем в эти кавычки строку -dpi 96
clientargs=”"
serverargs=”"
в результате имеем:
sysserverrc=/usr/local/lib/X11/xinit/xserverrc
defaultclient=xterm
defaultserver=/usr/local/bin/X
defaultclientargs=”"
defaultserverargs=”-dpi 96″
clientargs=”"
serverargs=”"
Теперь рестартуем иксы и проверяем всё той же командой, теперь всё должно стать пучком
Я ипользую Fluxbox. Для установки системного шрифта для GTK2 приложений я использую файл .gtkrc-2.0 в своей домашней директории, с одной единственной строкой:
Просто подберите системный шрифт по вкусу.
Вот что получилось у меня:

Шрифты выглядят точь в точь как в винде =)
Всем успехов!
На заметку блогерам:
У Вас есть свой Блог, Вы хотите на нем заработать на новый компьютер. Это реально! Добавьте Ваш Блог в Блогун и начните размещать на своем Блоге рекламные постовые и обзоры. На этом Вы легко заработаете себе на новый компьютер или на другое, что Вы хотите купить. Не проходите мимо денег, они Вам пригодиться. ![]()
Привет! С удовольствием почитал Ваш блог. Хочу также поздравить Вас и всех читателей этого блога с новым 2010 годом. Удачи всем, новых жизненных побед и исполнения всех ваших замыслов.
Уважаемые читатели. С Рождеством христовым хочется вас поздравить. Админу сайта отдельное пожелание-побольше читателей на блоге, креативных интересных статей и всего всего всего
А мне пост понрвился. Добавил в букмарки. (не спам)
Хороший сайт. Так держать!!!
А как на блоге можно заработать? У меня есть блог о игре на гитаре. Правда там народа в день не много ходит…человек 20. Можно с него что то заработать?
Хорошо написал. Так держать!!!
+1 поддерживаю
Молодец, хороший пост.
А у Вас талант писателя прям
А мне блог понравился
Админ, а много блог отнимает времени у тебя?
одобрямс статью
блин…писал-писал, а сообщение не отправилось и не сохранилось
вообщем блог понравился. админу удачи в развитии.
оцените мой сайтец пожалуйста
http://www.qwabi.ru
Блог очень понравился. Так держать!!!
Не подскажете, как ссылки в футере убрать, если он закодирован. С интересом читал ваш блог и тоже решил завести себе на подобную тему. Заранее спасибо.
Хороший блог. Занёс в букмарки
А почему у вас так мало читателей, по мне отличный блог.
Пощелкал по рекламе. спасибо за пост
Не секрет, что сейчас, во время финансового кризиса, доходы у многих ощутимо упали, а отдельные бедолаги и восе остались без источника средств к существованию. Вопреки этим негативным явлениям жизни реальной, в виртуальности доходы зарабатывающих неуклонно растут — интернет с радостью принимает всех желающих заработать, предоставляя для этого прекрасные возможности: могут зарабатывать как технари, так и гуманитарии
заработок не обязательно должен быть активным, можно совершить разовое усилие и иметь небольшой сторонний доход
для заработка в интернет не нужны справки и дипломы, важны только личные качества и навыки
Не могу молчать, благодарность за труды, но текст такой сухой!
Нужно все-таки для читателей живее доносить свои мысли.
Отличный блог посещаемость смотрю у вас большая как удалось этого добиться.
Hello nice blog I agree with you