LINUX.ORG.RU

Помогите разобраться с Qt5 LGPLv3.

 ,


0

3

Есть андроид приложение написанное с использованием Qt. Планируется две версии бесплатная с рекламой внутри и платная. Я не могу понять, необходимо ли мне будет полностью выкладывать исходники моего приложения в таком случае в открытый доступ? Либо просто должен указать внутри приложения что используется qt? Исходники qt я естественно не менял.

необходимо ли мне будет полностью выкладывать исходники моего приложения в таком случае в открытый доступ?

Нет, LGPL же. Исходники ты обязан выкладывать только самого Qt, в том случае если менял там что-то, чтобы твоя программа работала. А исходники своей проприетарной программы выкладывать не обязан.

должен указать внутри приложения что используется qt?

Не уверен что это требуется, но aboutQt() куда-нибудь там засунуть это просто хороший тон, чтобы было понятно какая версия Qt используется, например.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от Werenter

В Android не используется статическая линковка, у Qt там SO-шки, в теории можно разобрать APK, заменить SO-шки на более новые, собрать обратно и всё должно работать если в Qt не сломали API/ABI.

Просто этим никто не занимается.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Нет, LGPL же.

А вот не факт. Там сейчас куча модулей уже под GPL, особенно всякие новомодные, типа онлайн-платежей и геолокаций. Надо очень внимательно смотреть, чтобы остаться в рамках LGPL.

Beewek ★★
()
Ответ на: комментарий от EXL

Нет, LGPL же. Исходники ты обязан выкладывать только самого Qt, в том случае если менял там что-то, чтобы твоя программа работала. А исходники своей проприетарной программы выкладывать не обязан.

В корне неверно. Нужно дать возможность, чтобы программа работала с версией Qt пользователя. apk нельзя потрошить, так как его потом не запаковать, слетит ключ и т.д.

Нужно делать приватный проект с закрытым кодом библиотекой и открытый проект, где используешь эту библиотеку. И открытый проект давать в открытый доступ, а также скомпилированную библиотеку.

Вот реальный пример как соблюдать LGPL: https://marketplace.qt.io/products/qt-lgpl-app-template

Ну или можно пиратить, потому что Qt Company расисты и русофобы, нарушают открыто GPL, не давая исходники русским, хотя обязаны, так как у многих установлены бинарные версии от Qt Company через Intstaller, и они обязаны были оставить доступ к исходникам для этих пользователей.

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 2)
Ответ на: комментарий от Werenter

Вроде же только бинарники запретили, code.qt.io работает нормально.

о, хорошо, не знал. Если к исходникам доступ дают, то тогда наверное не нарушают GPL.

fsb4000 ★★★★★
()
Ответ на: комментарий от Beewek

Да, это хорошее замечание, всякие там Qt Charts и вроде как Qt Keyboard идут под GPLv3 или коммерческой лицензией, стоит внимательно изучать лицензии тех модулей, которые используются.

Но основные для Android по типу Qt Quick, Qt Location идут всё-таки под LGPLv3.

EXL ★★★★★
()
Ответ на: комментарий от fsb4000

Замечание резонное, но вот только в Android-мирке разные части приложения могут быть лицензированы по разному. В реальном мире, к примеру, Java-часть приложения в которой находится куча привязок к тем же рекламным API обычно идёт отдельно и содержит всякие приватные ключи и всё такое, слабо связанное вообще с Qt. Делать «открытые» проекты с таким ворохом связности вряд ли кто-то будет, а делать проект-кастрат чисто чтобы соблюсти LGPLv3 никому нафиг не нужно, потому что в здравом уме никто не будет ковыряться с какими-то проектами-кастратами из которых нельзя собрать рабочее приложение, просто возьмут apktool.

Но ссылку ты хорошую привёл, спасибо, не знал о такой, значит Qt-разработчики заморочились с подобной юридической стороной. Посмотреть бы только, кто подобную систему закрытый/открытый проект из проприетарых приложений на Qt в Google Play вообще делает.

EXL ★★★★★
()
Ответ на: комментарий от Beewek

Нет, LGPL же.
А вот не факт. Там сейчас куча модулей уже под GPL, особенно всякие новомодные, типа онлайн-платежей и геолокаций.

И что? Если ты код GPL модулей не менял, а только использовал их в работе, то никаких исходников ты выкладывать не должен.

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

Если ты код GPL модулей не менял, а только использовал их в работе, то никаких исходников ты выкладывать не должен.

Смотря как использовал. Если ты их линкуешь к приложению, то производная работа (твоё приложение + всё, что с ним слинковано) подпадает под действие GPL.

annulen ★★★★★
()
Ответ на: комментарий от Xintrea

Знаешь, почему GPL называют вирусной? Вот как раз потому, что применив даже самый маленький кусочек GPL-кода, ты должен выпустить всю свою программу под GPL. Это называется «производная работа» (см. GPL faq).

В результате статической или динамической компоновки [название вашей программы] с другими модулями получается комбинированная работа, производная от [название вашей программы]. Таким образом, условия и требования Стандартной общественной лицензии GNU распространяются на комбинацию в целом.

А LGPL - это единственное исключение из этого правила:

В дополнение, как особое исключение, правообладатели [название вашей программы] дают вам разрешение комбинировать [название вашей программы] со свободными программами или библиотеками, выпущенными под GNU LGPL и с программами, включаемыми в стандартный выпуск [название библиотеки], распространяемой по [название лицензии библиотеки] (или измененными версиями таких программ под той же лицензией). Вы можете копировать и распространять такую систему, следуя требованиям GNU GPL в отношении [название вашей программы] и лицензиям других привлекаемых программ{ при условии, что вы включаете исходный текст этих других программ, когда и в том виде, в каком GNU GPL требует передачи исходного текста}.

Beewek ★★
()
Ответ на: комментарий от fsb4000

Нужно дать возможность, чтобы программа работала с версией Qt пользователя. apk нельзя потрошить

а как можно на андроиде обеспечить чтобы программа работала с иными библиотеками qt от пользователя ?

x905 ★★★★★
()
Ответ на: комментарий от x905

а как можно на андроиде обеспечить чтобы программа работала с иными библиотеками qt от пользователя ?

дать возможность пользователю собрать свой apk.

А так, был когда-то Ministro, и можно было собрать Qt приложение в которое не добавлялись библиотеки Qt, а требовалось установка Ministro, и использовались одна копия либ Qt для всех приложений Qt собранных с поддержкой Ministro, и там выбор версии библиотеки, и пользователь мог подставить свою библиотеку в Ministro.

Но Ministro помер, хотя в f-droid ещё есть:

https://f-droid.org/ru/packages/org.kde.necessitas.ministro/

fsb4000 ★★★★★
()
Ответ на: комментарий от fsb4000

чтобы разобрать apk исходники не нужны

чтобы собрать тоже, но это будет чуть другой apk, но разве это проблема ?

давать исходники - не вариант, смысл тогда от lpgl теряется

так есть ли нарушение lgpl в данном случаи ?

x905 ★★★★★
()
Ответ на: комментарий от ox55ff

Ты описал LGPL. GPL же требует раскрыть исходники даже если не менял код, а просто с ним слинковался.

если линкуешься в рантайме (например, через dlopen) и не используешь объекты через shared memory, то это «пограничный случай», который вроде как уже не требует лицензирования всего продукта под GPL:

If the main program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

https://www.gnu.org/licenses/gpl-faq.en.html#GPLPlugins

Sahas ★★★★☆
()
Ответ на: комментарий от x905

так есть ли нарушение lgpl в данном случаи?

Может и нет нарушения. Вот нашёл такой же ответ как твой, на вопрос как соблюдать LGPL с Qt на Android: https://opensource.stackexchange.com/a/6495

Solution? Provide .apk file to every user who installed your application with detailed instructions on how to:

1) Unpack your .apk file
2) Replace Qt libraries
3) Zipalign / pack / signtool to a new .apk
4) Install .apk with modified Qt libraries

Но я где-то видел вебинар от Qt Company и там они говорили что нужно предоставлять исходники для сборки LGPL, и template для быстрого старта(https://marketplace.qt.io/products/qt-lgpl-app-template) о том же. С другой стороны Qt Company нужно продавать платные версии…

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)