В мире Linux периодически случается так, что обновление одного пакета затрагивает множество других. А еще хуже бывает тогда, когда один из этих пакетов был установлен с внесением каких либо правок, либо вообще в обход пакетного менеджера. Как Вы уже догадались именно такая ситуация случилась у меня при обновлении poppler.
Обновление poppler требовало обновления cairo (у меня стояла патченная 1.8.10) до версии 1.10.2-r1. Кстати Вы можете почитать статью по процессу доведения шрифтов до вменяемого состояния и установки патченных пакетов. Так как я не силен в написании ебилдов для Gentoo тогда были установлены патченные freetype, fontconfig и cairo через
make, make install
Не захотев опять пересобирать и патчить вручную я просто надеялся обмануть portage путем изменения в
/etc/portage/package.provided
предоставленной версии cairo с 1.8.10 на 1.10.2-r1. Обмануть не получилось, ибо перестал собираться epdfview ссылаясь на то, что не может найти poppler-glib.so.5. Пересборка poppler ничего не дала и решено было все же обновить cairo. После сборки cairo и последующей пересборки poppler — epdfview нормально собрался и отлично работал.
Осталась лишь одна небольшая проблема. А именно карявые шрифты, которые разительно отличались от тех что были раньше. Смею заметить, что улучшения в версии 1.10.2 заметны, так как на шрифты отрисованные с помощью предыдущих, непатченных версий без содрогания смотреть было невозможно.
Чтобы снова сделать Ш не Г я нашел патч cleartype для новой версии cairo. Пользователям Gentoo нужно будет поправить ебилд (или положить его в собственный локальный оверлей), подложить патч в соответствующую директорию и пересобрать cairo. Теперь обо всем этом подробнее
Сначала открываем ебилд:
sudo nano -w /usr/portage/x11-libs/cairo/cairo-1.10.2-r1.ebuild
И найдя строки
src_prepare() { epatch
Добавляем еще одну
epatch "${FILESDIR}"/cairo-cleartype-1.10.patch
Сохраняем изменения, закрываем и копируем в директорию
/usr/portage/x11-libs/cairo/files
файл патча который я прикреплю ниже.
Пересборка cairo не получится, ибо контрольные суммы ебилда изменились. Запускаем регенерацию файла manifest в котором эти контрольные суммы и хранятся.
sudo ebuild /usr/portage/x11-libs/cairo/cairo-1.10.2-r1.ebuild manifest
Теперь пересобираем пакет cairo и получаем шрифты еще лучше чем были до этого.
Приложение | Размер |
---|---|
cairo-cleartype-1.10.patch | 13.56 кб |