Pull to refresh

Comments 122

Вот теперь действительно всё стало понятно. Спасибо за статью!

Например, очень сильно распространено заблуждение, что достаточно линковать Qt динамически и на этом все требования LGPL будут выполнены — на самом же деле это всего лишь одно из многих (да и то не полностью, если не ошибаюсь).

Можете разжевать что имелось ввиду?

P.S. Хотелось бы увидеть от вас и другие статьи про Qt ;)
Всё-таки не всё понятно.

Некоторое проекты могут требовать наличия лицензии Qt for Device Creation даже несмотря на то, что “устройство” представляет собой обычный настольный компьютер на Windows. Например, это может быть рабочая станция на каком-то заводе, на которой работает некоторое приложение для мониторинга каких-нибудь датчиков...

Тут нужны «рантаймы»? Устройство ведь не распространяется.

Я так понял, что идея в том, что если приложение на Qt обеспечивает бОльшую часть всей функциональности (с точки зрения пользователя) машины, то это "устройство". Если же как относительно независимый компонент, который можно поставить или удалить — то это приложение. В этом есть некая логика: если для конечного потребителя ценность заключается в продукте как таковом (т.е. работающая комбинация железо+софт, которые совместно выглядят как какое-то законченное устройство), то не суть важно, идет он в виде, скажем, NUC с предустановленной программой, или скачивается с сайта ("Юпи — просто добавь компьютер").

Я так понял, что идея в том, что если приложение на Qt обеспечивает бОльшую часть всей функциональности (с точки зрения пользователя) машины, то это «устройство».

Мне тоже так показалось.

Но мой вопрос про рантаймы (лицензии на копии). Нужны ли они в случае, если устройство только одно для себя?

О, а вот это интересный вопрос. Использование коммерческой лицензии для написания софта для внутреннего применения. И что, если устройство не одно? Может быть, на заводе написали софт для сотни станков, которые они используют — нужно ли им теперь заплатить Qt за "поставку" сотни экземпляров ПО самим себе? Подозреваю, что надо.
Но это редкий случай на самом-то деле. Обычно все же устройства продаются, и обычно вместе с железом (все эти Boot2Qt, Android и ARM-тулчейны неспроста)

Хороший (и сложный) вопрос. Я не знаю. Могу только предположить, что если распространения "наружу" нет (соответственно, нет продаж, нет прибыли от этого распространения), если всё только для себя, то рантаймы не нужны. Но я не выдаю лицензии, это решает так называемый "account manager" — сотрудник отдела продаж, потому мой ответ прошу не считать официальным.

А если программа на Qt предназначена для взаимодействия с каким-либо «открытым» устройством (Arduino, например, и пр.), то необходимо покупать лицензию Qt for Device Creation? Ведь ардуино может выступать в роли датчиков/исполнительного устройства и тогда попадает под термин device.

Очень много вопросов нужно прояснить. Что такое "открытое" устройство? Где находится Qt-приложение, в самом устройстве или на присоединённом десктопе/планшете? В чём именно заключается взаимодействие — раз в месяц сгрузить логи с устройства, или весь GUI выполняется на декстопе/планшете "удалённо"? Может ли устройство выполнять своё предназначение без взаимодействия с Qt-приложением?


Вот эти все вопросы, кстати, выясняются во время обсуждения проекта с Qt account manager. Потому не знаю, насколько подробно я смогу вам ответить, хотя, конечно, могу попробовать.

GUI на десктопе. Ардуино (микроконтроллер), либо, например. датчик температуры, плата и реле, с которыми взаимодействует Qt GUI приложение с помощью протокола, например, через Com-порт (QSerialPort).
Ведь все эти платы, датчик и т.п. попадают под термин device и получается что такое приложение можно написать только при покупке Qt for Device Creation и никак не с Oper source лицензией.
Вот, как пример: https://github.com/Kar1o/Arduino и таких примеров уйма…

Но может ли это устройство работать, выполнять свою функцию без взаимодействия с Qt-приложением?


Например, если это противопожарный датчик, который при повышении температуры до порогового значения или обнаружения дыма в помещении включает пожарную сигнализацию, то очевидно, что Qt-GUI здесь основным функционалом не является, и нужен только, ну я не знаю, для задания этих самых пороговых значений температуры и концентрации дыма? При таком сценарии определение "устройства" не подходит, а значит "Qt for Device Creation" не нужна, и достаточно "Qt for Application Development". Более того, если это всё, зачем нужно приложение на десктопе, то мне кажется, что будет не так сложно соблюсти все требования GPL/LGPL.


Если же Qt-GUI необходим для полноценного функционирования устройства, например в этом Qt-приложении рисуется график изменения температур, который нужно постоянно мониторить оператору, либо это устройство контролирует электронный замок в двери, и охранник управляет им со своего десктопа/смартфона/планшета при помощи этого приложения, то мне кажется, такой сценарий попадает под определение "устройства", и такая связка требует лицензии "Qt for Device Creation" и рантаймов по числу таких деплоев. Технически это два разных устройства (десктоп и Ардуина), но логически — одно, где GUI просто вынесен "наружу".

Ответил чуть ниже (выше). Вкратце: "внутреннее" использование, скорее всего, не требует приобретения рантаймов (лицензий на распространение), так как распространения в этом случае и нет. Но точно не знаю.

Да, тоже хотел зацитировать и уточнить. По крайней мере в этом месте внятного пояснения на русском языке явно не хватает, что в статье, что на просторах интернетов.


Что википедия, что https://www.gnu.org/licenses/gpl-faq.ru.html#LGPLStaticVsDynamic, говорит примерно следующее:


  • ваш софт не производная работа, а использует библиотеку
  • допустимо линковаться статически, но распространять свой продукт в виде объектных файлов, иными словами, позволить перелинковаться с более новой версией библиотеки.
  • допустимо линковаться динамически

Плюс мне попадались дополнительные разрешения от Qt в части шаблонов, которые, по понятным причинам не могут быть в виде библиотеки, по крайней мере в рамках C++.

Но в чём вопрос? Какой вид линковки в какой лицензии разрешён/запрещён?


Про "дополнительные разрешения от Qt в части шаблонов" я не знаю и раньше не слышал такого. Возможно это про 10 строк, которые не приводят к "заражению" Open Source? Если да, то я знаю только что это тоже "серая" область с кучей обсуждения без однозначного ответа (например, можно ли тогда запихать все исходники в одну строку и оказаться свободным от всех требований), и это исходит не от Qt.

Сразу же — IANALTINLA.


Кроме самой динамической линковки и предоставления библиотек/объектных файлов, нужно предоставлять также средства (и инструкции), как это всё собрать обратно в рабочее приложение, плюс в тексте лицензии есть такое понятие как "Minimal Corresponding Source" и "Corresponding Application Code", а это уже части вашего кода, где вы вызываете Qt API. Кстати, не так давно была встреча с одной компанией, у которой её собственные юристы указали нам на это требование, потому что для их проекта это было невыполнимо.


А вообще, линковка и связанные с ней вопросы — это только одно из требований LGPL, там есть и другие. Следующий вопрос, подозреваю, будет перечислить все, но каждое новое вызовет дополнительное обсуждение, и в итоге я окажусь юр.консультантом по вопросам Open Source, которому достанутся все помидоры. Не хотелось бы в это встревать.

Добавил в закладки.

1. Первый вопрос такой же, как и у предыдущих вопрошающих. Кроме того, что exe файл нужно будет распространять с dll файлами, что еще такого особенного требуется по лицензии LGPL?

2. Продукты, распространяющиеся по MIT лицензии (например с исходниками на GItHub) попадают же под GPL? Можно в них использовать компоненты GPL

3. Клиент-серверные приложения не попадают же под Qt for Device Creation?
4. В коммерческой версии есть возможность работать (создавать, открывать, редактировать) документы от Microsoft Offfice?

То есть, использовать ActiveX? Этот компонент доступен и в коммерческой, и в Open Source версиях.

То есть только есть такой механизм? Жаль.

Я просто не понимаю, что именно вам требуется. Вы спрашиваете, есть ли специальная библиотека для работы конкретно с документами MS Office, например что-то типа QtMSOffice, которой нет в Open Source версии, и вы интересуетесь, что может хотя бы в коммерческой версии она есть? Нет, насколько я знаю, такой библиотеки в составе Qt нет.

В Qt легко все сохранять в ODF формат через тот же QTextDocumentWriter. А вот в тот же docx также легко не сохранить информацию. Думал, может в коммерческой версии есть простые и удобные инструменты. Всё-таки Open Office не столь популярен.

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

  1. Ответил на похожий вопрос;
  2. Не уверен, что понял, но если у вас уже лицензия MIT, то при чём здесь GPL? Кроме того, Qt недоступен под MIT. О совместимости лицензий я не смогу рассказать подробнее, чем тут (и в других источниках);
  3. Приведите, пожалуйста, пример, потому что всё зависит от конкретного проекта.
1. К сожалению ссылка кривая у вас. Вот она

2. Есть гипотетическая программа, которая пишется на Qt Open Source. Программа распространяется по MIT лицензии (это же можно?). Потом автор решил в программе, например, использовать Qt Charts, которые идут уже по GPL лицензии для рисования каких-то графиков. Автор должен переделать лицензию своей программы под GPL или может оставить MIT? (по ответам людей получается, что должен).

