geekkoo - Post a comment [entries|archive|friends|userinfo]
geekkoo

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Техническое: "из каропки" или чтобы работало... Feb. 27th, 2007|03:37 pm

geekkoo
... или стратегия "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, хотя тоже жалуется, но буковку эту отображает.
Ну, и кто тут "маздай"?
Link Read Comments

Reply:
From:
(will be screened)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Username:
Password:
Subject:
No HTML allowed in subject
Message: