Хоть мы и в России живём, но не плохо бы понимать, как можно и как нельзя распространять наше программное обеспечение, использующее библиотеку Qt (4.8.1 в частности).
Итак мы пишем свой софт использую библиотеку Qt 4.8.1. В исходниках практически везде упоминается лицензия LGPL, Lesser general public license, а точнее две лицензии
GPLv2.1 и LGPLv2.1
Также мы используем несколько сторонних библиотек с открытым исходным кодом, например openssl 1.0.2 (TLS1.2).
Мы планируем сделать свою программу проприетарныо (proprietary), то есть частной собственностью. Также мы планируем собирать программу статически.
Главный вопрос - можем ли мы не покупать коммерческую лицензию Qt (именно Qt 4 в 2023г.) и можем ли мы не открывать исходные коды уже своей программы.
Наш единственный плюс в том что нам нафиг не нужна Qt 5, мы спокойно немного подправим исходники Qt и получим TLS1.2 если понадобится и т.д.
С QT 5 мы и не рассчитываем получить такой результат, но вот с Qt4 Nokia попытаемся.
Разобраться ну очень не просто. И не хочется забивать свой мозг другого рода информацией не относящейся непосредственно к программированию, но что делать...
Lesser вроде бы не запрещает собирать статически, но обязывает предоставлять объектные файлы для пересборки лицензиаром. Но об'ектные файлы это не открытые текстовые исходники.
Точнее ваш приобретатель лицензии (лицензиар) должен иметь возможность пересобрать исходники Qt.
Но вроде можно предоставить только об'ектные файлы.
Вот пример упоминания лицензирования из файла qtablewidget.h :
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtGui module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
** $QT_END_LICENSE$
**
LGPL лицензию начала использовать компания Nokia (для Qt) в версии 4.5. Их цель была не только продавать Qt, а сделать его более популярным также в закрытых проектах, чтобы развивать свою мобильную платформу, которую сейчас уже и не вспомнишь как называется.
До Qt 5.7 были GPLv2.1 и LGPLv2.1, далее GPLv3/LGPLv3.
Коммерческие версии существовали и ранее с самого начала существования Qt.
Нашел полезное мнение в интернете,что (для LGPL Nokia) : если же Qt модифицирован - исходники этих модификаций Qt придётся выложить (но не придётся выкладывать с ними исходники Вашей программы). Не могу поверить в счастье!
Слово «Lesser» в названии указывает,
что LGPL не гарантирует конечному пользователю полную свободу
использовать программное обеспечение как угодно;
она гарантирует свободу изменения тех его компонентов,
которые лицензированы под LGPL, но не проприетарных компонентов
В нашем случае Qt лицензирована под LGPL, но наша программа нет. Мы не запрещаем модифицировать исходники Qt.
Мы предоставляем по Qt все наши патчи исходников.
Далее если у нас динамика, т.е dll от Qt и exe файл нашей закрытой программы, то проблем вообще нет. Пользователь может модифицировать Qt.
Если у нас статика, то надо открыть исходный код своей программы, иначе как пользователь сможет пересобрать все .
Но и тут есть такой вариант: открыть в своей программе только файл main.c, а далее весь код программы сделать в виде набора статических lib самого Qt и нашей программы. И таким образом пользователь сможет модифицировать исходники Qt и пересобирать весь проект целиком статически.