3. Например, на сервере есть база данных студентов, к которой обращается клиентское приложение, написанное на Qt. Тут же не потребуется лицензия Qt for Device Creation?
Потом автор решил в программе, например, использовать Qt Charts

А до этого в программе Qt не использовался? Просто странно использовать Qt только из-за графиков. А вообще, да: добавляете в проект что-то на GPL — весь проект становится GPL.


на сервере есть база данных студентов, к которой обращается клиентское приложение, написанное на Qt

Если это приложение работает на десктопе/смартфоне/планшете и является просто одним из приложений, установленных в системе, то это выглядит как простая Qt for Application Development, и Qt for Device Creation здесь не требуется.

Я никогда не мог понять одну вещь — можно ли выпускать условные кофеварки, используя LGPL? Если нет, по почему?

Конечно можно. Требуется лишь соблюдать все условия LGPL. Только надо отметить, что LGPLv3 основывается на GPLv3 (расширяя её), то есть надо учитывать ряд требований и из GPL.


Поэтому зачастую для коммерческих проектов требования LGPL просто недопустимы (как минимум из-за невозможности создавать "закрытые" устройства).

И все-таки по поводу LGPL статья ничего не прояснила. Даже скорее дала понять что ребята и сами не знают какие ограничения или возможности дает лицензия под которой они Open source распространяют, вроде как ваши юристы пусть сами разбираются, но лучше не рисковать покупайте сразу. Мутненько…

Ребята знают, мне например эти требования уже снятся, потому что они всплывают почти на каждой встрече/звонке. Но каким бы ни был ответ The Qt Company на вопрос о требованиях GPL/LGPL — этот ответ не будет иметь никакой юридической силы, потому что лицензии Open Source ей не принадлежат. И компания не может взять на себя ответственность за любые возможные негативные последствия выбора "неправильной" лицензии — это ответственность ваших юристов.


Так что это скорее The Qt Company не рискует предоставлять такого рода юридические консультации.


Потому и нет смысла пересказывать Open Source лицензии в интерпретации The Qt Company — это будет лишь интерпретация, которая может и не соответствовать действительности (пусть и неумышленно).

Если бы там (в использовании LGPL) что-то было, то ребята орали бы об этом на каждом углу, чтобы побольше продавать коммерческих лицензий. А коли ничего нет, то самое лучшее для ребят — напустить побольше тумана и изъясняться недомолвками, чтобы клиент сам себе ужасов понапридумывал и поскорее купил коммерческую лицензию.
Потому, если какая-то компания-разработчик заявляет, что им коммерческая лицензия не нужна, и они будут использовать Qt под LGPL, так как полностью ей соответствуют — мы даже не спорим.
Странная позиция, ведь судится в случае нарушения LGPL заинтересована в первую очередь «The Qt Company». Маловероятно, что кто-то ещё захочет заниматься преследованием гипотетической TheEvilCompany, создающей «закрытые» кофеварки используя LGPL версию Qt.
Выглядит так, будто The Qt Company боится разъяснять клиентам реальные ограничение LGPL версии, потому что в таком случае они смог их выполнить и не боятся правового преследования за выпуск своих продуктов. А так, поскольку непонятно даже, будут ли их преследовать — проще заплатить.
судиться в случае нарушения LGPL заинтересована в первую очередь «The Qt Company»

На самом деле, нет. Как я уже сказал, руководство живёт в сказочной стране эльфов и фей (а возможно просто в лучшем мире), где никому не приходит в голову, что можно нарушать требования лицензий ПО. Но самое главное, независимо от заинтересованности в преследовании нарушителей, у The Qt Company нет прав это делать — лицензии Open Source принадлежат не ей, на каком основании она может судиться с кем бы то ни было по этому вопросу?


Маловероятно, что кто-то ещё захочет заниматься преследованием гипотетической TheEvilCompany, создающей «закрытые» кофеварки используя LGPL

Вы будете удивлены. И я привёл в статье ссылку на некоторые случаи разбирательств. Да и тот же судебный процесс с TiVo может послужить примером.

руководство живёт в сказочной стране эльфов и фей (а возможно просто в лучшем мире), где никому не приходит в голову, что можно нарушать требования лицензий ПО.
Вам видней, но мне кажется, тут дело не в наивности, а в том, что не понятно, какие реально ограничения у бесплатной. В этой ситуации клиентам может казаться, что дешевле заплатить за то, что может и не нужно, чем рисковать нарваться на судебные разборки. Естественно, эта ситуация благоприятна для «The Qt Company», которые понимают, что живут в мире правовых отношений, а тех кто живёт за его пределами все равно не достать. Чем больше туману вокруг свободных лицензий — тем больше клиентов купят коммерческую лицензию, лишь бы не рисковать.
Естественно, эта ситуация благоприятна для «The Qt Company», которые понимают, что живут в мире правовых отношений
Чем больше туману вокруг свободных лицензий — тем больше клиентов купят коммерческую лицензию

Я согласен, так и есть. Но это и не характеризует The Qt Company в плохом свете, ведь она не создаёт туман вокруг Open Source лицензий — их текст доступен всем и каждому. И выбор "правильной" лицензии зависит от юристов той или иной компании.

это и не характеризует The Qt Company в плохом свете
Нет, это характеризует их как бизнес. Задача бизнеса — зарабатывать деньги. Даже лгать в рекламе в некоторых пределах считается допустимым. Напускание туману вокруг лицензии — это своего рода «врачи рекомендуют Blendamed» — попытка заработать чуть больше денег путём (законного) сокрытия информации от клиента.

Разработчик спрашивает: «я хочу создать продукт на основе Qt, какая самая дешевая лицензия мне нужна».
Qt Company отвечает: «вам точно подойдёт commercial license».
Разработчие: «А может мне хватит LGPL»?
Qt Company: «Может да, может нет, а может от LGPL у вашего продукта рога вырастут — мы не гарантируем»
Разработчик: «Ну ладно, всё равно лицензия вроде не слишком для меня дорогая, чем потом мучатся с юристами — лучше заплачу, и не буду морочить голову»
Напускание туману вокруг лицензии

Но где вы видите напускание тумана вокруг лицензии?


  • Текст GPL/LGPL в свободном доступе. Каждый может его изучить и принять решение по лицензированию своего проекта
  • Эти лицензии The Qt Company не принадлежат, потому она не может ничего про них рассказать/комментировать/объяснять

Другое дело, если бы The Qt Company искажала текст GPL/LGPL лицензий, то это было бы не "напускание тумана", а обычное враньё, но ведь этого не происходит?


Разработчик: «А может мне хватит LGPL»?
Qt Company: «Может да, может нет, а может от LGPL у вашего продукта рога вырастут — мы не гарантируем»

Ну так и есть, невозможно гарантировать что-либо относительно лицензии, которая тебе не принадлежит. Разве нет?


Ведь можно привести очень простой пример: The Qt Company говорит разработчику: "Да, ваш проект соответствует тексту лицензии LGPL", разработчик берёт LGPL версию, ведёт разработку, но пропускает (пусть и нечаянно) какое-либо из ограничений лицензии и выпускает продукт на рынок. Через некоторое время к нему приходит лично Столлман с судебным иском. The Qt Company теперь должна нести ответственность за свою некорректную юридическую консультацию?

Как часто Qt Company подает в суд на разработчиков, которые пишут программы на Qt Open Source, но как Qt Company обнаружила, что они нарушают лицензию LGPL так или иначе? Например, с целью заставить разработчика перейти на коммерческую лицензию.

И бывали ли случаи предъявления претензий от Qt Company на разработчиков, которые разрабатывают некоммерческие программы, которые бы нарушали LGPL лицензии?

Или Qt Company вообще таким не занимается и иски и претензии могут прийти только от сторонних людей, например, от вышеприведенного Столлмана? И были ли такие прецеденты?
Или Qt Company вообще таким не занимается и иски и претензии могут прийти только от сторонних людей, например, от вышеприведенного Столлмана? И были ли такие прецеденты?

Касательно нарушений GPL/LGPL — именно так. The Qt Company этим не занимается, GPL/LGPL ей не принадлежат.


Однако, в случае нарушения условий коммерческой лицензии, выявленного в ходе compliancy check, The Qt Company может подать в суд на компанию, так как в этом между ними существует договор. Но я не знаю ни об одном случае подобного судебного разбирательства, видимо пока не нашлось желающих рисковать своим бизнесом.

То есть если, например, разработчик пересобрал Qt Open Source так, чтобы можно было статически прикреплять библиотеки Qt, и собрал один exe файл, который можно запускать без dll, и успешно продает данный продукт, то Qt Company ничего не скажет, даже если ей это станет известно? И таких случаем не было?
и успешно продает данный продукт

Не хватает "и не соблюдает условия соответствующей Open Source лицензии". Да, так как это нарушение GPL/LGPL, а они The Qt Company не принадлежат, то она никого привлекать к ответственности за это и не может.


Если же разработчик соблюдает условия соответствующей Open Source лицензии, то это и не запрещено — продавать приложение, разработанное под GPL/LGPL.

