Релиз системы печати CUPS 2.3 с изменением лицензии на код проекта

Спустя почти три года с момента формирования прошлой значительной ветки компания Apple представила выпуск свободной системы печати CUPS 2.3 (Common Unix Printing System), используемой в macOS и большинстве дистрибутивов Linux. Разработку CUPS полностью контролирует компания Apple, которая в 2007 году поглотила компанию Easy Software Products, создавшую CUPS.

Начиная с данного выпуска лицензия на код изменена с GPLv2 и LGPLv2 на Apache 2.0, что позволит сторонним компаниям использовать код CUPS в своих продуктах, без необходимости открытия вносимых изменений, а также даст возможность добиться лицензионной совместимости с другими открытыми проектами Apple, такими как Swift, WebKit и mDNSResponder. Лицензия Apache 2.0 также явно определяет передачу прав на запатентованные технологии вместе с кодом. Негативным последствием смены лицензии с GPL на Apache является потеря лицензионной совместимости с проектами, поставляемыми только под лицензией GPLv2 (лицензия Apache 2.0 совместима с GPLv3, но несовместима с GPLv2). Для обхода данной проблемы в лицензионное соглашение добавлено специальное исключение для кода под лицензиями GPLv2/LGPLv2.

Основные изменения в CUPS 2.3:

  • Добавлена поддержка преднастроек и атрибута «finishing» в шаблонах заданий печати для протокола IPP Everywhere, который предоставляет средства для динамического выбора доступного принтера в сети, позволяет определять наличие принтеров, отправлять запросы и выполнять операции по выводу на печать, как напрямую, так и через промежуточные хосты;
  • В состав включена новая утилита ippeveprinter с реализацией простого сервера IPP Everywhere, который можно использовать для тестирования клиентского ПО или для выполнения команд для каждого выводимого на печать задания;
  • В команде lpstat реализовано отображения состояния приостановки новых заданий вывода на печать;
  • В библиотеку libcups добавлена поддержка аутентификации HTTP Digest и SHA-256;
  • В реализации протокола совместного доступа к принтерам Bonjour обеспечено использование имён DNS-SD при регистрации принтера в сети;
  • В утилиту ipptool добавлена возможность записи файлов атрибутов ippserver;
  • В директиву SSLOptions добавлена поддержка опций MinTLS и MaxTLS для выбора используемых версий TLS;
  • В «client.conf» добавлена поддержка директивы UserAgentTokens;
  • Обновлён сервис systemd для запуска cupsd;
  • В команде lpoptions появилась возможность работы с принтерами IPP Everywhere, не добавленными в локальные очереди печати;
  • В драйвер IPP Everywhere добавлена корректная поддержка принтеров с режимом печати на лицевой стороне;
  • Добавлены правила для учёта особенностей USB-принтеров Lexmark E120n, Lexmark Optra E310, Zebra, DYMO 450 Turbo, Canon MP280, Xerox и HP LaserJet P1102;
  • Устранены уязвимости CVE-2019–8696 и CVE-2019–8675, приводящие к переполнению отведённого под стек буфера при обработке некорректных данных в функциях asn1_get_packed и asn1_get_type, используемых при обработке запросов SNMP;
  • Удалены утилиты cupsaddsmb и cupstestdsc.

© OpenNet