Спустя почти три года с момента формирования прошлой значительной ветки компания Apple представила (https://www.cups.org/blog.html) выпуск свободной системы печати CUPS 2.3 (https://www.cups.org/) (Common Unix Printing System), используемой в macOS и большинстве дистрибутивов Linux. Разработку CUPS полностью контролирует компания Apple, которая в 2007 году поглотила (https://www.opennet.dev/opennews/art.shtml?num=11392) компанию 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.Основные изменения (https://www.cups.org/doc/relnotes.html) в CUPS 2.3:
- Добавлена поддержка преднастроек и атрибута "finishing (https://ftp.pwg.org/pub/pwg/candidates/cs-ippfinishings20-20... в шаблонах заданий печати для протокола IPP Everywhere (https://www.pwg.org/ipp/everywhere.html), который предоставляет средства для динамического выбора доступного принтера в сети, позволяет определять наличие принтеров, отправлять запросы и выполнять операции по выводу на печать, как напрямую, так и через промежуточные хосты;- В состав включена новая утилита ippeveprinter (https://www.cups.org/doc/man-ippeveprinter.html) с реализацией простого сервера IPP Everywhere, который можно использовать для тестирования клиентского ПО или для выполнения команд для каждого выводимого на печать задания;
- В команде lpstat реализовано отображения состояния приостановки новых заданий вывода на печать;
- В библиотеку libcups добавлена поддержка аутентификации HTTP Digest и SHA-256;
- В реализации протокола совместного доступа к принтерам Bonjour (http://ru.wikipedia.org/wiki/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 (https://security-tracker.debian.org/tracker/CVE-2019-8696) и CVE-2019-8675 (https://security-tracker.debian.org/tracker/CVE-2019-8675), приводящие к переполнению отведённого под стек буфера при обработке некорректных данных в функциях asn1_get_packed и asn1_get_type, используемых при обработке запросов SNMP;- Удалены утилиты cupsaddsmb и cupstestdsc.
URL: https://www.cups.org/blog.html
Новость: https://www.opennet.dev/opennews/art.shtml?num=51349
> Негативным последствием смены лицензии является потеря лицензионной совместимости с проектами, поставляемыми только под лицензией GPLv2И в чём суть то объясните? Ну вот есть этак Fedora/Ubuntu. Их же это не касается?
Дочитайте абзац в новости до конца.
Это никого не касается, потому что в текст новой лицензии добавлено исключение для GPLv2, о чём сказано в следующем предложении.
> позволит сторонним компаниям использовать код CUPS в своих продуктах, без необходимости открытия вносимых измененийа когда коснется, то это же будет еще не скоро, так что ли?
ну и классика — ну и пусть, сами себе буратины?
Объясните нубасу, а как это вообще возможно провернуть легально, без переписывания ВСЕГО кода?
ведь в версии 2.3 остались фрагменты кода из прошлой версии, лицензированной под GPL, а значит и текущая версия должна быть вся под GPL?
Я понимаю что я упускаю какой-то важный нюанс, но не вижу, какой.
Для смены лицензии нужно согласие всех авторов.
Спасибо большое за важное уточнение.
А ничего что лицензию меняет владелец этого кода? Пред. версии как были под GPL так и останутся.
Ты упускаешь то, что владелец прав на код может менять лицензию по своему усмотрению в любой момент. Или вешать на один и тот же продукт несколько лицензий сразу (как у Qt). Просто эта смена лицензии не будет влиять на версии, выходившие ранее под другой лицензией.
Соответственно, раз у Aplle есть права на весь код CUPS (то есть в проекте нет кода сторонних разработчиков), они могут менять что и когда хотят.
>> Просто эта смена лицензии не будет влиять на версии, выходившие ранее под другой лицензией.this
Лицензию старых версий никто не меняет. Старый код будет доступен под старой лицензией (пусть и в другом тарболе), а новый будет уже под новой.
Простите а как теперь отличить старый код от нового? Если в предельном случае, например (условно) кроме изменения лицензии с 2.2 до 2.3 другого диффа не было?
Я пирачу старую версию, а на возможные обвинения говорю, что использую новую, пермиссивную.
что-то что-то ты там пиратишь? gplv2?
>Я пирачу старую версию, а на возможные обвинения говорю, что использую новую, пермиссивную.Использовать старую версию с нарушением лицензии вместо новой пермиссивной - для этого надо бы феерическим д-бом.
Хорошо, я вас понял. Возник следующий вопрос:
Допустим, я решил позаимствовать 1 файл из этого проекта. И так получилось, что между версиями 2.2 и 2.3 он не менялся.
Получается, я могу теперь закрыть исходники, ведь никто не сможет доказать, что я именно GPL-ную версию спиратил, раз они идентичны?
Ты можешь заимствовать любой код, который есть в версии 2.3, вне зависимости от того, был ли он в более ранних версиях, и изменялся ли к нынешней. Вот если код был в 2.2, а 2.3 его уже не стало (маловероятно, наверное) — тогда облом.
В шапке файла комментарий с лицензией. Если там гпл, то ты в пролете.>И так получилось, что между версиями 2.2 и 2.3 он не менялся.
Он менялся, лицензию поменяли.
Ну если они идентичны, то какой разговор вообще? XD
Очень просто - потребовать от контрибьюторов передачу копирайтов.
> Очень просто - потребовать от контрибьюторов передачу копирайтов.Они могут отказаться, и тогда вам придётся выпиливать их коммиты. Так что не всегда просто.
Поэтому многие коммерческие конторы принимают коммиты только вместе с передачей авторских прав на них.
>Поэтому многие коммерческие конторы принимают коммиты только вместе с передачей авторских прав на них.Это и имелось в виду.
Опять к форку приведут.
Хорошо бы.
В связи с тем, что "Разработку CUPS полностью контролирует компания Apple" это будет позитивным шагом.
Не переживайте, форк будет кривой и нерабочий, и пользоваться им никто не будет.
Собственно, как 90% свободного софта. К сожалению.
Статистика с опеннета подъехала
И, тем не менее, 90% посетителей Опеннета свободным софтом пользуются.
Всего-то 90% это неплохой показатель. В коммерческом секторе все значительно грустнее.
с чего это он будет нерабочий из-за моего изменения в README.md ?
У вас столько орфографических ошибок в Code-Of-Conduct.md ...
Ха, то, что сетевая служба до сих пор работает от рута никого не смущает?))
> Ха, то, что сетевая служба до сих пор работает от рута никого не смущает?))А мужики-то и не знали..
> https://git.archlinux.org/svntogit/packages.git/tree/trunk/P...
>> install -Dm644 "$srcdir"/cups.sysusers "${pkgdir}/usr/lib/sysusers.d/$pkgname.conf"
>> sed -i "s:#User 209:User 209:" ${pkgdir}/etc/cups/cups-files.conf{,.default}
>> sed -i "s:#Group 209:Group 209:" ${pkgdir}/etc/cups/cups-files.conf{,.default}
Так файлы да, под lp лежат, а процесс cupsd так и работает под рутом.На вопрос "с хера ли", который я задавал Michel R Sweet (Сладенькому Мише - тот, кто релизы CUPS'а пилит), получил ответ - "Потому что так проще".
Пацаны вроде настало время послать Apple в одно место и занятся форком?! Форк должен иметь лицензию GPL v.3+
Займись, а мы посмотрим на твои результаты. Да и если ты хотя бы новость прочитал - то узнал бы, что Apache 2.0 совместима с GPLv3.
Ага, а еще "позволит сторонним компаниям использовать код CUPS в своих продуктах, без необходимости открытия вносимых изменений". Я так понимаю, что сама Apple тоже попадает под это определение. И собсно ради этого все и затевалось
Ради чего? Коммитить в апстрим тебя никто не заставляет. Что до совместимости Apache 2.0 с GPLv3 — она односторонняя. Ты сможешь форкнуть CUPS под GPLv3, а вот забрать себе код, написанный в рамках этого GPLv3-форка, под Apache 2.0 будет уже нельзя.
Затевалось это потому, что использовать гпэльный проект многим компаниям не хочется. А если проект под апаче, то они начнут его использовать. А поскольку идеального ничего нет, а свой форк поддерживать не хочется, придётся вливать хотя бы часть своих изменений в апстрим, чтобы поддержка совместимости с ними была головной болью Apple и контрибьюторов, а не владельца форка.
Они и так могли это делать, так как авторские права принадлежат им. Теперь ассиметрия прав в сторону Apple ликвидируется, и у других компаний будет больше мотивации участвовать в разработке CUPS.
>Форк должен иметь лицензию GPL v.3+Когда лицензия на CUPS была GPL 2.0, то нельзя было форкнуть под GPL 3.0(+). А вот из под Apache 2.0 можно. Так что Apple сама тебе возможность форка обеспечила.
Посоны, правильно ли я понимаю, что теперь "использовать код CUPS в своих продуктах, без необходимости открытия вносимых изменений" может и сама Apple? Правильно ли я понимаю, что ради этого все и делалось?
Они и раньше могли, т.к. код принадлежит им.
Вы таки хотите сказать, что я могу использовать для продукта лицензию GPL и дальше забить на ее требования отдавать исходники при дистрибуции бинарей?Прописываю срочный сеанс у тов. Столлмана, благо он еще не уехал.
Как собственник кода, ты можешь делать со _своим_ кодом что хочешь, независимо от того, плд какими условиями ты лицензиркешь этот код _всем остальным_
Да можешь, конечно. Но если кому-то _уже отдал_ данный код на условиях GPL - придется выполнить все условия этой лицензии. Доступно?
Никакая лицензия не может остановить [единоправного] владедьца кода от ее замены. Это не контракт и не договор, это условия распространения и использования
Как и не сможет остановить от лицензирования на других/специальных условиях каким-то конкретным лицам и от использования в собственных целях
Да. За нарушение своих авторских прав можешь подать в американский суд сам на себя.
> Разработку CUPS полностью контролирует компания Apple, которая в 2007 году ..Вот не знал. Хотя в последний раз что-то распечатывал примерно в те же года))