Вы что-то очень странное пишите. В суд подаёт потерпевшая сторона. Есть лицензионное соглашение, по которому распространяется продукт. В случае его нарушения потерпевшей стороной оказывается Qt Company, и она будет подавать иски. Авторы лицензии GPL/LGPL не имеют к этому никакого отношения. Все сторонние контрибьютеры принимают соглашение о передачи всех возможных права на свой код в пользу Qt Company.
Я правильно понимаю что вы от имени Qt Company заявляете что Qt Company ни при каких условиях не будет подавать иски в случае нарушения условий GPL/LGPL лицензии?
В суд подаёт потерпевшая сторона.
В случае с уголовным преступлением (а нарушение авторских и смежных прав в особо крупном размере — это уголовное преступление), может быть и не так.

Авторы лицензии GPL/LGPL не имеют к этому никакого отношения.
Они могут привлекаться как эксперты…

Я не заявляю от имени компании. Я также не юрист и не специалист по лицензиям ПО. Я знаю только, что Open Source лицензии не принадлежат The Qt Company.


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

Поэтому, надо полагать, она и может распространять Qt как под Open Source лицензиями, так и коммерческим продуктом и соответсвенно предоставлять своим клиентам право вести разработку с "закрытым" исходным кодом.

Есть лицензионное соглашение, по которому распространяется продукт. В случае его нарушения потерпевшей стороной оказывается Qt Company

Есть несколько лицензионных соглашений. И если нарушено коммерческое лицензионное соглашение, то потерпевшей стороной оказывается The Qt Company.

Потерпевшей стороной всегда является правообладатель и никто другой. Кому бы ни принадлежала лицензия. Другое дело что в случае нарушений «в особо крупных размерах» (== уголовное преступление) в суд может подать и кто-нибудь другой. Но это исключительный случай, в природе случается крайне редко…
Вот Вы всё красиво говорите, только почему-то уводите от сути. Главное здесь не кому принадлежит лицензия, а кому принадлежит продукт. Владелец прав не знает какие права он передаёт по лицензии на свой продукт? Ой, ну прекратите уже меня веселить.

Я прекрасно понимаю желание Digia заработать на продукте. Мало того, я понимаю, что это их право. Но зачем же тут юлить? Выглядит это как-то некрасиво.

Столлмана уже из сундука достали для пущего ужаса.
Главное здесь не кому принадлежит лицензия, а кому принадлежит продукт

Коммерческий продукт принадлежит The Qt Company. Open Source версия принадлежит Open Source сообществу.


Владелец прав не знает какие права он передаёт по лицензии на свой продукт?

О правах на коммерческую версию — знает.


Digia

Уже больше года не Digia.

  • за несколько лет месячная лицения выросла с 25$ до 400$. при этом было добавлено "Qt Charts, Qt Data Visualization и Qt Virtual Keyboard и другие".
    WTF? оно всем надо по такой цене? как-то жирно мажете, напоминает историю компании Turing и Мартин Шкрели, который полнял цену за лекарстов от ВИЧ на тыщи процентов


  • за 2016 год компания заработала 32 миллиона евро. в планах компании сейчас стоит цель достичь прибыли в 100 миллионов евро к 2021 году, потому сейчас идёт активный набор новых сотрудников

    т.е. к 2021 лицензия вырастет еще в 3раза, а с учетом нового набора и аппетита в 6-10. еще раз WTF?


  • несколько раз в статье упоминали серые моменты. мне кажется, вся продажная стратегия Qt основана на сером и мало понятном лицензировании, потому что


    Мало кто хочет рисковать своим бизнесом, когда текст лицензий попросту не совершенен

    и непонятен


  • от любопытной критики к простому любопытству:
    KDAB один из основных контрибуторов и создателей Qt 3D. вы делитесь с ними деньгами или ведете себя как жена в семье "что он заработал, это наши деньги, а что я заработала с наших потуг — это только моё"?

P.S.
мысли вслух: надо присмотреться к Tizen (особенно это актуально для DC)

оно всем надо по такой цене?

Кому не надо, тот просто не покупает, а реализует требуемый функционал самостоятельно (или переводит свой проект на Open Source). Но я понимаю ваше возмущение, ценовая политика явно не ориентирована на малый бизнес. Это даже особо и не скрывается, основная прибыль компании идёт от крупных сделок с большими объёмами рантаймов. Я с такой политикой не согласен, но моего мнения не спрашивали.


т.е. к 2021 лицензия вырастет еще в 3раза, а с учетом нового набора и аппетита в 6-10.

Это вовсе не следует из этого. Стоимость лицензий изменяется каждый год, верно, но в пределах 5% (так было и до объявления плана на 2021 год). По упомянутой же стратегии развития, роста прибыли планируется достичь расширением "продажной сети" — новые представительства в разных странах, больше сотрудников-продаванов, новые продукты для разных индустрий, но совсем не "тупым" увеличением стоимости лицензий в 10 раз.


и непонятен [текст лицензий]

Да, всё так. Но The Qt Company к этому отношения не имеет — лицензии Open Source принадлежат не ей.


вы делитесь с ними [KDAB] деньгами

Нет, как и в других Open Source проектах. Вы безвозмездно вносите вклад в разработку и безвозмездно же пользуетесь результатами (можно пользоваться и ничего не вкладывая). Но есть и сотрудничество на другом уровне: KDAB, оказывая сервисные услуги по Qt разработке для своих клиентов, посвящают их в тему коммерческих лицензий и переправляют в The Qt Company по вопросам лицензирования; и наоборот — The Qt Company может рекомендовать сервисные услуги KDAB (или других партнёров, в зависимости от территории) своим клиентам.

UFO just landed and posted this here
Какая лицензия мне понадобится для этого?

У вас есть выбор между GPL, LGPL и коммерческой лицензией, как это показано на последней картинке в статье.


Что если я для нее напилю всяких разных виджетов — будет ли от этого зависеть тип лицензии?

Будет. Если вы возьмёте, например, Qt Charts, то LGPL опция для вас сразу исчезнет. Выбор ограничится только GPL и коммерческой лицензией.


Нужно ли выкладывать исходники этих виджетов в opensource?

Зависит от того, какую лицензию вы выберете. Если коммерческую, то не нужно (но если хотите, то это не запрещено). Если одну из Open Source, то зависит от требований соответствующей лицензии (GPL или LGPL).


Если я таки попадаю под opensource лицензию, где я должен разместить license.txt?

Насколько я знаю, полный текст соответствующей лицензии должен распространяться вместе с вашим продуктом. Но я не юрист и не специалист по лицензированию ПО.


Что еще нужно сделать чтобы ко мне не пришли лоеры из Qt company?

Если вы не нарушаете условия коммерческой лицензии, то The Qt Company к вам не придёт. Если вы нарушаете условия Open Source лицензии, то The Qt Company и в этом случае не придёт, но зато можно ожидать визита от Open Source сообщества.

можно ожидать визита от Open Source сообщества

Не хочу никого обидеть, но на этой фразе воображение рисует:
Заголовок спойлера
image
Если вы нарушаете условия Open Source лицензии, то The Qt Company и в этом случае не придёт, но зато можно ожидать визита от Open Source сообщества.

А что мешает The Qt Company обратится в FSF по поводу нарушения GPL в отношении продукта, в который они контрибьютят? FSF именно так и советует поступать.

Да, такое может случиться. Но хотелось бы всё-таки решать такие вопросы "мирно", потому обычно до этого не доходит. На моей памяти ни разу такого не было.


Да собственно, и случаев нарушения Open Source лицензий Qt не так много — как я писал, мало кто готов рискнуть своим бизнесом, все более-менее крупные компании смертельно серьёзно относятся к вопросам лицензирования ПО. Исключение составляют определённые регионы, как я тоже уже упомянул.

Во времена Trolltech — с лицензиями было гораздо проще! А во времена Nokia и подавно.
UFO just landed and posted this here

Я несколько растерялся, но отвечу так: если в проекте используется тот или иной компонент Qt (а конкретно QML является частью модуля Qt Quick), значит должны соблюдаться требования соответствующей лицензии, под которой этот компонент доступен.

UFO just landed and posted this here

Нет, это интересный вопрос. Кстати, использование Ministro описано и в документации по деплою Android-приложений: http://doc.qt.io/qtcreator/creator-deploying-android.html, так что это не что-то сильно специфическое.


the service is released under BSD license, it mean that any application (no matter if that application is free or not)

Насколько я понимаю, BSD здесь покрывает только использование самого Ministro, лицензий стороннего ПО (которым в этом случае является Qt) это не касается. Да, вы можете использовать Ministro для подгрузки библиотек Qt, лицензия Ministro это позволяет. Но сам Qt вы можете использовать лишь выбрав одну из лицензий, под которыми он доступен (GPL, LGPL, коммерческая).


QML как язык программирования

Как я уже сказал, QML входит в состав Qt Quick, и возможно ли использовать только QML — тут я всё ещё в растерянности.

