| Техническое: "из каропки" или чтобы работало... |
Feb. 27th, 2007|03:37 pm |
... или стратегия "incompatible changes" живёт и побеждает.
Под Линуксом есть две системы печати - старая BSD-like LPD (которая
нынче представлена LPRNG) и более новая CUPS. По идее работают они
практически одинаково, снаружи клиенты стучатся на порт,
соответствующий принтер-демон просыпается, принимает данные, пропускает
через фильтр, который в зависимости от типа поступивших данных и типа
принтера пропускает данные через ghostscript с определенными опциями и
результат отправляет на порт печатающего устройства. Разница только в
том, что старый LPRng действует строго в соответствиями с заветами
отцов-основателей Уникса, т.е. демон, фильтр, ghostscript и драйвер
печатающего устройства - это всё разные процессы:, которые тем не менее
как-то между собой взаимодействуют и худо-бедно результат налицо.
Другое дело, что это взаимодействие надо наладить. Фильтр на самом деле
прилагается к LPRng, но ghostscript нужно брать у одной старой и
почтенной конторы отдельно (AFPL/GPL ghostscript). Эта контора делает
этот ghostscript уже лет 20, все к ней привыкли и никого, по-моему, эта
процедура напрягать не должна.
Но вот в последнее время среди униксоидов появилась мода - чтобы все
'работало из каропки', т.е. сразу. LPRng очевидным образом этому
требованию не удовлетворяет. Поэтому создали систему печати CUPS
(Common Unix Printer System), все в одном. В начале оно действительно
было всё в одном, даже в ней был свой собственный вариант ghostscript,
старый и хромой, но зато из каропки. Вообщем-то это было плохое
решение, поскольку ghostscript так или иначе ещё много где требуется,
например для отображения postscript файлов на экране. Так что
приходилось держать в системе два ghostscriptа - один в CUPSе, другой -
нормальный GPL-ный для всего остального. Поэтому со временем,
разработчики CUPSа под давлениемпользователей от этого решения
отказались и вернулись к внешнему ghostscriptу.
Но тока design flaw был уже сделан, и выяснилось, что CUPS с нормальным
ghostscriptom работать уже не может! Так что разработчикам СUPS
пришлось форкнуть ghostscript и вести отдельную ветку (ESP
ghostscript). Она по-прежнему старая, кривая, но зато своя ;( Но
поскольку CUPS уже зацепился в Линукс-дистрибутивах, то из
дистрибутивов стали выкидывать AFPL/GPL ghostscript и заменять его на
ESP ghostscript.
А он старый и глючный. Вот и недавно у меня он отказался отображать
русскую букву "щ" из truetype шрифта Gentium. Жалуется, что ему
какие-то инструкции оттуда непонятны. А GPL ghostscript, хотя тоже
жалуется, но буковку эту отображает.
Ну, и кто тут "маздай"?
|
|