Компания Digia объявила о включении LGPLv3 в число лицензий, под которыми будет распространяться Qt начиная с выпуска 5.4. В настоящее время все модули, являющиеся частью Qt 5.3, доступны под лицензиями LGPLv2.1, GPLv3 и коммерческой лицензии. Начиная с Qt 5.4, все эти модули будут доступны под LGPLv2.1, LGPLv3 и коммерческой лицензией. Кроме того, в Qt 5.4 будет добавлено несколько новых модулей, распространяемых только под LGPLv3 или коммерческой лицензией. Компания Digia уже обсудила данный вопрос с KDE Free Qt Foundation и получила поддержку данной организации для внесения лицензионных изменений в Qt 5.4.
Разработчики проекта KDE приветствовали данное изменение, так как теперь снимается ограничение, запрещающее перенос кода из Qt в KDE. Ранее код Qt поставлялся только под LGPLv2.1, а в KDE допускается использование не только LGPLv2.1, но и LGPLv3. Код новых модулей, которые будут поставляться только под LGPLv3, по-прежнему не сможет быть перенесён в KDE из-за его несовместимости с GPLv2.
Только под лицензией LGPLv3 будут распространяться следующие модули:
- Qt WebEngine - основанный на браузерном движке Blink компонент для использования браузерного движка в Qt-приложениях, идущий на смену Qt WebKit. Модуль будет распространяться под лицензией LGPLv3 для открытой версии Qt и под LGPLv2.1/коммерческой лицензии для пользователей Qt Enterprise.
- Qt Canvas3D - добавляет поддержку WebGL внутри Qt Quick. Этот модуль уже полностью работоспособен, но имеет статус «предварительной версии» - поддержка типизированных массивов (typed arrays) JavaScript все еще достаточно медленная и не на 100% совместимая.
- Qt WebView - предоставляет средства для встраивания нативных web-движков операционной системы, на которой запускается Qt приложение. Модуль пока доступен для платформы Android и имеет статус предварительной версии.
- Qt Quick Controls для Android – элементы интерфейса, соответствующие родным элементам платформы Android. Этот модуль не может быть выпущен в рамках лицензии LGPLv2.1 – так как в нем используется код под лицензией Apache 2.0 (лицензия не совместимая с LGPLv2.1, но совместимая с LGPLv3).
Изменение лицензии никак не отразится на пользователях коммерческой лицензии Qt и лицензии GPLv3 (лицензия LGPLv3 может быть преобразована в GPLv3). Все модули, существующие в Qt 5.3, по-прежнему будут доступны под лицензией LGPLv2.1. Пользователей, использующих Qt под лицензиями GPLv2 или LGPLv2.1, изменения не коснутся до тех пор, пока не используются модули, доступные только под лицензией LGPLv3. В случае применения этих модулей весь исходный код проекта подпадает под условия лицензии LGPLv3 (LGPLv3 не может использоваться в проектах только под лицензией GPLv2, при этом данное ограничение не действует для проектов под GPLv2+ и LGPLv2.1+). Все лицензионные изменения вступят в силу 22 августа, в момент выхода первой альфа версии Qt 5.4.
20 лет назад был основан Trolltech – компания, создавшая Qt. Одним из основополагающих принципов было предоставление Qt как бесплатной технологии для сообщества разработчиков СПО. В своих ранних версиях Qt ограничивался поддержкой только Unix/Linux платформ и X11, как оконной подсистемы. За прошедшие годы все больше и больше платформ поддерживалось в открытой версии Qt. В то же время менялись и лицензии, под которыми был доступен Qt. Исходный код первой версии – Qt 1.x, был доступен под довольно строгой лицензией. С выходом Qt2 произошел переход на лицензию QPL. Спустя несколько лет, с выходом Qt4.0, Qt стал доступен под лицензией GPLv2, избавившись от некоторых лицензионных конфликтов между приложениями с лицензией GPL и QPL.
После создания лицензии GPLv3 и ее публикации последовали переговоры Trolltech с Фондом свободного программного обеспечения (Free Software Foundation – FSF), вследствие чего эта лицензия была добавлена как опциональная, под которой может распространяться Qt. Наконец, в 2009 году компания Nokia добавила лицензию LGPLv2.1 как еще одну лицензию, под которой можно использовать Qt.
Для лицензий GNU очень важна концепция копилефта (copyleft) – возможность для пользователей иметь доступ и права на исходный код приложения и библиотек. Это было направлено на защиту свободы пользователя изменять приложение и библиотеки приложения с возможностью запускать это модифицированное приложение.
Однако, по мнению некоторых специалистов, в лицензии LGPLv2.1 имеется лазейка – нет четко сформулированного требования возможности запуска приложений, использующих измененную версию библиотеки. Эта лазейка широко применяется многими компаниями, которые создают заблокированные (locked-down) устройства - несмотря на то, что это противоречит всем намерениям и основам LGPL. Если устройство использует программное обеспечение под лицензией LGPL v2.1, пользователь не сможет установить модифицированную версию библиотеки на устройство и использовать ее вместе с другим ПО, установленным на устройстве.
Digia также считает, что заблокированные пользовательские устройства, которые используют LGPL-версию Qt, наносят ущерб всей экосистеме Qt: устройство закрыто для сторонних разработчиков и тем самым не способствует как увеличению сообщества Qt, так и числу устройств, которые могут быть выбраны Qt-разработчиками для своих приложений. Кроме того, не помогая росту сообщества Qt, такие компании не финансируют дальнейшее развитие Qt.
По этим причинам Digia полагает, что лицензия LGPLv2.1 не способна защитить свободу пользователей, как было задумано Фондом свободного программного обеспечения. Для исправления этой ситуации Фонд свободного программного обеспечения создал лицензию LGPLv3.
|