Прошу прощения, если спрошу страшную глупость, но с открытыми лицензиями не могу понять принцип работы.
Простой наглядный пример:
Я с сайта QT качаю QT Creator со всеми Chart`ами (т.е. под GPL), пишу на нём свой «Супер-Калькулятор» и начинаю его продавать за реальную валюту.
Кто меня может поймать за руку? Если поймают, что мне за это будет? Могу я вообще использовать некоммерческую версию для написания ПО не только для личного пользования?
Могу я вообще использовать некоммерческую версию для написания ПО не только для личного пользования?
Я с сайта Qt качаю Qt Creator со всеми Chart`ами (т.е. под GPL), пишу на нём свой «Супер-Калькулятор» и начинаю его продавать за реальную валюту. Кто меня может поймать за руку? Если поймают, что мне за это будет?

Ну так это и не запрещается. Вы совершенно спокойно можете использовать Qt под GPL в коммерческом проекте, продавать ваше приложение за деньги. Вам нужно лишь полностью соответствовать условиям и требованиям GPL. Если же вы не соответствуете, нарушаете лицензию, то да, кто-то может поймать и что-то сделать, но кто и что — я не знаю. В статье была ссылка на Википедию с примерами судебных разбирательств. Больше примеров можно найти в Гугле. Как это обернётся в вашем конкретном случае — предсказать невозможно. По крайней мере, я не могу.

А нельзя ли попросить вашего Qt account manager написать статью по мотивам вопросов в обсуждении (хотя бы кратко). А то может оказаться, что ваша позиция в чем-то может сильно отличаться от его мнения (офф. позиции). А многие будут ссылаться на вашу статью и комментарии как на истину, так сказать, в последней инстанции, что будет вводить в заблуждение.
В интернете очень много обсуждений лицензионных моментов Qt, но нигде нет ссылок на кого-то, кто обладает информацией изнутри.
Хочется ясности в вопросе лицензирования…
будут ссылаться на вашу статью и комментарии как на истину, так сказать, в последней инстанции

Вот этого не надо делать, эта не официальная статья от компании. Как видите, статья написана не в корпоративном блоге. И сам я не юрист и не специалист по вопросам лицензирования ПО.


Окончательное решение по лицензии, которая потребуется для того или иного проекта, выносит account manager, с которым вы свяжетесь.


А нельзя ли попросить вашего Qt account manager написать статью по мотивам вопросов в обсуждении

Оно там и началось — я пошёл в отдел продаж и сказал, что по моему мнению информация на сайте не помогает разобраться в ситуации с лицензиями, нужен более подробный разбор. Мне сказали, что моё мнение очень важно для них и они обязательно над этим подумают. Это было полгода назад.


Кроме того, даже если что-то такое и будет опубликовано на сайте, оно будет на английском языке. Как вы могли заметить, русская версия сайта существует, вообще говоря, просто для галочки. На русский язык этот материал никто переводить не будет.


Так что текущая статья — это исключительно моя инициатива. Как и предыдущая статья про roadmap и прошедшую конференцию Embedded World 2017. Если обратите внимание — все ссылки в статьях без рефералов и прочего utm-мусора.

Что раньше яйцо или курица ???? Мало продаж, есть непонятки с лицензией. Никто ничего менять не будет, все проблемы разовые(на самом деле сериализуемые), — мало продаж. И кто по логике должен разорвать замкнутый, самовоспроизводящийся цикл????
Ок. Я законопослушный гражданин, хочу разрабатывать ПО и продавать его не разбрасывась исходниками налево и направо.
Иду на сайт, покупаю лицензию с месячной подпиской. Плачу 350 баксов. Пишу «Супер-Калькулятор». Месяц проходит. Я должен прекратить писать? Или мне сделают ата-та? И как определят написал я своё проприетарное ПО на QT до истечения срока подписки или позже?

Если вы не хотите продлевать подписку на следующий месяц, то да, после окончания текущего (оплаченного) месяца не имеете право вести разработку с Qt, обращаться в тех.поддержку а также распространять ваше приложение (если оно уже готово).


Раньше, как я писал, распространения это не касалось — если вы запилили проект за месяц, то дальше можно не платить и спокойно распространять уже готовое приложение. Теперь — касается.


И как определят написал я своё проприетарное ПО на QT до истечения срока подписки или позже?

Если вы задались целью нарушить условия лицензии — у вас скорее всего получится. Как я говорил, руководству компании и в голову не приходит, что кто-то может делать это умышленно. Они живут в лучшем мире.

В общем, руководству Qt или отделу продаж данную статью, а точнее комментарии лучше не показывать )
руководству компании и в голову не приходит, что кто-то может делать это умышленно
Откуда такая инфа? Мне кажется более логичным, что они вполне допускают такое, но считают, что это маловероятно т.к. те, кто могут заплатить за их продукт — скорее заплатят т.к. не хотят рисковать юридическими разборками. А те кто нарушает лицензию — скорее всего всё равно заплатить не в состоянии и преследовать его смысла нет.

Я обсуждал тему лицензирования с некоторыми представителями менеджмента, и когда вопрос зашёл про российский рынок, что вот, такая огромная территория, а продажи почему-то на самом низком уровне среди всех регионов, то я привёл пример со своим бывшим работодателем, у которого была команда в примерно 20 человек Qt-разработчиков, велась работа над коммерческими проектами, и лицензией никакой и не пахло. Лично мне просто выдали ссылку на Open Source версию и сказали приступать к работе, а потом и вовсе нашли на трекере выложенную кем-то коммерческую и утащили из неё часть библиотек. У менеджера во время моего рассказа шевелились волосы на всех частях тела (насколько было видно). Он просто не мог поверить, что можно так мощно забить на лицензии ПО. А я не понимал, почему его это так шокирует.

