FreeBSD: Настройка шрифтов в десктопных приложениях

FreeBSD: Настройка шрифтов в десктопных приложениях Настройка рендеринга шрифтов в десктопных приложениях для FreeBSD и других операционных систем семейства Linux/Unix вызывала, вызывает и будет вызывать множество споров. Если Microsoft Windows предоставляет всего несколько опций, позволяющих изменить внешность шрифтов, то в случае Linux/Unix возможности настройки шрифтов ограничены только вкусами и потребностями пользователя (к сожалению, в некоторых заокеанских странах еще и лицензионными соглашениями).

Постановка задачи

Необходимо настроить шрифты на десктопе с FreeBSD таким образом, чтобы: во-первых, они выглядели, как минимум, не хуже чем в Microsoft Windows с включенным сглаживанием ClearType (были четкими, сглаженными, ни в коем случае не размазанными и не замыленными), во-вторых, чтобы все Веб-страницы, просматриваемые в браузерах для FreeBSD, имели такие же пропорции, как при просмотре в браузерах для Microsoft Windows (к сожалению, многие Веб-разработчики «не слышали» о существование Linux/Unix, поэтому их творения выглядят в среде FreeBSD отвратительно), ну и, в-третьих, необходимо обойтись без шрифтов webfonts (в связи с различием алгоритмов рендеринга эти шрифты никогда не будут выглядеть в FreeBSD также, как в Microsoft Windows).

Исходные данные

Действия, описанные в данной статье, выполнялись на компьютере с интегрированной видеокартой на базе контроллера Intel® 82G33, к которому был подключен 17″ LCD-монитор Samsung SyncMaster 710v. Этот компьютер работал под управлением операционной системы FreeBSD 8.0, оконной системы Xorg 7.4_3 и графической оболочки KDE 4.3.5. Библиотеки рендеринга шрифтов пересобирались из последних версий портов (по мере появления новых версий библиотек я обновляю команды их пересборки). После установки Xorg и KDE c опциями по-умолчанию шрифты выглядели так (слабонервным ни в коем случае не смотреть):

Внешний вид данного сайта со шрифтами по умолчанию

Установка и интеграция в систему шрифтов Liberation

Сразу отвечу на вопрос, почему именно Liberation. Потому, что шрифт Liberation Serif метрически совместим со шрифтом Times New Roman, Liberation Sans — с Arial, а Liberation Mono — с Courier New, соответственно. При этом в среде FreeBSD шрифты Liberation выглядят гораздо симпатичнее своих аналогов из Microsoft Windows. Шрифты Liberation могут быть установлены из порта liberation-fonts-ttf, однако, коллекция портов содержит не самую последнюю их версию, в связи с чем я рекомендую выполнить установку «вручную». Для загрузки из официального репозитория и установки последней версии шрифтов Liberation (в моем случае — версии 1.05.2 от 27 декабря 2009 года) необходимо выполнить следующую последовательность команд:

