Журнал «Компьютерра» № 6 от 14 февраля 2006 года
Шрифт:
Этого, однако, нельзя сказать о частях GPL3, устанавливающих новые нормы и принципы. Тут хватает и многословия, и косноязычия, а кое-где и вовсе трудно понять, что имеется в виду. Таких мест, впрочем, немного. Большая часть изменений посвящена кодификации того, что и прежде считалось общепринятым, а теперь вот еще и официально закреплено.
GPL3 делает различие между «распространением», при котором пользователь копирует или передает готовые копии программы кому-нибудь другому, и личным использованием, при котором все создаваемые копии остаются в частном
Раздел 7, «Совместимость лицензий» вводит целую систему дополнительных условий – разрешений и ограничений, которые можно добавлять к GPL3 без потери совместимости с другим кодом под GPL3 же. Разрешения (дополнительные права, передаваемые пользователю) могут быть какие угодно (что и раньше практиковалось, в том числе и самим FSF), ограничения же должны быть одного из пяти типов:
a) Требование делать некоторые предупреждения юридического и информационного характера. Например, об авторстве программы.
b) Заявления об отказе от гарантий может быть сформулировано иными словами, чем в самой GPL.
c) Запрет на упоминание определенных имен (торговых марок) в рекламе.
d) Требование, чтобы программа имела функцию, позволяющую пользователю получить ее исходный код.
e) Допустимы также некоторые ограничения, касающиеся патентных войн. Подробности – ниже.
Практически это означает, что GPL3 становится совместим с лицензиями таких важных свободных программ, как XFree86, OpenSSL, Eclipse, Apache.
Специальные усилия были приложены, чтобы добиться совместимости с вызвавшей немало споров лицензией Affero GPL (пункт d), хотя, на мой взгляд, оно того не стоило.
Большое внимание GPL3 уделяет борьбе с софтверными патентами. Во времена написания GPL2 софтверные патенты выглядели как временное и случайное извращение. Сейчас это опасность, заботящая большинство программистов во многих странах мира.
По сравнению с детально проработанными патентными нормами таких новейших лицензий, как IBM Public License или Apache Software License, патентная часть GPL3 выглядит набором общих фраз. Но софтверные патенты – сущность противоречивая. И слишком сильно полагаться на ту или иную их рационализацию неразумно.
Во-первых, GPL3 подчеркивает, что в число передаваемых прав входят и любые патенты, связанные с программой, и что, следовательно, всякий, кто распространяет программу, опираясь на GPL, отказывается от всяких патентных претензий по поводу всех прошлых и будущих ее версий.
Во-вторых, GPL3 разрешает делать исключения из этого правила для защиты в патентных войнах. Патентные войны ведутся по принципу «сам такой!». Как только крупной фирме другая крупная фирма предъявляет обвинение в нарушении патента, первая фирма смотрит в своем патентном портфеле и тоже обвиняет вторую фирму в нарушении какого-нибудь патента. Той приходится сбавлять обороты и
Теоретики свободного софта спорят о допустимой форме «патентной контратаки» (patent retaliation): допустима ли защита от всех патентов, всех софтверных патентов или только от патентов, затрагивающих данную программу; должна ли контратака выражаться в отмене всей лицензии или только патентной ее части. GPL придерживается консервативного подхода – сама не устанавливает никаких санкций, а только позволяет вводить их в качестве дополнительных условий, чтобы обеспечить совместимость с наиболее важными свободными лицензиями, такие санкции практикующими.
Другая угроза свободному софту – DRM/TC. DRM – это, грубо говоря, средство, ограничивающее пользователя в доступе к информации, отключение или обход которого запрещены законом.
Предполагается, что оно служит благой цели, защищает права или что-то в этом роде. Что именно – в закон внести обычно забывают. Нет, не случайно. Я бы сказал, изощренно забывают.
Представьте, что законодатели запретили срывать или взламывать замки. Любые замки, независимо от того, кому принадлежит замок и дверь. Успевший первым навесить на чужое имущество побольше замков – диктует остальным свои условия. Это и есть аналогия DRM. Не аналогия даже – на некоторые настоящие замки DRM распространяется именно таким образом. DRM, очевидно, принципиально несовместим со свободным софтом.
ТС – Treacherous Computing – DRM, встроенный в компьютер на уровне железа так, что запустить на нем можно только софт, подписанный обладателем секретного цифрового ключа. Много шуму вызвало DRM/TC видеоплейера TiVo, где в качестве софта использовалась Linux. Требования GPL2 соблюдались, исходные тексты были предоставлены – но без секретного ключа они совершенно бесполезны, ни изменить, ни перекомпилировать их бинарники невозможно.
Соответственно, в GPL3 появилось уточнение, что полный соответствующий исходный код для бинарника должен включать все необходимое для компиляции и запуска, в том числе и модифицированного.
Кроме того, заявлено, что никакая программа, опубликованная под GPL3, не может считаться реализацией DRM. Иными словами – любую мешающую пользователю функциональность GPL3-программы можно убрать. Или же написать заново программу, осуществляющую доступ к той же самой информации.
Здесь FSF вступил на почву, еще совершенно неизвестную для публичных софтверных лицензий, и неудивительно, что именно эти нормы вызвали наибольшую критику.
Переполох наделало резкое письмо Линуса Торвальдса с заявлением, что ядро Linux никогда не перейдет на GPL3. Его позицию, в целом можно свести к следующим тезисам:
1) Требование о предоставлении всех необходимых для компиляции и запуска программы кодов и шифров – безумно.
2) Не только его, Линуса, собственный код, но и вообще весь код, для которого авторами специально не указана возможность апгрейда лицензии, лицензирован под GPL2 и только под ней.
Второй пункт касается толкования действующей GPL2, и здесь, думаю, прав не Торвальдс, а Кокс. А вот первый, несмотря на резкость его формулировки, действительно затрагивает большую проблему с анти-DRM’ными нормами GPL3.