Изменения в лицензировании Qt. Добавлена поддержка лицензии LGPL v3

20 лет назад был основан Trolltech — компания, создавшая Qt. Одним из основополагающих принципов было предоставление Qt как бесплатной технологии для open source сообщества. В своих ранних версиях Qt ограничивался поддержкой только Unix/Linux платформ и X11, как оконной подсистемы. За прошедшие годы все больше и больше платформ поддерживалось в открытой версии Qt. В тоже время менялись и лицензии, под которыми был доступен Qt. Исходный код первой версии — Qt 1.x, был доступен под довольно строгой лицензией. С выходом Qt2 произошел переход на лицензию QPL. Спустя несколько лет, с выходом Qt4.0, Qt стал доступен под лицензией GPL v2, избавившись от некоторых лицензионных конфликтов между приложениями с GPL лицензией и QPL.

После создания лицензии GPL v3 и ее публикации последовали переговоры Trolltech с Фондом свободного программного обеспечения (Free Software Foundation — FSF), вследствие чего эта лицензия была добавлена как опциональная, по которой может распространяться Qt. Наконец, в 2009 году Nokia добавила лицензию LGPL v2.1 как еще одну лицензию, по которой вы могли использовать Qt.

Для GNU лицензий очень важна концепция копилефта (copyleft) — возможность для пользователей иметь доступ и права на исходный код приложения и библиотек. Это было направлено на защиту свободы пользователя изменять приложение и библиотеки приложения с возможностью запускать это модифицированное приложение.

Однако, по мнению множества специалистов, в лицензии LGPL v2.1 имеется лазейка — нет четко сформулированного требования возможности запуска приложений, использующих измененную версию библиотеки. Эта лазейка широко применяется многими компаниями, которые создают заблокированные (locked-down) устройства — несмотря на то, что это противоречит всем намерениям и основам LGPL. Если устройство использует программное обеспечение под лицензией LGPL v2.1 — пользователь не сможет установить модифицированную версию библиотеки на устройство и использовать ее вместе с другим ПО, установленным на устройстве.

Digia также рассматривает заблокированные пользовательские устройства, которые используют LGPL версию Qt, наносящими ущерб всей экосистеме Qt: устройство закрыто для сторонних разработчиков и тем самым не способствует как увеличению сообщества Qt, так и числу устройств, которые могут быть выбраны Qt разработчиками для своих приложений. Кроме того, не помогая росту сообщества Qt, такие компании не финансируют дальнейшее развитие Qt.

По этим причинам Digia полагает, что лицензия LGPL v2.1 не способна защитить свободу пользователей, как было задумано Фондом свободного программного обеспечения. Для исправления этой ситуации, Фонд свободного программного обеспечения создал лицензию LGPL v3 — лицензию, способную выполнить объявленное в предыдущей версии: защитить свободу пользователя.

Изменения в релизе Qt 5.4, связанные с лицензией LGPLv3 В связи с вышесказанным, сегодня Digia объявляет о включении LGPLv3 в качестве варианта лицензирования Qt 5.4, в дополнение к LGPLv2.1. В настоящее время все модули, являющиеся частью Qt 5.3, доступны по условиям LGPLv2.1, GPLv3 и коммерческой лицензий. Начиная с Qt 5.4, все эти модули будут доступны по LGPLv2.1, LGPLv3 и коммерческой лицензией. Однако, в Qt 5.4 будут доступны несколько новых модулей, которые будут выпущены только под LGPLv3 или коммерческой лицензией.

Digia уже обсудила данный вопрос с KDE Free Qt Foundation и получили их поддержку для внесения этих изменений в Qt 5.4, также продолжит переговоры с ними о дальнейшем укреплении данного соглашения.

Новые модули доступные под LGPLv3 лицензией В Qt 5.4 будет доступен новый модуль Qt WebEngine, распространяемый по лицензии LGPLv3 для open source версии Qt и по LGPLv2.1/коммерческой лицензии для пользователей Qt Enterprise.

Добавление лицензии LGPLv3 также позволит нам выпустить несколько других модулей. Например, в Qt5.4 в рамках лицензии LGPLv3 мы представим технологическое превью двух новых модулей Qt: Qt Canvas3D и Qt WebView.

Первый модуль Qt Canvas3D приносит поддержку WebGL внутри Qt Quick. Этот модуль уже полностью работоспособен, но имеет статус «предварительной версии» — поддержка типизированных массивов (typed arrays) JavaScript все еще достаточно медленная и не 100% совместимая.

Второй модуль представляет собой легковесный WebView, также со статусом «предварительная версия». Этот модуль поддерживает встраивание нативных web движков операционной системы, на которой запускается Qt приложение. На текущий момент поддерживается платформа Android.

И наконец четвертое дополнение, которые будет выпущено под LGPLv3 лицензией — Qt Quick Controls для Android — элементы интерфейса для native look and feel (соответствующие родным элементам Android платформы). Этот модуль не может быть выпущен в рамках лицензии LGPLv2.1 — т.к. в нем используется код под лицензией Apache 2.0 (лицензия не совместимая с LGPLv2.1, но совместимая с LGPLv3).

Если вы используете Qt в рамках коммерческой лицензии (являетесь пользователем enterprise лицензии Qt) — то для вас ничего не изменится. Если вы используете Qt под лицензией GPLv3 — эти изменения вас не затрагивают, т.е. лицензия LGPLv3 всегда может быть преобразована в GPLv3. Все модули, существующие в Qt 5.3, по-прежнему будут доступны под LGPLv2.1 лицензией. Т.е. если вы используете Qt под GPLv2 или LGPLv2.1 лицензиями, ничего для вас не меняется до тех пор, пока вы не используете модули, доступные только под LGPLv3 лицензией. Если вы начинаете использовать эти модули — весь ваш исходный код подпадает под условия LGPLv3 лицензии. Релиз Qt 5.4 Alpha запланирован на 22 августа и все указанные изменения вступят в силу с этого дня.

CTO Digia Lars Knoll полагает, что добавление LGPLv3 как новой опции лицензирования пойдет на пользу как Qt, так и всему open source сообществу. LGPLv3 более четко выражает намерения LGPL лицензии и ее использовании в СПО.

©  OpenNet