mkdir /usr/local/lib/X11/fonts/Liberation
cd /usr/local/lib/X11/fonts/Liberation
fetch https://fedorahosted.org/releases/l/i/liberation-fonts/liberation-fonts-ttf-1.05.2.20091227.tar.gz
tar -xf liberation-fonts-ttf-1.05.2.20091227.tar.gz
mv ttf/* .
rm -Rf liberation-fonts-ttf-1.05.2.20091227.tar.gz ttf
mkfontscale .
mkfontdir .
fc-cache -fs

После установки шрифтов Liberation следует изменить ряд опция в разделе Шрифты модуля Внешний Вид, который находится на закладке Основные окна Параметры системы. В частности, следует включить Сглаживание, Межточечное сглаживание (наилучший режим межточечного сглаживания зависит от типа используемого монитора) и Полный хинтинг, а также установить в поле Использовать другой DPI значение 96 dpi.
Для того, чтобы в качестве псевдошрифтов Serif, Sans-Serif и Monospace всегда использовались шрифты Liberation Serif, Liberation Sans и Liberation Mono, необходимо подкорректировать два файла конфигурации шрифтов, которые расположены в папке /usr/local/etc/fonts/conf.avail.
Резделы Serif faces, Sans-serif faces и Monospace faces файла 45-latin.conf по умолчанию содержат ссылки на шрифты Liberation Serif, Liberation Sans и Liberation Mono, однако, их следует перенести с третьих мест после Bitstream Vera и DejaVu на первые:

<!--
  Serif faces
 -->
        <alias>
                <family>Liberation Serif</family>;
                <family>Bitstream Vera Serif</family>;
                <family>DejaVu Serif</family>;
                <family>Times New Roman</family>;
                ...
        </alias>
<!--
  Sans-serif faces
 -->
        <alias>
                <family>Liberation Sans</family>
                <family>Bitstream Vera Sans</family>
                <family>DejaVu Sans</family>
                <family>Arial</family>
                ...
        </alias>
<!--
  Monospace faces
 -->
        <alias>
                <family>Liberation Mono</family>
                <family>Bitstream Vera Sans Mono</family>
                <family>DejaVu Sans Mono</family>
                <family>Inconsolata</family>
                ...
        </alias>

Разделы Serif, Sans-serif и Monospace файла 60-latin.conf по умолчанию не содержат ссылки на шрифты Liberation Serif, Liberation Sans и Liberation Mono, поэтому их необходимо добавить, причем на первые места, как и в предыдущем случае:

        <alias>
                <family>serif</family>
                <prefer>
                        <family>Liberation Serif</family>
                        <family>Bitstream Vera Serif</family>
                        <family>DejaVu Serif</family>
                        ...
                </prefer>
        </alias>
        <alias>
                <family>;sans-serif</family>
                <prefer>
                        <family>Liberation Sans</family>
                        <family>Bitstream Vera Sans</family>
                        <family>DejaVu Sans</family>
                        ...
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Liberation Mono</family>
                        <family>Bitstream Vera Sans Mono</family>
                        <family>DejaVu Sans Mono</family>
                        ...
                </prefer>
        </alias>

Для того, чтобы при отображении всех элементов интерфейса Mozilla Firefox, Mozilla Thunderbird и остальных приложений, построенных на базе GTK2, использовался шрифт Liberation Sans 10, необходимо создать в домашней папке файл .gtkrc-2.0, имеющий следующее содержимое:

style "user-font"
{
    font_name="Liberation Sans 10"
}
widget_class "*" style "user-font"
gtk-font-name="Liberation Sans 10";

Для того, чтобы при отображении всех элементов интерфейса приложений пакета OpenOffice.org использовались настройки шрифтов, заданные в конфигурации KDE4, необходимо пересобрать порт OpenOffice.org с опцией WITH_KDE4:

cd /usr/ports/editors/openoffice.org-3
make -DWITH_KDE4 -DWITHOUT_GNOME LOCALIZED_LANG=ru deinstall build install clean

На этом установка и интеграция в систему шрифтов Liberation заканчивается. Остается отключить ненужные более растровые шрифты, добавив в папку /usr/local/etc/fonts/conf.d символическую ссылку на файл /usr/local/etc/fonts/conf.avail/70-no-bitmaps.conf:

cd /usr/local/etc/fonts/conf.d
ln -s ../conf.avail/70-no-bitmaps.conf

Если Вы не хотите отказываться от какого-либо растрового шрифта, например, от шрифта Terminus, (на мой взгляд, он является лучшим шрифтом для консольных приложений), необходимо добавить в файл /usr/local/etc/fonts/conf.avail/70-no-bitmaps.conf следующие строки:

 <selectfont>
  <acceptfont>
   <pattern>
    <patelt name="family">
     <string>Terminus</string>
    </patelt>
   </pattern>
  </acceptfont>
  <rejectfont>

После выполнения всех действий, описанных в данном разделе, представленный выше скриншот очень заметно изменился в лучшую сторону:

Внешний вид данного сайта после установки шрифтов Liberation

Пересборка библиотек Cairo, FreeType 2 и libXft

В связи с возможными нарушениями авторских прав многие полезные функции библиотек рендеринга шрифтов Cairo, FreeType 2 и libXft по умолчанию отключены. С учетом того, что патенты на данные функции действуют на территории США, мы можем «нарушать» их без зазрения совести. В настоящее время доступно множество патчей для библиотек Cairo, FreeType 2 и libXft. Лично я пересобирал библиотеки согласно статье ClearType-сглаживание в Linux, или шрифты как в Ubuntu, которая предлагала наложить один патч на Cairo, пять патчей на FreeType 2 (написано позже: в связи с изменениями в последних версиях FreeType 2 достаточно наложить четыре патча) и один патч на libXft. В связи с тем, что указанная статья написана достаточно подробно, мне остается привести список команд пересборки текущих версий библиотек для операционной системы FreeBSD из портов:

cd /usr/ports/graphics/cairo
make deinstall clean patch
cd work/cairo-1.10.2
fetch https://sergeysl.ru/wp-content/uploads/freebsd/cairo-cleartype.patch
patch -Np1 -i cairo-cleartype.patch
cd ../..
make install clean
cd ../../print/freetype2
make deinstall clean patch
cd work/freetype-2.4.12
fetch https://sergeysl.ru/wp-content/uploads/freebsd/freetype-2.2.1-subpixel-disable-quantization.diff \
https://sergeysl.ru/wp-content/uploads/freebsd/freetype-2.3.0-enable-spr.patch \
https://sergeysl.ru/wp-content/uploads/freebsd/freetype-2.2.1-enable-valid.patch \
https://sergeysl.ru/wp-content/uploads/freebsd/freetype-2.2.1-memcpy-fix.patch
patch -Np1 -i freetype-2.2.1-subpixel-disable-quantization.diff
patch -Np1 -i freetype-2.3.0-enable-spr.patch
patch -Np1 -i freetype-2.2.1-enable-valid.patch
patch -Np1 -i freetype-2.2.1-memcpy-fix.patch
cd ../..
make install clean
cd ../../x11-fonts/libXft
make deinstall clean patch
cd work/libXft-2.3.1
fetch https://sergeysl.ru/wp-content/uploads/freebsd/libXft-2.1.14-lcd-cleartype.patch
patch -Np1 -i libXft-2.1.14-lcd-cleartype.patch
cd ../..
make install clean

На этом настройка шрифтов в десктопных приложениях для FreeBSD заканчивается. Любителям красивых шрифтов (похожих на шрифты Microsoft Windows c включенным сглаживанием ClearType или на шрифты Ubuntu), в число которых вхожу и я, остается переключиться на Легкий хинтинг:

Внешний вид данного сайта после после установки шрифтов Liberation, пересборки библиотек и включения легкого хинтинга

Почитателям строгих, максимально четких шрифтов (похожих на классические шрифты Linux/Unix) лучше оставить Полный хинтинг:

Внешний вид данного сайта после после установки шрифтов Liberation, пересборки библиотек и включения полного хинтинга

Альтернатива пересборки библиотеки FreeType 2

Следует отметить, что альтернативой пересборки библиотеки FreeType 2, позволяющей не нарушать патенты, является включение автохинтинга, однако, на мой взгляд, с ним шрифты, особенно мелкие, выглядят значительно хуже. Если Вы все же захотите попробовать автохинтинг, добавьте в папку /usr/local/etc/fonts/conf.d символическую ссылку на файл /usr/local/etc/fonts/conf.avail/10-autohint.conf для его включения:

cd /usr/local/etc/fonts/conf.d
ln -s ../conf.avail/10-autohint.conf

Достаточно часто после активации автохинтинга жирные шрифты становятся безобразно жирными. Для того, чтобы отключить автохинтиг для жирных шрифтов, необходимо добавить в файл /usr/local/etc/fonts/conf.avail/10-autohint.conf следующие строки:

 <match>
 <match target="font">
  <test compare="more" name="weight">
   <const>medium</const>
  </test>
  <edit mode="assign" name="autohint">
   <bool>false</bool>
  </edit>
 </match>
</fontconfig>

Заключение

Я искренне надеюсь, что рекомендации, содержащиеся в данной статье, помогут Вам настроить шрифты в десктопных приложениях для FreeBSD или любой другой операционной системы семейства Linux/Unix согласно Вашим вкусам и потребностям. Я же обязательно продолжу свои эксперименты по переходу с Microsoft Windows на FreeBSD и по мере возможности буду рассказывать о том, что получилось и не получилось.

Понравилась статья?

 Подпишитесь на RSS или почтовую рассылку;

 Присоединяйтесь в Twitter, Facebook, Google+, VK;

 Поделитесь ссылкой в социальной сети или блоге:

74 комментария к “FreeBSD: Настройка шрифтов в десктопных приложениях

  1. Могу сказать только одно. Жаль что в интернете так мало таких хороших публикаций. Огромное вам спасибо!

  2. Надобы обновить,вышли свежие версии,патчи соответственно не подходят.

    • make deinstall clean patch — видимо опечатка

      Команда make deinstall clean patch удаляет порт, качает дистрибутив, распаковывает его и накладывает патчи, которые входят в состав порта. А только потом накладываются патчи, о которых написано в статье 😉

      Отличный блог!

      Спасибо 🙂

  3. автор, скажите пожалуйста, а что конкретно делает эта команда?
    make deinstall clean patch
    я так понимаю сначала порт удаляется, потом чистится… а зачем потом patch? ведь сам патч скачивается позднее и применяется понятным образом:
    patch -Np1 -i cairo-9999-cleartype.patch
    да, и еще, а можешь переделать пожалуйста команды скачивания патчей не с твоего сайта, а из офиц. источника, так солиднее смотреться будет, и надежнее. заранее спасибо.

    • автор, скажите пожалуйста, а что конкретно делает эта команда?
      make deinstall clean patch

      Уважаемый, Вы не умеете читать? Если умеете, то ответ на Ваш вопрос уже давно дан 😉

      я так понимаю сначала порт удаляется, потом чистится, а зачем потом patch? Ведь сам патч скачивается позднее и применяется понятным образом:

      К сожалению, Вы не правильно понимаете, не умеете культурно задавать вопросы и не любите читать документацию 😉

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

      Мы немного по-разному понимаем слова «солиднее» и «надежнее». А где, кстати, этот самый официальный источник? Можно ссылочку? Или Вы способны только на словестный понос? 😉

      заранее спасибо

      На здоровье 😆

      • Хм… а ведь типичный такой пионер-задрот. Надеюсь, мое объективное наблюдение только улучшит мировоззрение автора, а не покалечит его самолюбие.

        • Всяческая гомосятина, типа Вас, меня абсолютно не смущает и никогда не смущала.

          Надеюсь, мое объективное наблюдение только улучшит мировоззрение автора, а не покалечит его самолюбие.

          P.S.: Жди отключения от НовоТелекома. Я постараюсь, чтобы ты не пачкал Сеть своим присутствием.

  4. Дай бог Вам здоровья,Сергей и ещё больше статей.Уже год на 9.0,правда,после гнома,сижу на xfce-4.10.дня 2 назад по собственной ((: появились проблемы со шрифтами.Уже собрался давить на , но разобрался именно по этой Вашей статье.
    А мультимедия на фришке идёт на ура!!! Это к комментарию https://sergeysl.ru/freebsd-gnome/ 08-04-2011. Ещё раз 73! ):

  5. Выбрал время, попробовал наконец-то всю историю с пересборкой библиотек и т.д.
    А работает-то всё на славу!! Теперь даже FreeBSD Forum отображается с замечательными шрифтами, чего до сих пор добиться не удавалось никак.
    И кому интересно — подтверждаю, что всё это прекрасно работает на последней версии 9.1.

    Опять огромное спасибо автору за кропотливый труд 🙂
    Хотя сама «исходная статья» ещё где-то там существует, ссылки на патчи там давно уже мёртвые — 3 года всё же минуло!! Ищи теперь их по Инету… если бы не автор. За что и спасибо.

    • Попробовал только что, пересобрав весь десктоп теперь уже из последней версии портов. Там, похоже, изначально имеются кое-какие изменения в этой области со сдвигом в сторону лучшей подачи шрифтов. Сужу по тому, что шрифты на FreeBSD Forums сразу после установки десктопа из портов не выглядели так уродливо, как бывало до того.
      Тем не менее, пересобрал с патчами (некоторые патчи «легли» лишь частично) и снова всё выглядит вполне прилично. Ещё раз спасибо!

      • На здоровье. Действительно некоторые полезные опции рендеринга шрифтов теперь включены по умолчанию.

  6. Сергей, в вашей статье упоминается версия freetype-2.4.9,сейчас уже актуальна 2.4.12, libXft-2.1.14, актуальная версия — 2.3.1.
    Применимы ли указанные в статье патчи?

    • Все патчи актуальны, только сейчас проверил. Ленивый народ пошел, пару команд не может исправить, да и мне лень статью обновлять после каждого обновления портов. Все исправлено, спасибо, что напомнили 🙂

      • Тут дело не в лени (если вы про копипасту cd команд)
        Может там все поменялось и патчи могут что-либо поломать. Например название ‘memcpy-fix’ выглядит пугающе 🙂

        Ну раз работает, значит хорошо. Спасибо еще раз 🙂

    • А сейчас уже, после последнего обновления портов, freetype обновился до версии 2.5.0.1 — и тоже все патчи ложатся. Остальные библиотеки in question пока не обновлялись…

      А вот и наши зарубежные друзья тоже отписались на эту тему :):

  7. Ох, в принципе и без патчей все стало просто отлично.
    Наконец-то глаза просто отдыхают. Спасибо

  8. Сергей, а вы не встречались с такой проблемой у Firefox, когда на некоторых страницах при использовании кнопки ‘back’ или иногда без нее шрифты вдруг становились жирнее, но стоило немного поскролить как все приходит в норму?

    А гугле мозиловцы говорят что мол такое из-за неправильных шрифтов. Проблем только с файерфоксом и больше ничем.

  9. О программе это опера

    Информация о версии
    Версия:
    12.16
    Сборка:
    1860
    Платформа:
    FreeBSD
    Система:
    i386, 9.2-RELEASE

    Как всегда,большое спасибо, правда использовал уже liberation-fonts-ttf-2.00.1.tar.gz.
    Но вот в опере шрифты видно отвратно. В других браузерах и в системе — ок!
    Работаю as user под gnome2.

    • Как всегда,большое спасибо.

      На здоровье!

      правда использовал уже liberation-fonts-ttf-2.00.1.tar.gz.

      Я обновляю статью по мере обновления портов.

      Но вот в опере шрифты видно отвратно.

      Мне хватает Chromium’а и Firefox’а (если первый глючит, использую второй, такое бывает ооочень редко). Оперу давно снес и не представляю, что с ней сейчас.

      Работаю as user под gnome2.

      Так и должно быть.

  10. Только что заметил: у меня обновилось до freetype-2.5.2. При наложении патча freetype-2.3.0-enable-spr.patch файл, куда предназначается патч, теперь находится не в include/freetype/config, а в include/config. Когда растерянная утилита спрашивает, «which file to patch?», указал новый путь и всё легло ОК.

    • Сейчас можно обойтись без наложения патчей на библиотеки. Я сам давно перестал их накладывать, в FreeBSD 10 все выглядит очень даже неплохо.

  11. Да, именно так! Правда остановился на 9.3 и поставил и работаю (compiz+cairo). Всем очень доволен.

  12. Да, именно так и есть. Да еще на двух мониторах. MacOS отдыхает. А все началось с Вашего гнома.

  13. После последнего обновления портов заметил, что cairo-cleartype.patch больше не работает с новой версией cairo-1.12.16_1,2. Теперь уже дело не тольк в том, что половина патча не «ложится», но и результат содержит ошибки и не компилируется. Пришлось обходиться без него.

  14. Пробовал вручную править файл в согласии с патчем, вроде как куски 3,4,7,8 приходятся в другое место по сравнению с патчем, но и после ручной правки остаются где-то лишние «}». Код поменялся. Надо будет попристальнее всмотреться… слишком редко этим занимаюсь, глаз не намётан пока.

    • Я уже писал, что сейчас и без патчей все выглядит достаточно красиво. Например, в Windows 7 после FreeBSD шрифты просто отвратительные 🙁

    • Пробовал «готовый» патч 1.12.16 с арча/генты. Сам патч идет на «ура», но шрифты в итоге вообще нормально не рисуются (большие, перекрывающие друг друга буквы) 🙁

      В принципе, да — вид «из коробки» при использовании Liberation/Droid итд. вполне приличный, но вот «радужные» буквы в «экзотических» шрифтах немного раздражают.
      Если устраивает cairo 1.12.14, то есть «готовый» порт (в принципе изменены только distinfo, Makefile и /files/patch-src__cairo-ft-font.c (переделанный патч для 1.12.16)).

  15. Да, похоже, теперь патчи не очень-то уже и нужны…

    Впрочем, должен добавить одно важное наблюдение о шрифтах: в браузере firefox обязательно нужно УБРАТЬ галочку в настройках Содержимое — шрифты, где написано «разрешить веб-сраницам выбирать свои шрифты». У меня английская версия, не знаю точно русскую формулировку, но это там, где предлагается выбор шрифтов.
    По умолчанию галочка там стоит, и на целом ряде сайтов поэтому отображаются уродливые шрифты, с которыми боролись ещё на заре решения этой проблемы в Юникс-десктопах.

    • В последнее время использования FreeBSD на десктопе мне хватало установки Liberation Fonts и соответствующей корректировки файлов в папке /usr/local/etc/fonts.

  16. добрый день

    судя по всему, у вас нормально применился патч
    — libXft-2.3.1
    — libXft-2.1.14-lcd-cleartype.patch

    у меня выдает ошибку, не могли бы вы уточнить, действительно ли у вас все нормально применилось для libXft-2.3.1

    у меня не фришка, но, думаю, разници ни какой не должно быть

    • Все это делалось несколько лет назад. Давно не использую FreeBSD на десктопе (хотя отдельный HDD под нее установлен при сборке компа). Раньше следил за выходом новых патчей и обновлял статью, а потом забил на это дело. С версиями, о которых написано в статье, все работало.

  17. в том то и дело, что как раз именно эти версии у вас и указаны в статье!
    вот же выкус из вашего кода

    make install clean
    cd ../../x11-fonts/libXft
    make deinstall clean patch
    cd work/libXft-2.3.1
    fetch https://sergeysl.ru/wp-content/uploads/freebsd/libXft-2.1.14-lcd-cleartype.patch
    patch -Np1 -i libXft-2.1.14-lcd-cleartype.patch
    
  18. не посчитайте за наглость, а, проверьте?!
    не может же такое быть, что на линусе — выдает ошибку (патч а не какой то мейк)
    а на фришке все нормально…

    п.с.: потому как
    а именно:

    Because the contents of the patch have been merged into the source code of libXft since version 2.3.0. So the patch is no longer needed.

    • Не считаю за наглость, просто написал выше, что давно не использую FreeBSD на десктопе.
      А что мешает Вам поискать обновляемые патчем кусочки кода в исходниках libXft? Чтобы точно убедиться в том, что:

      Because the contents of the patch have been merged into the source code of libXft since version 2.3.0. So the patch is no longer needed.

  19. я уже давно пересобрал все три библиотеки :о) и пишу сюда потому как с библиотекой libXft дела обстоят «немного не так, как у вас написано» … а на вашу статью наткнулся по ходу серфинга…

    поэтому и не помешало бы поправить «некоторые моменты», что бы не вводить других пользователей в заблуждение, а то потеряют пол дня на поиски в инете ответа… вам же помогают …

    удачи

    п.с. и да, действительно libXft-2.3.х не требуют патча

    • Знаете, я подзабил на сайт в силу различных обстоятельств, и поправлять ничего не буду, особенно если учесть, что наложение патчей давно не актуально. Всегда смотрите на даты подобных статей и помните, что в IT все очень быстро меняется. Здесь несколько лет нет свежих статей, а несвежие постепенно устаревают. У меня пропало желание поддерживать их в актуальном состоянии, не могу ничего с собой сделать 🙂

      удачи

      Спасибо!

  20. п.с.2
    проверить, как накладывается патч (без дальнейшей сборки пакета) можно практически на любой операционке (линух, фришка, макось, винда…) — это же обычные исходники, текстовые файлы

    • Вы открыли мне глаза на жизнь? У меня есть все перечисленное, кроме МакОСи, но нет десктопа с FreeBSD, а накладывать патчи ради наложения патчей, имхо, глупо.

  21. в патче нет

    #ifdef XXX_OS_VER_XXX
    

    поэтому он одинаково «ложится» под любыми операционками

    • Еще одно открытие. Только я не изобретатель велосипедов. Когда-то не понравились дефолтные шрифты, разобрался, как их поправить (скриншоты приложены), а оснований лезть в код никогда не возникало, хватало сообщений команды patch.

  22. > накладывать патчи ради наложения патчей, имхо, глупо.
    > хватало сообщений команды patch

    вот результат наложения патча
    — libXft-2.1.14-lcd-cleartype.patch
    на
    — libXft-2.3.1

    patching file src/xftfreetype.c
    Hunk #1 FAILED at 584.
    1 out of 1 hunk FAILED -- saving rejects to file src/xftfreetype.c.rej
    patching file src/xftglyphs.c
    Hunk #1 FAILED at 27.
    Hunk #2 FAILED at 53.
    Hunk #3 succeeded at 404 (offset 259 lines).
    Hunk #4 FAILED at 446.
    Hunk #5 FAILED at 467.
    Hunk #6 FAILED at 546.
    Hunk #7 succeeded at 434 (offset 53 lines).
    Hunk #8 FAILED at 446.
    Hunk #9 FAILED at 464.
    Hunk #10 FAILED at 583.
    8 out of 10 hunks FAILED -- saving rejects to file src/xftglyphs.c.rej
    

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

    ДЛЯ ТЕХ,КТО БУДЕТ ИСКАТЬ ИНФОРМАЦИЮ ПО CLEARTYPE-патчам
    libXft-2.3.х не требуют патча — подробности

    есть другой патч, но он не является «clerartype» патчем
    libXft-2.3.1-freetype_fix-1.patch

    • Проверил (FreeBSD 9.3-RELEASE-p25 FreeBSD 9.3-RELEASE-p25 #1 r287826), сообщения аналогичны:

      —————————
      |diff -uNr libXft-2.1.14-orig/src/xftfreetype.c libXft-2.1.14/src/xftfreetype.c
      |— libXft-2.1.14-orig/src/xftfreetype.c 2009-01-30 00:19:09.000000000 +0100
      |+++ libXft-2.1.14/src/xftfreetype.c 2009-10-23 00:31:07.688061451 +0200
      —————————
      Patching file src/xftfreetype.c using Plan A…
      Hunk #1 failed at 584.
      1 out of 1 hunks failed—saving rejects to src/xftfreetype.c.rej
      Hmm… The next patch looks like a unified diff to me…
      The text leading up to this was:
      —————————
      |diff -uNr libXft-2.1.14-orig/src/xftglyphs.c libXft-2.1.14/src/xftglyphs.c
      |— libXft-2.1.14-orig/src/xftglyphs.c 2009-01-30 00:19:09.000000000 +0100
      |+++ libXft-2.1.14/src/xftglyphs.c 2009-10-23 00:31:07.688061451 +0200
      —————————
      Patching file src/xftglyphs.c using Plan A…
      Hunk #1 failed at 27.
      Hunk #2 failed at 53.
      Hunk #3 succeeded at 404 (offset 259 lines).
      Hunk #4 failed at 446.
      Hunk #5 failed at 467.
      Hunk #6 failed at 546.
      Hunk #7 succeeded at 434 (offset 53 lines).
      Hunk #8 failed at 446.
      Hunk #9 failed at 464.
      Hunk #10 failed at 583.
      8 out of 10 hunks failed—saving rejects to src/xftglyphs.c.rej
      done

      Два исправления все же внесены, библиотека собиралась и культурно работала. Сказать, что патч ничего не делает, я не могу. Так что же он делает? Проясните ситуацию как человек, разбирающийся в программировании! Ответ мне не интересен, но спасите коллег от поисков в Интернетах 😉

    • Статья устарела. Внимательные люди увидят Вашу ссылку и мой ответ, и не будут делать лишние телодвижения.

  23. Внимательные люди увидят Вашу ссылку и мой ответ, и не будут делать лишние телодвижения

Оставить комментарий