качаю QT Creator со всеми Chart`ами (т.е. под GPL), пишу на нём свой «Супер-Калькулятор» и начинаю его продавать за реальную валюту.

Вы имеете право это делать, но обязаны (по тербованиям GPL) вместе с «Супер-Калькулятор» распространять исходники, и, следовательно, технически становится трудно защитить «Супер-Калькулятор» от пиратства. Однако, это законно и тут даже точка зрения Qt Company значения не имеет.

Вопрос: если компания разрабатывает какое-то ПО для личного пользования (какое-либо внутреннее сервисное ПО, работающее на обычных рабочих станциях внутри компании) и никому не передаёт/не продаёт это ПО, может ли компания использовать в этом ПО GPL-компоненты (например, QtCharts) и никому не показывать исходный код этого ПО?

Опять же, я не юрист, но для меня это выглядит как вполне возможный сценарий. Если это исключительно внутреннее использование, то и отчитываться не перед кем. Другое дело, что если вы вносите какие-то изменения в исходники Qt, то было бы "честно" поделиться ими и с сообществом, то есть не только использовать чужой труд, но и самому поучаствовать в развитии фреймворка. Однако юридически это вряд ли преследуется. Я не знаю.

Does the GPL require that source code of modified versions be posted to the public?

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

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


Т. е., если вы не распространяете ПО, то имеете полное право не открывать исходники сторонним лицам.


Аналогично, вы не обязаны открывать исходники всем, но только тем, кто получил ваше ПО законным образом в соответствии с лицензией.


Disclaimer: IANAL

Немного не понял следующий момент:
Также иногда встречаются ситуации, когда та или иная компания пару лет вела разработку своего проекта под Open Source лицензией, а перед релизом продукта “вдруг” узнала об её ограничениях и захотела приобрести коммерческую лицензию. Вообще, такое не допускается, лицензия должна выбираться на старте проекта, до начала разработки, и если вы взяли Open Source, то и распространение должно осуществляться в соответствии с требованиями GPL/LGPL. Но если такое всё-таки случилось не “вдруг”, а действительно по незнанию — свяжитесь с The Qt Company и опишите ситуацию.

Все имена вымышлены, а все совпадения случайны, но подозреваю, что таких ситуаций довольно много. Допустим я некоторое время назад основал стартапчик «Злобные буратины», в рамках которого разработал несколько приложений на Qt. Распространял я эти приложения с закрытым исходным кодом, линковался динамически, так как на момент создания стартапчика времени разбираться и денег на коммерческую лицензию не было. Кажется, что все условия LGPL соблюдены (хотя, как оказывается, вы и сами не до конца понимаете), время идёт, вопрос лицензирования периодически появляется в голове, но остаётся на втором плане.

И тут выходит ваша статья, от которой у меня начинают бегать мурашки по коже, ветки за окном предательски скрещиваются в виде тюремной решётки, а телевизор сам собой включается в момент показа фильма «Побег из Шоушенка». Я кидаюсь к матрасу, трясущимися руками достаю пачку кровно заработанных, отправляю заявку на покупку лицензии и получаю доступ к коммерческому SDK (или как там у вас это происходит).

Исходя из вашего комментария кажется, что я не могу просто перекомпилировать свои приложения с новыми либами, выставить версию на 1 выше и заново распространить среди пользователей. Однако, я не совсем понимаю, почему так? Вот я разрабатываю приложение, линкуясь с Qt по LGPL, вот я достаточно вырос и готов платить вам денежку, взамен получая юридическое спокойствие и разные плюшки. Или же, как буквально следует из вашего примера, я ещё даже не выпустил своё приложение — что мне мешает перекомпилировать исходники с новыми библиотеками и зарелизить программу?

А так спасибо, статья очень хорошая, проясняет разные интересные моменты по Qt.

Таковы условия — нельзя смешивать Open Source и "коммерческий" код. Лицензия для проекта должна выбираться до начала разработки. Выбрали Open Source — оставайтесь на Open Source.


Но в реальности всё не так идеально, не все знают об этом условии. Поэтому и надо связывать с The Qt Company по вопросам лицензирования до начала работы над проектом, даже если вы подумываете пойти Open Source путём. Ну или хотя бы изучать текст условий и соглашений.


Но это не означает, что сейчас вам надо скрываться и продавать своё приложение в переходах из-под полы. Просто напишите/позвоните и объясните ситуацию. Судить и штрафовать вас не будут (вы же не знали), стремление перейти на светлую сторону только приветствуется.

Простите, что задалбываю вас, но ситуация всё же довольно щекотливая и неоднозначная, и напрямую относится к сфере моей деятельности.

Таковы условия — нельзя смешивать Open Source и «коммерческий» код.
Что вы понимаете под термином «смешивать код»? Я же не вставляю куски из исходников Qt в свой проект.

Вот я написал калькулятор. У меня получилось 3-4 файла с исходным кодом на C++, в которых используются некоторые классы из QtCore и QtWidgets: кнопки, контейнеры, QString и так далее. Мой код сам по себе, и лицензия на него, никак не изменятся после того, как я приобрету коммерческую лицензию Qt и заполучу коммерческие версии SDK и либ. В чём тогда смешение кода? Я максимум перекомпилирую просто тот же самый свой код с новыми либами, а возможно и просто подменю libqtcore и libqtwidgets без изменения своих бинарников.

Лицензия для проекта должна выбираться до начала разработки.
Также не совсем понятно, что вы понимаете под «проектом». Новая версия моего приложения — это новый проект или нет? А если после перехода на коммерческую лицензию это будет то же самое приложение, но с другим названием? А если я возьму большую часть кода, но основательно переработаю интерфейс, так, что никто и не узнает?

Но в реальности всё не так идеально, не все знают об этом условии.
Приведу другой пример: изначально я разрабатывал коммерческий проект, полностью удовлетворяющий условиям LGPL. Всё у меня было хорошо, потому что я не планировал нарушать какие-либо пункты лицензии — в случае моего приложения ничего такого и не требовалось — и благодаря этому не платил денег. Таким образом, я взял Open Source вариант Qt и долгое время не жалел о своём выборе. Потом проходит время, возможно годы, и мне становится позарез нужно, например, поставлять приложение единым бинарником (как это делает телеграм). Вот расшибиться в лепёшку, как мне нужна такая возможность, инвесторы вдруг начали требовать, и пользователи, и различные магазины приложений, и даже баба Клава с рынка, и соответственно с этого момента мне нужна коммерческая лицензия. То есть я знал всё что мне нужно до начала разработки и осмысленно сделал выбор в пользу LGPL, но со временем условия изменились, рынок изменился, и мне нужно подстраиваться. А включать дурачка и писать в Qt Company «ой, я и не знал» я тоже не хочу, потому как потом совесть замучает (нет, на самом деле я просто не хочу тратить N рабочих часов на какую-то малопонятную переписку).
я не планировал нарушать какие-либо пункты лицензии — в случае моего приложения ничего такого и не требовалось — и благодаря этому не платил денег

Отчасти отсюда и появилось это требование о недопустимости "смешивания кода". Представьте другую компанию, которая начала разработку своего проекта одновременно с вами, но приобрела коммерческую лицензию сразу на старте проекта и всё это время платила за обновление поддержки и получение апдейтов (а в случае подписки — платила за все эти месяцы/годы). Теперь и вы, и эта компания находитесь в текущей временной точке, и вы решаете перейти на коммерческую лицензию. То есть, вы сравнялись с этой компанией, но при этом "сэкономили" на предшествующем временном периоде, когда разрабатывали под Open Source. Получается, та другая компания — дураки, а вы — удалый мушкетёр? :)


Другая сторона вопроса: вы вели разработку под Open Source, то есть все эти месяцы/годы пользовались трудами Open Source сообщества. И это было нормально, вы же соблюдали соответствующую лицензию. Теперь же вы решаете "коммерцизироваться" и закрыть исходники (и/или не соблюдать другие требования Open Source) и переходите на коммерческую лицензию. Как бы поматросили Open Source, а женились на другой.


Но это только как я это понимаю. Какие причины появления этого условия на самом деле — я не знаю.


То есть я знал всё что мне нужно до начала разработки и осмысленно сделал выбор в пользу LGPL

Ну получается, что не всё знали, а точнее не всё предусмотрели. Может же быть такое, особенно в самом начале разработки. Потому это требование и не является таким уж прям жёстким. Объясните ситуацию, должно найтись какое-то решение.


Новая версия моего приложения — это новый проект или нет?

Для меня выглядит как тот же. Как это трактовать юридически — я не знаю.


А если после перехода на коммерческую лицензию это будет то же самое приложение, но с другим названием?

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


Мой код сам по себе, и лицензия на него, никак не изменятся после того, как я приобрету коммерческую лицензию Qt и заполучу коммерческие версии SDK и либ

Код не меняется, но лицензия-то изменяется. Была GPL/LGPL, стала Qt Commercial.


В чём тогда смешение кода?

У вас до перехода на коммерческую лицензию код был под лицензией Open Source. После перехода он станет под лицензией Qt Commercial. Вот этот переход не допускается. Нельзя вести разработку под Open Source, а потом "вдруг" перескакивать на коммерческую лицензию.


Плюс тот сценарий, что я привел в статье: в команде один разработчик с коммерческой лицензией и десять разработчиков без коммерческой лицензии. Им нельзя вместе работать над одним проектом и использовать "общий" код.


А если я возьму большую часть кода, но основательно переработаю интерфейс

Вот это и не допускается — взять часть кода, написанного под Open Source, и использовать его далее под коммерческой лицензией. Вы попользовались Open Source и, когда это стало удобно, коммерцизировались. Вас я ни в чём не обвиняю, просто так это может выглядеть в общем случае.


так, что никто и не узнает

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

если вы задались целью обмануть/нарушить лицензию
В качестве небольшого дисклаймера, особенно ввиду вашего апдейта к статье, хочу сказать, что я всеми руками и ногами против любых нарушений интеллектуального права, лицензионных соглашений и законодательства. В сфере моей деятельности я использую Qt по лицензии LGPL, линкуюсь только динамически, не модифицирую исходный код Qt (т.е. поставляю оригинальные библиотеки из вашего SDK), не копипащу код/ресурсы из поставки Qt.

Вопрос изначально задавал как раз с мыслью «а не будет ли больше профита от коммерческой лицензии?», потому как мысль давно была в голове, да вот внятного описания этих самых профитов я до этого нигде не видел. И вот теперь я вижу, что просто так (в условный один клик) пересесть с Open Source на коммерческую лицензию не получится, вот и удивляюсь, почему так. Собственно, я на 100% диванный продажник и маркетолог, но кажется мне, что такой подход больше отпугивает потенциальных клиентов, которые уже используют Qt, чем стимулирует сразу выбирать коммерческую лицензию. Будь я реально владельцем стартапа с уже рабочими приложениями в продакшене, мне было бы страшно писать в Qt Company о том, что вот-де ребята, я тут 5 лет бесплатную лицензию использовал, из-за чего вы недополучили прибыли на 100500 денег, что делать? Например потому что после этого существует риск привлечь к себе повышенное внимание Qt Company и активистов FSF, даже если таких прецедентов немного и я соблюдал все правила лицензии.

Получается, та другая компания — дураки, а вы — удалый мушкетёр? :)
Нет, потому как другая компания
приобрела коммерческую лицензию сразу на старте проекта и всё это время платила за обновление поддержки и получение апдейтов
Вы предоставляете возможность бесплатно пользоваться — компании пользуются, пока лицензия удовлетворяет их требованиям. Если какая-то компания выбрала коммерческую лицензию на старте разработки, то им это зачем-то надо (техподдержка, приоритет по фич-реквестам, денег куры не клюют), в противном случае они может и не дураки, но явно теряют деньги там, где можно сэкономить. Я руководствуюсь исключительно рыночными принципами: если я вложил условные 500$ в 2 месячных лицензии Qt, я не вложил их в зарплату дополнительного программиста, а это очень часто бывает критично, особенно в стартапах. Ещё раз повторюсь, я говорю про осмысленное взятие лицензии LGPL и полное соблюдение всех её условий, а не бесплатное использование Qt так, как вздумается.

Ну получается, что не всё знали, а точнее не всё предусмотрели.
Как показывает практика, всё предусмотреть невозможно при проектировани даже небольшой фичи, обязательно потом вылезет какая-нибудь проблема, которую не предвидели. А вы говорите про выбор лицензии на старте продукта, который вообще неизвестно, нужен кому-нибудь или нет. Кроме этого, есть рыночные тренды, которые сегодня одни, завтра другие. Есть инвесторы, которые сегодня одни, завтра другие. И так далее.

У вас до перехода на коммерческую лицензию код был под лицензией Open Source.
Минуточку, я говорю про свой код, а не про код Qt. Мой код находится под коммерческой лицензией моей компании и эта лицензия не меняется из-за смены лицензии одной из библиотек, которую я использую. Соответственно все наработки, которые я делал ранее в моём коде, как были под лицензией компании, так и остаются, с ними ничего не происходит.

Вы попользовались Open Source и, когда это стало удобно, коммерцизировались.
Да, и начинаю платить вам деньги, хотя раньше не платил. А по вашим правилам я вам не могу платить, даже если очень хочу и начал зарабатывать достаточно для этого. Несу деньги, а Qt Company говорит, не, нельзя так, сначала купи у нас лицензию, и потом начинай разработку заново.

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

Речь только про Qt. На ваш код, если взять сферический случай идеальной динамической линковки, никто не претендует (если только вы не под GPL Qt использовали). Использовался в Qt-Open-Source-проекте класс QString, какой-то функционал был с его помощью реализован — нельзя теперь этот функционал использовать в проекте под коммерческой лицензией Qt.


Если какая-то компания выбрала коммерческую лицензию на старте разработки, то им это зачем-то надо

Например, чтобы не попасть в такую ситуацию.


Как показывает практика, всё предусмотреть невозможно

Да, мир несправедлив. Но некоторые компании всё-таки исхитряются уделить вопросу лицензирования достаточно внимания (или хотя бы связаться с владельцем программного продукта) и избежать такой ситуации. Однако, ещё раз хочу обратить ваше внимание, что требование о недопустимости перехода с Open Source на коммерческую лицензию не является жёстким — текст лицензии говорит, что такой переход запрещён без согласования с The Qt Company, то есть не невозможен. И необязательно это согласование означает штрафы за все годы разработки без коммерческой лицензии.


Откуда и зачем вообще это требования взялось — я не знаю. Когда возглавлю компанию, непременно разберусь. А пока попытался объяснить как мог. Видимо, плохо смог.

Когда возглавлю компанию, непременно разберусь. А пока попытался объяснить как мог. Видимо, плохо смог.
Я прошу прощения, если по моим комментариям вам показалось, что я яростно требую объяснений и обвиняю в чём-то вас и вашу компанию. Вы отлично объяснили множество вещей про лицензирование, и, кроме момента про переход между лицензиями, из статьи я понял всё, что мне необходимо знать про лицензии Qt, хотя до этого были вопросы.

Я прекрасно понимаю, что вы — не sales manager, не юрист и не CEO. Вы разработчик, который работает непосредственно в Qt Company и в частном порядке пишет познавательные вещи о работе компании для русскоязычного сообщества, и это супер круто. Я также понимаю, что вы пишете в некоторых случаях ваши личные догадки, и ни в коем случае не пытаюсь добиться от вас истины в последней инстанции. Я просто очень сильно удивлён условием перехода между лицензиями, и пытаюсь обосновать своё удивление, потому как мало ли я что-то не так понял.

Выглядит так, что вы написали большую и хорошую статью, пытались хоть как-то ответить на множество вопросов в комментариях, но вам наставили минусов и предъявили претензии. Но на самом деле вас очень интересно читать, пишите пожалуйста ещё! Я как программист на Qt испытываю нехватку материалов на русском языке.

И, да, если будет возможность, запилите success story попадания в Qt Company, интересно же :)

Спасибо за отзыв, а то и меня и правда сложилось гнетущее ощущение некоторого негатива от ряда комментариев :)


Сакксесс-стори весьма короткая: на меня в ЛинкедИне вышел хедхантер и спросил, не хочу ли я переехать в Норвегию и поработать в Qt. Я захотел. Хотя я бы и к пингвинам поехал снег чистить, лишь бы подальше от. А тут аж Qt.


Эта же стори может стать и вашей, причём минуя звено с ЛинкедИном — я уже говорил, сейчас открыто много позиций (реально много, прошлым летом там болталось штук десять вакансий всего), потому что компания решила аццки расширяться. Можно подать на девелопера, можно на консультанта (команда консалтенси, сервисные услуги), можно на вообще не связанную с разработкой должность и другие. Если не хотите через сайт, или нужно что-то узнать — я могу связаться с соответствующим менеджером/тимлидом. Национальность никому не интересна, нанимают из любых стран (в Осло сейчас суперинтернациональная команда, например), помогают с разрешением на работу и видом на жительство (участвуют в процессе, компенсируют расходы). Единственное что — как минимум нужно знать английский, потому что всё общение/переписка на английском.


Писать буду ещё, да. Кроме запланированной Qt 3D Studio хочу ещё показать Qt Lite "живьём", а не как его наш маркетинг и один не очень такой ПМ распиарили. Ну и другие планы есть.

Супер смогли, и про succees story актуальненько :)
Давно и долго волновал вопрос как раз динамической линковки под коммерческое приложение — выпустился под LGPLv3, дал возможность подменить библиотеки и живи себе хорошо.

Не знаю, насколько, развеяли Вы данный миф — официальных ответов я нигде не видел, видел только догадки на форумах.

Теперь вопрос стоит не в приобретении лицензии, а в том, какую брать — понимаю, что под IOS или Android без Quick Compilera уже плохо. Хочу выпускать маленькие приложения в сторы обеих компаний — каким образом Qt Company определяет, подхожу ли я под стартапные расценки в 75 долларов в месяц, или я должен платить увесистые 300 per month?

А может есть пожизненная лицензия для пожизненных стартапов оборотом меньше 100к долларов в год?))
Стоп-стоп, LGPL не миф, это лицензия, и вопрос в приобретении коммерческой стоит только если она вам действительно нужна. А так коммерческое ПО можно и под жесткой GPL продавать.
видел только догадки на форумах

Потому что ответственность за ваш выбор лицензии никто на себя не возьмёт. Да и зачем строить догадки — текст лицензий известен и находится в открытом доступе. Ваши (или нанятые) юристы могут его изучить и принять соответствующее решение.


выпустился под LGPLv3, дал возможность подменить библиотеки и живи себе хорошо

Я немного уже устал это повторять :) способ линковки и связанные с ним вопросы это только одно из требований LGPL, там есть и другие, и они тоже обязательны для выполнения.


Теперь вопрос стоит не в приобретении лицензии, а в том, какую брать

Если у вас разработка приложений, то выглядит как Qt for Application Development. Приложения в спорах — это надёжный такой отличительный признак, что у вас не девайс, а именно простые приложения.


каким образом Qt Company определяет, подхожу ли я под стартапные расценки

Это и есть единственное условие — "оборот меньше 100к долларов в год". Подтверждать эту цифру финансовой отчётностью не нужно, джентельменам верят на слово. Но как только вы эту цифру превысите, нужно будет перейти на полную стоимость.


Пожизненной лицензии для вечных стартапов нет :)

Прошу прокомментировать:
1) Что-то с такими условиями сложно представить фрилансера зарабатывающего с помощью Qt (если предположить, что интересует вариант без раскрытия исходников — коммерческий). Или это возможно? Сколько стоит лицензия/подписка для фрилансера?
2) Нет ли каких ограничений на использование динамических библиотек Qt в deb-пакете? Слышал такой вопрос, удивился, но ответа не знаю.
  1. Как я выше уже писал, текущая ценовая политика очень плохо (никак) подходит для малого бизнеса — коммерческие лицензии Qt просто слишком дорогие (и региональных цен как в Steam нет). Но руководство это не сильно заботит, потому что вся прибыль идёт от крупных сделок на сотни тысяч евро/долларов. Штучные лицензии для индивидуальных разработчиков влияния почти не оказывают. Но фрилансер, я думаю, может квалифицироваться как стартап-компания с оборотом менее 100 000 долларов в год и потому претендовать на соответствующую лицензию по сниженной стоимости;
  2. А что особенного в библиотеках Qt в deb-пакете?
Лицензированние под GPL кажется весьма правильным шагом для компании. Предполагаю, что руководство вообще мечтало бы оставить только два варианта: либо GPL, либо комерческая лицензия.

Вы в нескольких местах пишете, что динмаическая линковка это не единственное требование LGPL. И, хотя лицензия не принадлежит компании и вот это вот все, было вы интересно услышать список конкретных требований. Раз уж вы постоянно это пишете, то складывается ощущение, что вы точно знаете какие еще требования есть. Ваше мнение, без юридической чистоты.
руководство вообще мечтало бы оставить только два варианта: либо GPL, либо комерческая лицензия

Так и есть. Но хотелось бы, чтобы это оставалось мечтами. Добавление LGPL дало и много хорошего, а не только "навредило" продажам коммерческой лицензии. И если сейчас LGPL убрать, то как минимум можно ожидать уменьшения вклада Open Source сообщества в развитие Qt.


складывается ощущение, что вы точно знаете какие еще требования есть. Ваше мнение, без юридической чистоты

Большую часть знаний по этому вопросу я получил из общения как раз-таки с юристами потенциальных клиентов. Зачастую они сами находят "проблемные" места в текстах GPL/LGPL и спрашивают нас, а так ли это? Ну а что мы можем ответить? Это не наш текст, мы не можем давать юридическую консультацию по этому вопросу и брать на себя ответственность за это решение.


Из наиболее часто встречаемых:


  • кроме предоставления исходного кода/объектных файлов библиотек нужно предоставлять также инструкции (и инструменты, если использовались какие-то специфические) для сборки всего этого обратно в рабочее приложение, а также соответствующий код самого приложения, где происходит вызов API библиотек. В ряде случаев последний пункт (да и остальные тоже) оказывается невыполним без раскрытия существенной части собственного кода, что не все могут себе позволить;
  • нельзя создавать "закрытые" устройства, должен быть доступ к внутренней памяти устройства, чтобы реализовать предыдущий пункт. Для большинства коммерческих продуктов это недопустимо (особенно если это ТВ-приставки, банкоматы и вообще всё связанное с платежами, системы доступа, медицинская техника, автомобильные кластеры и т.д.);
  • нет ясности с интеллектуальной собственностью, патентами и DRM;
  • нужно объявлять, что в составе продукта используется ПО под лицензиями Open Source. Не все компании хотели бы о таком объявлять;
  • потеря преимущества "ноу-хау" — все ваши улучшения/оптимизации Qt должны быть опубликованы, а значит и ваши конкуренты смогут ими воспользоваться.

И это только некоторые сложности — которые встречаются наиболее часто. Они исходят не от The Qt Company, а из текста GPL/LGPL. И это только то, что лично я узнал из общения с юристами конкретных компаний, которые рассматривали текст лицензий GPL/LGPL применимо к своим конкретным проектам.


Ни спорить, ни обсуждать это всё я не хочу. Меня спросили моё мнение, я поделился личным опытом. Никакой юридической силы во всём этом нет.

если сейчас LGPL убрать, то как минимум можно ожидать уменьшения вклада Open Source сообщества в развитие Qt.

Можно ожидать смерть Qt как библиотеки по умолчанию для кросс-платформенной разработки GUI на C++. Сила Qt — в универсальности. Сейчас Qt — универсальная GUI-библиотека и разработчикам она нравится именно потому, что она подходит как для GPL, так и для личных коммерческих и некоммерческих проектов под почти любой лицензией (через LGPL) и, естественно, для «работы» — разработки коммерческого софта по найму. Один раз изучил — и можно везде использовать.
Если QtCompany хочет переориентировать Qt на рынок крупных корпорация, акцентируя внимание на Qt3D и embedded/automotive — тогда можно отказываться от LGPL. Правда в таком случая вангую LGPL-форк, на который перейдёт основная масса разработчиков.
Где можно достать текст коммерческой лицензии Qt на русском языке?
А то наши юристы не сильны в языках ;)

Нет, текст есть только на английском. Один и тот же текст используется во всех странах (Германии, Испании, Китае и других). При необходимости, может быть создан перевод на требуемый язык, но необходимость должна быть реально необходимой. Пока было достаточно английского оригинала.


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


Кстати говоря, то же самое и с GPL/LGPL — их текст тоже доступен только на английском (только тут ещё и запрещён любой перевод), что порождает дополнительные проблемы для неанглоязычных стран. Отчасти поэтому недавно появилась лицензия EUPL, которая "из коробки" доступна на 23 языках, и все они имеют одинаковую юридическую силу. Будет ли Qt когда-то доступен под EUPL — я не знаю.

Кто-то может четко и ясно все-таки перечислить эти требования GPL/LGPL? А то автор написал статью и при этом отказывается отвечать на вопросы, связанные с open-source лицензиями. Ну и что, то они не имеют отношения к The Qt Company, но ведь и позиция автора не является официальной? И если этот вопрос здесь задают настолько часто, то может стоит прислушаться?

Что нужно сделать, что бы ПОЛНОСТЬЮ соблюдать требования GPL/LGPL?
1. Динамически линковать;
2. Сделать что-то еще;
3. И еще что-то сделать?
Кто-то может четко и ясно все-таки перечислить эти требования GPL/LGPL

Я так полагаю, если вы не можете самостоятельно выделить их из общедоступного текста этих лицензий (я тоже не смог), то остаётся только обратиться к юристу с соответствующей специализацией и ответственностью.

Немного переформулирую вышестоящий вопрос — какие дополнительные требования _от себя_ выставляет The Qt Company, чтобы появилась возможность использовать LGPL?

1. Использовать только компоненты, подпадающие под этот тип лицензирования.
2. В программе явно указать об использовании Qt vX.Y (About...) (не помню, откуда я это взял)
3. Еще? Или https://www.qt.io/faq/#_Toc_3 пункт 3.7 — это полный список (кроме требований самой LGPL)?

Например, доступно ли использование не поддерживаемой уже версии 4.8, так как исходники могут быть убраны Компанией?

Но поймите же вы, компания не может выставлять дополнительные требования, это не её лицензия. Полный список требований и ограничений содержится в тексте лицензии (в данном случае, LGPLv3) — кроме него никаких больше нет. Соблюдаете все требования из LGPL — спокойно берите LGPL версию Qt и используйте её на условиях LGPL.


  1. Само собой, но это требование исходит не от компании. Если вы возьмёте компонент, доступный только под GPL, то и соблюдать теперь придётся GPL. А коммерческий компонент вы не можете взять, потому что у вас нет коммерческой лицензии;
  2. Есть такое требование в тексте Open Source лицензий. Но и оно исходит не от компании, а из этих лицензий;
  3. Если честно, я не знаю, какой смысл был это публиковать в FAQ на сайте, потому что юридический департамент при каждом удобном случае предостерегает нас консультировать кого бы то ни было по вопросам Open Source, чтобы избежать возможных последствий. И здесь это всё равно лишь трактовка/интерпретация текста чужой лицензии. Не знаю, наверное чтобы дать хотя бы какое-то понимание, что просто взять и динамически слинковаться не означает соответствие полному списку требований.

доступно ли использование неподдерживаемой версии Qt

Неожиданный вопрос, но как я понимаю, такая версия Qt отличается лишь тем, что вы больше не можете получить по ней тех.поддержку. В остальном — это такое же ПО, доступное на условиях определённой лицензии.

2. В программе явно указать об использовании Qt vX.Y (About...) (не помню, откуда я это взял)
Не совсем так. Телефоны и браузеры же не суют вам под нос список всех библиотек, которые там использованы.

Если в программе вообще есть место, где перечислются использованные продукты (а этого не только GPL требует, но и даже какая-нибудь вшивая libPNG), то там вы должны обязательно упомянуть и Qt тоже. Посмотрите где и как в вашем браузере описано использование в нём libpng и сделайте так же.
Добрый день! Есть несколько вопросов:

  1. Согласно схеме, Qt 3D Studio отнесена к «Automotive Suite», про который было сказано: «Что касается Automotive Suite, то этот продукт ориентирован на “крупных игроков” уровня BMW, Volvo и прочих, потому его заполучить будет не так просто.». Будет ли данный продукт доступен всем остальным (в т.ч. владельцам обычных лицензий) или будет предложен леденец «петушок на палочке»?
  2. Правильно ли я понимаю, что если компания не готова самосвалами подвозить бабло Qt-шным сейлзам, то с решениями от Qt на данный момент вообще лучше никак не связываться? Насколько в принципе безопасно для компании инвестировать в решения от Qt? Есть ли хоть какие-то гарантии, что через несколько лет цены на лицензии не станут настолько неподъёмными, что начнут губительно сказываться на ценовой конкурентоспособности готового продукта?
  3. Можете ли вы назвать хотя бы примерные цены на лицензию для разработчиков устройств и минимальный пакет рантаймов (5000 шт., как я понимаю)? Хотелось бы хоть примерно представлять порядок цен...

Заранее спасибо.
  1. Qt 3D Studio к Automotive Suite относится "логически", так как задумывается её использовать для создания 3D GUI в авто-дашбордах (инструментальный кластер). Но "технически" ничто не мешает её использовать и для десктопов. Просто сейчас ещё не известно, в составе какого продукта она будет доступна. Я бы сделал её доступной во всех продуктах (больше продаж же), но это будут решать Продакт Манагеры;
  2. Но почему самосвалами и почему подвозить. Стоимость лицензий вовсе не космическая, и вы можете заплатить однажды за пожизненную лицензию и больше не заносить ни копья (но и, понятно, с определённого момента перестать получать поддержку и апдейты). Про гарантии — стоимость лицензий растёт каждый год в среднем на 5%. Да, это может измениться, но пока не менялось. Что будет дальше — гарантий нет. Но в какой вообще компании вы можете получить гарантии на стоимость её продукта через 10 лет? Другое дело, что вы можете добавить в договор пункт, что, например, вы сохраняете за собой право покупать рантаймы по фиксированной цене на протяжение пяти (десяти, тысячи) лет, но надо понимать, что согласование такого пункта потребует определённого коммитмента и от вас (например, приобрести пять лет поддержки заранее, "upfront");
  3. Мы тут все свои, конечно, но если я это напишу (включая личное сообщение), а отдел продаж как-нибудь об этом узнает, то меня [и] высушат. Стоимость лицензий объявляется только после обсуждения вашего проекта с аккаунт менеджером. Но это не такая и проблема — связаться с ними и узнать.
и больше не заносить ни копья

Хотя в случае с рантаймами, по исчерпанию уже закупленного объёма, надо да, покупать новый. Ну тут можно либо купить "с запасом" (а это ещё и выгоднее, потому что с ростом объёма падает поштучная стоимость), либо зафиксировать цену соответствующим пунктом в договоре (если удастся достичь соглашения).

Меня как разработчика, клепающего внутри корпоративный софт больше беспокоит вопросы


  • о быстродействии;
  • вопрос о профилировании кода, чего нет в QtCreator, но есть в Code::Block под Windows;
  • вопрос о снятии с поддержки Windows XP — пока еще довольно распространенной офисной OS (у нас к примеру около 85% парка машин на ней.)
    Приходится оставаться на старых релизах Qt4.8 что собственно ничуть не мешает разработке.
старых релизах

Если вас 4.8 устраивает и из нового функционала ничего не нужно, то и зачем обновляться. Некоторые даже умудряются на 4 релизе вести embedded разработку, то есть натурально GUI на виджетах внутри девайса, и их всё устраивает — почему бы и нет.


о быстродействии

Что именно вас беспокоит?


о профилировании

Но ведь есть же интеграция с perf и Valgrind, а также CPU Usage Analyser ну и профайлер для QML.


о снятии поддержки Windows XP

Ну, всё-таки она не поддерживается уже самой Microsoft. RnD решило не тратить на это ресурсы. Но если очень нужно, то за дополнительные деньги можно получить расширенную поддержку и для Windows XP, и для старых релизов. Кстати (а может и не совсем), среди услуг консалтенси есть так называемое "сопровождение сборки Qt заказчика".

Жаль, что некоторые компоненты (Qt Charts) вышли только под GPL и коммерческой лицензиями, мне кажется, теряется универсальность, хотя такой шаг понятен, хотят поднять продажи коммерческой версии и сузить возможности LGPL.
И все-таки, я не понимаю. Прочитав статью и комментарии, у меня сложилось впечатление, что я не могу использовать Qt на Embedde-устройствах без покупки устройства. Но в тоже время, в статье говориться, что Qt не имеет никакого отношения к лицензии GPL, не имеет права вмешиваться в эти вопросы. Противоречие, двойные стандарты или я что-то не понял?

Моделируем ситуацию. Я разработал аппаратную часть устройства. Установил на него Embedded Linux. Скачиваю Open-source версию Qt.Под Linux пишу программу на Qt. Без этой программы устройство не выполняет своих функций.
Дальше я начинаю продавать устройство, предоставляя при этом исходные коды как программной части так и аппаратной. Распространяю все это под GPL.

Согласно статье, я должен приобрести лицензию «Qt for device creation». Но ведь я использую Open-source версию, почему я должен что-то еще приобретать?
FSF запрещает использовать Qt в Embedded-устройствах или Qt Company накладывает какие-то ограничения на GPL, на что они как-бы не имеют права?

Помогите разобраться.
Да, меня тоже смущает это.
Допустим я написал какую-то программу, которая должна крутиться постоянно, скажем рабочий монитор охраны, всё под gpl, устройство скажем — какой-то планшет, который выполняет функцию монитора, и на нём больше ничего нет. Значит я не могу использовать Qt в Embedded-устройствах? Или Digia нарушает саму GPL, пытаясь навязать свои условия на продукт под этой лицензией?
Если конечный пользователь может поменять прошивку, программу, либы Кутэ, то допустимо.

Проблема только если устройство «закрыто» от вмешательства. Тогда обязательна коммерческая лиц.
поменять прошивку, программу, либы Кутэ, то допустимо

Я скорее всего уже всех задолбал, но там в тексте лицензии ещё много всего кроме просто предоставления возможности замены библиотек.

Я скорее всего уже всех задолбал, но там в тексте лицензии ещё много всего кроме просто предоставления возможности замены библиотек.


Вы задолбали в каждом втором комментарии намекать и ничего толком не говорить.
Просто возьмите и расскажите. Еще лучше посвятить этому вопросу следующую статью.

Но ведь можно просто взять текст лицензии и прочитать.


А вообще, юристы берут немаленькие деньги за такого рода консультации, а вы хотите чтобы безымянный пользователь вам её предоставил бесплатно, онлайн, в виде "комментария на форуме"? Но даже если это случится (и случается, как видим в ветке) — вы действительно на основании такого комментария будете принимать какое-либо решение по своему проекту?

Действительно и вполне. На хухь Qt с такой радужной политикой

Upd. И с совершенно непрозрачным ценообразованием (это кстати уже проходит под ФАС)

Такие «друзья» не нужны
Действительно и вполне. На хухь Qt с такой радужной политикой
Это не «радужная политика». Это совершенно стандартная практика. Лицензии потому и занимают не пять строк, как типичный комментарий тут, а многие страницы текста, потому что в них оговорены различные ньюансы.

В той же LGPL оговариваются разные случаи — например требования отличаются в зависимости от того используете ли вы Qt для того, что называется «consumer product» (бытовой прибор, используемый обычными пользователями) или что-то промышленное (предназначенное в основном для использования не в доме).

И вы хотите чтобы вам тут коротенько, на пять строчек, всё это описали? Для этого юристы есть. И FAQ (вот этот и вот этот вопросы, очевидно, релевантны). И вообще много чего есть, но было бы странно, если бы люди из The Qt Company стремились вам облегчить жизнь.

Они ведь в этом, как бы, не слишком-то и заинтересованы…
Просто возьмите и расскажите. Еще лучше посвятить этому вопросу следующую статью.
По-моему вы просто не понимаете того, как работают юристы. «Просто возьмите и расскажите» — это как раз то, чего они не просто стараются избегать, а то, с чем они всеми способами борются. Qt здень совершенно не при чём, это просто базовый принцип.

В идеале ответ, который вы получите — будет касаться конкретной версии программы, библиотеки и железки и чем лучше юрист — тем более «узким» этот ответ будет!

Это вообще фундаментальное различие между юристами и программистами — последние стараются всё обобщать, абстрагироваться от деталей и получать ответы на как можно более общие вопросы. В то время как первые — стремятся как можно больше вопросов оставить не отвеченными и обойтись как можно более частными и мелкими случаями (то есть, например, отвечать не на вопрос «законно ли делать X», а на вопрос «какой максимальный размер штрафа мне грозит в ближайшие 5 лет, если я буду делать X и какова вероятность его получить?»).

Это связано с тем, что юристы, в некотором смысле, работают с квантовыми обьектами: ответ «да» или «нет» может дать только Верховный Суд, всё остальное — это некоторая оценка суперпозиции смеси ответов «может быть да» и «может быть нет». Разумеется чем более общий вопрос мы рассматриваем, тем сложнее нас сказать что скажет в ответ на это Верховный Суд (если дело до него дойдёт)!
… Дальше я начинаю продавать устройство, предоставляя при этом исходные коды как программной части так и аппаратной. Распространяю все это под GPL. Согласно статье, я должен приобрести лицензию "Qt for Device Creation". Но ведь я использую Open Source версию, почему я должен что-то еще приобретать?

Но где вы такое нашли в статье? Если вы полностью соответствуете условиям GPL (или LGPL), то ни у кого нет к вам претензий, вы спокойно можете продавать ваш продукт.


Если вы не хотите/можете соответствовать условиям Open Source лицензий (а также если нужна поддержка и/или коммерческие фичи), тогда нужно приобретать коммерческую лицензию. И в случае embedded проекта это будет "Qt for Device Creation".

Карта уже устарела, офис в Бостоне появился.

А также в Париже и скоро ожидается в Лондоне.

Из текста статьи не совсем очевидно, могу ли я производить кофеварки, но не пользоваться при разработке и поставке коммерческими компонентами (кстати, что такое Android injection?) и распространять свою работу под GPL3?

В смысле, в отрыве от гипотетической ситуации - суть вопроса в том, не подразумевается ли необходимость покупки коммерческой лицензии просто по факту использования Qt в разработке для девайсов? Или же можно разрабатывать для девайсов и при этом пользоваться (L)GPL лицензиями?

(cтандартный текст про "я не юрист, но...")

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

Вы совершенно не обязаны приобретать коммерческую лицензию, чтобы продавать свой продукт, будь то просто десктопное приложение или же целый девайс, как в вашем случае кофеварка. Другое дело, что вы можете думать, что вы выполняете все требования GPL, а на самом деле окажется, что не все. Да даже и у LGPL достаточно "сложных" обязательств, особенно применимо к девайсам (например, пользователь должен иметь возможность заменить библиотеки Qt внутри девайса на свои какие он хочет, то есть как минимум у вас должен быть предоставлен доступ к файловой системе).

Что такое "Android injection" я не знаю. Что вы имеете в виду?

что вы имеете в виду

В табличке сравнения лицензий

К сожалению, пиксельные ссылки не кликабельны :)

Ааа, это из моей же собственной таблицы ) сам написал, сам забыл.

Я не уверен, что эта фича ещё доступна/поддерживается (сам ни разу не пользовался, и давно не видел никаких новостей). Там смысл в том, что как на устройство с embedded GNU/Linux можно залить готовый образ системы, которая грузится сразу в ваше полноэкранное Qt приложение (Boot to Qt) вместо стандартного рабочего стола / консоли, так и на Android девайсе (не обязательно смартфон, есть и embedded на Ведроиде) можно было сделать примерно то же самое - "вклиниться" в порядок загрузки и запускать сразу ваше полноэкранное Qt приложение.

Sign up to leave a comment.

Articles