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


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


Но речь пойдёт не сразу про лицензии, сначала я хочу рассказать немного о компании, чтобы было понятно, кто именно сейчас занимается разработкой/распространением фреймворка и вообще стоит за Qt.



The Qt Company


Мне показалось важным начать с вводной части, потому что до сих пор есть “серые” места даже в таких простых вещах как правильное произношение (“кьют”) и написание ("Qt"). Что уж тут говорить, если и во внутренней переписке и звонках можно иногда услышать "ку-ти" и увидеть "QT" (от разработчиков — никогда).


История компании


Иногда на выставках задают вопросы вида: “Как, а вы ещё живы?” или “А разве Nokia не того?”. Да, компания вполне жива и не имеет ничего общего с Nokia уже несколько лет.


Вот вся история компании вкратце:


  • 1994: Troll Tech (Trolltech). Разработка Qt началась ещё в 1992, первый коммерческий релиз состоялся в 1995;
  • 2008: Nokia покупает Trolltech;
  • 2011: Финская компания Digia приобретает коммерческую часть Qt у Nokia;
  • 2012: Digia выкупает Qt у Nokia полностью;
  • 2014: Digia начинает выделять Qt в отдельное подразделение (The Qt Company);
  • 01.05.2016: The Qt Company выходит из состава Digia и становится самостоятельной компанией. Также происходит IPO (трекер QTCOM.HE), и соответственно финансовая отчётность находится теперь в открытом доступе — например, за 2016 год компания заработала 32 миллиона евро (кстати, в 2015, ещё в составе Digia, цифра была около 27 миллионов евро).

Вообще, в планах компании сейчас стоит цель достичь прибыли в 100 миллионов евро к 2021 году, потому сейчас идёт активный набор новых сотрудников, и помимо прочих вакансий особенно срочно нужен так называемый sales engineer в берлинский офис. Если кому-то интересно — напишите мне, я расскажу подробнее.


Говоря о Nokia, нельзя не упомянуть её вклад в распространение Qt — ведь именно Nokia сделала Qt доступным также и под лицензией LGPL. По понятным причинам, продажи лицензий её не интересовали — Nokia хотела “популяризировать” Qt, чтобы создавалось больше приложений для её мобильной платформы, а GPL этому очень мешала. И действительно, сразу же после этого начался взрывной рост сообщества Qt, так что спасибо Nokia за это. Но есть и обратная сторона: продавать ПО, лицензируемое одновременно под LGPL и коммерческой лицензией — это довольно непростая задача, так что в этом смысле LGPL-наследие Nokia "fucked up sales big time" (не буду переводить), как сказал сотрудник отдела продаж, пожелавший остаться неизвестным.


Что хочу отметить особо — при всех произошедших сменах владельцев разработчики Qt оставались те же (насколько это возможно за более чем 20 лет). Некоторые, включая нынешнего chief technology officer (CTO) Lars Knoll, работают в Qt и сегодня, а начинали ещё во времена Trolltech.


Вот вкратце об истории всё. Кстати, если будет интересно, расскажу, почему домен — qt.io, а не qt.com (спойлер: киберсквоттинг).


Офисы в разных странах


The Qt Company — международная компания с офисами в нескольких странах:


Офисы The Qt Company


И хотя юридически главный офис сейчас находится в Финляндии, исторически самый большой офис — в Осло (Норвегия). В нём же сидит большинство разработчиков (и CTO).


Российское же представительство The Qt Company одно из самых маленьких (если не самое) — на всю страну только один небольшой офис в Санкт-Петербурге. Кстати говоря, после определённых событий питерский офис однажды получил такое письмо:

В связи с войной между [...] и Россией, для меня в настоящее время неприемлемо общение с российским офисом компании. Пожалуйста, переадресуйте мой запрос в какой-либо европейский или американский офис The Qt Company.
В общем, наличие офисов в разных странах иногда пригождается довольно неожиданным образом.


Релизы Qt


Новые релизы выходят обычно два раза в год, но иногда даты съезжают и в каком-то году может оказаться всего один релиз, зато в другом — три.


Если рассмотреть сроки поддержки релизов, то пока ещё действует “старая” система, по которой минимальный поддерживаемый релиз — 5.4.


По новой же системе начиная с Qt 5.6 релизы теперь будут делиться на обычные и LTS (long-term support):


  • обычные будут сопровождаться в течение одного года;
  • LTS — в течение трёх лет.

Таким образом, текущие поддерживаемые (сопровождаемые) версии:


  • 5.4 — до июля 2017;
  • 5.5 — до марта 2018;
  • 5.6 (LTS) — до марта 2019;
  • 5.7 — до июня 2017 (уже вот-вот);
  • 5.8 — до января 2018;
  • 5.9 (внезапно, тоже LTS) — до июня 2020.

Сопровождение включает в себя выпуск корректирующих релизов (x.x.1, x.x.2 и т.д.) а также техническую поддержку. Не следует путать техническую поддержку с баг-фиксами: корректирующие релизы и баг-фиксы, разумеется, доступны для всех, но техническая поддержка предоставляется только обладателям коммерческой лицензии (об этом будет ниже).


Пример с прекращением сопровождения релиза: если вы используете Qt 5.3 и по тем или иным причинам не можете/хотите обновляться до актуальной 5.9, то вы можете продолжать разработку с Qt 5.3 и выпускать свои продукты — но не ожидайте никаких обновлений/исправлений для этой версии. Даже если у вас есть доступ к тех.поддержке — обращаться с вопросами по Qt 5.3 вы не сможете, стандартная поддержка этого релиза также закончилась. Но если вам очень нужно, то есть возможность приобрести расширенную (extended) поддержку для устаревших версий, и тогда сопровождение этой версии будет возобновлено специально для вас.


Двойная лицензия


Qt всегда был доступен под “двойной” (dual-license) лицензией: Open Source и коммерческой. С коммерческой всё понятно: компании нужны деньги, чтобы платить сотрудникам и развивать фреймворк. Но зачем делать свой продукт доступным под лицензиями Open Source?


Вклад Open Source в разработку Qt


На графике показан вклад сторонних компаний в разработку Qt. Нетрудно видеть, что хотя вклад The Qt Company и самый большой, немалая часть разработки ведётся силами Open Source сообщества. А в некоторых модулях вклад сторонних разработчиков даже больше — к примеру, появление Qt 3D является заслугой сервисной компании KDAB.


Поэтому важно, чтобы Qt был и оставался быть доступным не только под коммерческой лицензией, но и под Open Source. Далее ещё будет отдельно про KDE Free Qt Foundation.


Положительную роль играет и такая сторона Open Source — допустим, некоторая компания Chamomile решает использовать Qt в разработке своего нового продукта. Выделяются ресурсы, и разработка ведётся в течение какого-то времени. Затем компания Macrohard неожиданно покупает The Qt Company и, по своему обыкновению, уничтожает её (и продукт). Что это означает для компании Chamomile — проект обречён, все ресурсы потрачены впустую, ведь разработка Qt прекратилась? Нет — его исходники доступны, и разработка будет продолжаться независимо от существования того или иного юридического лица. Конечно, повисает вопрос с лицензиями, но самое главное — Qt как технология останется жив и будет продолжать развиваться.


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


Продукты Qt


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


Сейчас список продуктов такой:


  • Qt for Application Development — разработка приложений;
  • Qt for Device Creation — разработка встраиваемых (embedded) решений;
  • Automotive Suite — инструментальный кластер (IC) и развлекательная система внутри автомобиля (IVI).

Эти три продукта можно представить так:


Техническая иерархия продуктов Qt


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


Однако кроме технической есть и юридическая составляющая. Например, вы создаёте кофемашину и используете Qt в разработке ПО для неё. По условиям лицензии Qt for Application Development вы не можете распространять/продавать ваши кофемашины — для этого вы должны обладать лицензией Qt for Device Creation, потому как именно она лицензирует такое использование Qt (распространение в составе “устройства”, подробности чуть ниже.


Через некоторое время ожидается появление новых продуктов. Скорее всего, они тоже будут базироваться на Qt for Device Creation и расширять его дополнительным функционалом (и условиями лицензирования), специфичным для определённых индустрий (например, ТВ-приставки, медицина и т.п.).


Есть ещё один, обособленный продукт — лицензия на создание SDK на основе Qt. Этот пакет существует на случай если кто-то захочет взять Qt, внести в него свои изменения (добавить в состав новые библиотеки, расширить Qt Creator дополнительными плагинами, ещё что-то) и распространять/продавать как свой продукт на своих условиях (виртуальный оператор сотовой связи, как аналогия). Такой вариант лицензирования встречается очень редко (и стоит очень дорого).


Отличия между AD и DC


Вероятно, пример с кофемашиной вызвал некоторое недоумение, а может и возмущение, потому хочу рассказать о “юридических“ отличиях между продуктами Qt for Application Development и Qt for Device Creation подробнее.


Qt for Application Development предназначен для разработки приложений на десктопах и мобильных платформах, где такое приложение будет лишь одним из множества других, использующихся в системе. Примеры: Telegram, VLC, VirtualBox и другие — то есть “обычные” приложения, которые могут быть установлены на любой компьютер (смартфон, планшет) или размещены в магазине приложений (App Store, Google Play, Windows Store). Условия этой лицензии покрывают следующие операционные системы: Windows, Linux, Mac OS, iOS, Android, Windows Phone — все они уже включены в стоимость лицензии (выкинуть “ненужные” нельзя).


Qt for Device Creation предназначен для создания “устройств”, когда продукт — это не просто приложение, но комбинация софта и железа, то есть приложение разрабатывается для конкретного устройства, и конечный продукт будет распространяться/продаваться именно в таком виде — устройство и предустановленное (или устанавливаемое позже) на него ПО, без которого устройство просто “не будет работать”. Это может быть графический интерфейс пользователя либо другая существенная функциональность устройства, реализованная с использованием Qt. Условия этой лицензии покрывают только одну операционную систему из списка: Embedded Linux (в общем-то, тот же Линукс, но на embedded платформе), Embedded Windows (UWP, WinRT, Windows EC/WinCE), QNX, VxWorks, INTEGRITY — в стоимость лицензии включена только одна из них, и каждая дополнительная ОС добавляется за дополнительную плату (со скидкой за каждую последующую). Кроме того, есть ещё так называемая “лицензия на распространение” — об этом будет далее.


На всякий случай хочу пояснить, что лицензирование ОС затрагивает только “конечную” (deployment) ОС. Разработку же можно вести в любой ОС, какая нравится (Windows, Linux, Mac OS).


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


Может быть и такая ситуация: у некоторой компании два разных проекта: медиа-плеер под Windows и погодная станция на Raspberry Pi и Linux. В этом случае ей нужно приобрести обе лицензии — так называемую “комбо-лицензию”: Qt for Application Development плюс Qt for Device Creation (стоит дешевле этих двух по отдельности). Опять же, с технической точки зрения вполне себе можно работать над проектом медиа-плеера используя версию Qt for Device Creation (ведь она содержит все библиотеки из Qt for Application Development), но “юридически” по условиям лицензии это не разрешается.


Коммерческая лицензия


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


Если команда большая, то есть возможность приобрести “массовую” (site license) лицензию на всю компанию, которая не будет зависеть от реального количества разработчиков и, соответственно, обойдётся дешевле.


Свою лицензию каждый разработчик может использовать на неограниченном количестве рабочих станций и операционных систем, при условии что пользоваться ими будет исключительно он. Пример: на работе у меня стоит десктоп с Windows 10 и ноутбук с Ubuntu, а дома я использую Mac — можно установить Qt на все три машины и спокойно работать над проектом на любой из них.


Часто задают вопрос про сервера сборки, нужна ли им отдельная лицензия? Нет, лицензия требуется только для “живых” разработчиков, которые работают с Qt (“touching the Qt code”).


Подписка


Вообще, лицензии для разработчиков являются пожизненными (perpetual), но Qt for Application Development имеет опцию приобретения лицензии по подписке (subscription) (в том числе и “инди”-лицензия для стартапов). Такая лицензия оплачивается за каждый месяц использования.


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


Кстати, почему на сайте указана цена на подписку, но нигде нет цены на пожизненную? Руководство решило, что всю важную информацию в паре абзацев на сайте не уместить, и потому желающие приобрести коммерческую лицензию должны связаться с отделом продаж, который сначала объяснит систему лицензирования применимо к конкретному проекту, и только после этого объявит стоимость и условия соответствующей лицензии.


Лицензии на распространение


Qt for Device Creation (и все производные продукты, начиная с Automotive Suite) помимо лицензий для разработчиков имеет вторую составляющую — “лицензии на распространение” (distribution licenses или runtimes (не самый удачный термин)). То есть, компания-разработчик, распространяющая/продающая “устройства” с Qt внутри (ПО, разработанное с использованием Qt), должна пробрести эти самые рантаймы по числу распространяемых устройств. Например, пусть та же контора Chamomile продаёт 20 000 кофемашин в год, значит она должна приобрести “рантаймы” для как минимум 20 000 устройств (или сразу 100 000, чтобы на пять лет). Чем больше объём, тем меньше стоимость рантайма за одно устройство (и наоборот).


Более того, существует минимальный порог числа рантаймов — вы должны купить как минимум 5 000 рантаймов независимо от вашего реального плана поставок. Но некоторые компании (и необязательно стартапы) просто не нуждаются в таких объёмах — скажем, производитель МРТ-сканеров продаст от силы 500 сканеров за 10 лет, что ему делать с остальными 4 500 рантаймами? В общем, довольно странное требование (но к счастью не такое "жёсткое").


Продление лицензии


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


У лицензий на распространение (рантаймов) срока действия нет. Вы можете использовать их хоть пять лет, хоть пятьдесят — до тех пор, пока не исчерпаете приобретённый объём. Например, вы приобрели 10 000 рантаймов, и ежегодно вы выпускаете 1 000 единиц вашего продукта (кофемашин) — это означает, что новый пакет рантаймов вам понадобится только через 10 лет.


Пробная версия


Чтобы не покупать кота в мешке, можно запросить “триальную” (evaluation) версию Qt. Это ознакомительный дистрибутив, ограниченный по времени (действует 30 дней) и который содержит все коммерческие компоненты, то есть вы можете собственноручно пощупать образы Boot to Qt, попробовать удалённую отладку и профилирование на устройстве, замерить эффект от использования Qt Quick Compiler, оценить удобство Qt Configuration Tool для Qt Lite и прочее. Также в течение этих 30 дней у вас будет доступ к специалистам тех.поддержки.


Триал доступен как для Qt for Application Development, так и для Qt for Device Creation. Что касается Automotive Suite, то этот продукт ориентирован на “крупных игроков” уровня BMW, Volvo и прочих, потому его заполучить будет не так просто.


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


Техническая поддержка


Одним из важных (а для некоторых — ключевым) отличием коммерческой лицензии от Open Source является наличие технической поддержки.


С Open Source версией вы можете либо бороться с проблемами самостоятельно, либо полагаться на Stack Overflow, форумы, IRC-каналы и т.д. Помогут вам или нет (а также насколько быстро) зависит исключительно от уровня альтруизма участников.


При наличии же технической поддержки вы можете использовать систему тикетов в вашем Qt Account. Вы получаете гарантированное время ответа (48 часов) и доступ к специалистам Qt. Можно даже выйти на разработчика той или иной библиотеки напрямую. Нет никакой “первой линии” с “маринками”, вы общаетесь сразу с техническими специалистами. Задавать можно любые вопросы, даже если они вам кажутся глупыми и "нубскими", без ограничения на их количество. Хотя если у вас всего одна лицензия, но при этом от вас поступают сотни тикетов в день — это вызовет определённые встречные вопросы.


Кроме тех.поддержки, ваши баг-репорты и фича-реквесты получают повышенный приоритет (и помечаются внутренним маркером “коммерческий клиент”).


Также есть возможность приобрести премиум поддержку: выделенный специально для вас специалист, время ответа снижается до 24 часов, ещё больший приоритет для баг-репортов и реквестов, не нужно предоставлять минимальный пример проекта для воспроизведения бага и даже возможность удалённого подключения.


Сервисные услуги


Если и премиум поддержки недостаточно, то The Qt Company также оказывает сервисные (consultancy) услуги. Это вебинары/тренинги в офисе (обучение по стандартным программам или по вашему списку интересующих тем), семинары/воркшопы (анализ архитектуры вашего проекта, оптимизация производительности), изготовление proof-of-concept, срочная реализация фича-реквестов, а также просто аутсорс разработки.


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


Open Source лицензии


Ну и наконец про Open Source лицензии.


GPLv3/LGPLv3


Текущая Open Source версия Qt доступна под условиями и ограничениями GPLv3 или LGPLv3. До Qt 5.7 это были GPLv2.1 и LGPLv2.1.


LGPL является менее “строгой” лицензией по сравнению с GPL, и в подавляющем большинстве компании, решившие пойти путём Open Source, выбирают именно её. Однако, кроме более “мягких” требований LGPL отличается от GPL тем, что не все компоненты Qt доступны под LGPL — например, Qt Charts, Qt Data Visualization и Qt Virtual Keyboard доступны только под GPL, то есть вы не можете использовать их в LGPL-проекте.


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


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


Вообще, лицензии Open Source не принадлежат The Qt Company, потому она не может предоставить чёткий список требований и ограничений GPL/LGPL по пунктам — это личная ответственность каждой компании, которая хотела бы использовать Qt под той или иной лицензией Open Source. Если юристы компании, изучив текст соответствующей лицензии, выносят вердикт, что продукт компании соответствует требованиям лицензии — это их решение и их ответственность. Потому, если какая-то компания-разработчик заявляет, что им коммерческая лицензия не нужна, и они будут использовать Qt под LGPL, так как полностью ей соответствуют — мы даже не спорим. Может, они и правда соответствуют. Мы не юридическая фирма, и потому не можем консультировать по вопросам использования СПО. The Qt Company отвечает только за свою коммерческую лицензию. Выполнение требований лицензий Open Source регулируется не нами.


Пока что я почти не видел сколько-нибудь крупной компании, которая выбрала бы Qt под Open Source лицензией для своего коммерческого проекта. Если говорить, например, о Германии, то там отдел продаж вообще работает в режиме “алло — сколько, вы говорите, нужно лицензий — отправляю договор”. Мало кто хочет рисковать своим бизнесом, когда текст лицензий попросту не совершенен (переход с GPL/LGPLv2.1 на v3 из-за тивоизации, нечёткое определение “consumer product” и прочие “серые” места), а также когда судебные процессы в этой сфере выдают непредсказуемый результат (GPL внезапно рассматривается как договор).


Я представляю, да, в реалиях какой страны я тут расписываю за Open Source лицензии и их требования. Далеко не отходя за примерами — первые мои работодатели в России, где я начинал как раз-таки разработчиком C++/Qt, имели весьма слабое представление о каких-то там лицензиях-шмицензиях. Вот же страница загрузки, вот ссылка на установщик — всё ставится, ничего не просит, платить не надо, Далее — Далее — Принять — Далее — Готово, можно работать.


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


А ещё вот кстати: одной из метрик анализа данных о посетителях сайта с недавних пор является количество загрузок Open Source версии. То есть, если в каком-то регионе активно грузят “свободный” Qt, то в глазах менеджмента этот регион является очень перспективным, и значит надо усилить в нём присутствие, потому что скоро начнут расти продажи коммерческих лицензий. Лишним будет говорить, что по числу загрузок лидируют Россия, Индия ну и далее по списку. Я пытался объяснять руководству, что цифры эти означают нечто совсем другое, но мне, скажем так, не совсем поверили. Для них это реально невообразимая ситуация — что кто-то может игнорировать текст лицензионного соглашения.


Переход с Open Source на коммерческую


По условиям лицензионного соглашения нельзя смешивать коммерческий и Open Source код. К примеру, нельзя иметь одного разработчика с коммерческой лицензией и десять разработчиков с LGPL, и чтобы все они работали над одним проектом или использовали общие компоненты.


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


Разница в доступных компонентах по лицензиям


Различия в доступных компонентах есть не только между коммерческой и Open Source версией Qt, но также и между GPL и LGPL (какие-то компоненты доступны только в GPL).


Вот тут надо сказать о KDE Free Qt Foundation. В 1998 году между сообществом KDE и тогда ещё Trolltech было заключено соглашение, что Qt всегда будет доступен как свободное ПО, и это соглашение соблюдалось и соответствующе обновлялось при смене владельцев Qt. Но относительно недавно условия соглашения были, скажем так, нарушены — в составе Qt появился ряд библиотек, которые были доступны только под коммерческой лицензией — это как раз-таки Qt Charts, Qt Data Visualization, Qt Virtual Keyboard и другие. В общем, отношения начали слегка портиться. К счастью, руководство всё-таки приняло решение сделать эти библиотеки доступными и в Open Source, что и произошло в релизе Qt 5.7 — они стали доступны под GPL.


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


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


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


Отличия в компонентах Qt между лицензиями


Возможности разметки таблиц небогаты, потому пришлось картинкой. Ссылки на компоненты, понятное дело, теперь в виде пикселей.


И несколько комментариев по таблице.


Стоимость 0


За Open Source лицензии не нужно платить в явном виде, однако следует понимать, что некоторые расходы всё-таки последуют, пусть они и неочевидны на первый взгляд:


Скрытые расходы с Open Source лицензиями


Charts, Visualization и Virtual Keyboard


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


Qt Quick Compiler


Qt Quick Compiler был (и остаётся) доступным только в коммерческой версии Qt. Его обещали отдать в Open Source с релизом 5.7, потом 5.8, потом 5.9, а сейчас вроде как больше не обещают, только предложили “взамен” механизм кэширования (который всё же не то же самое).


Qt Quick 2D Renderer


Этот модуль был раньше только коммерческий, потом стал доступен и в GPL, а после релиза 5.8 перестал быть отдельным модулем, и теперь интегрирован в Qt Quick и доступен также под LGPL.


Готовые наборы инструментов сборки


Готовые "из коробки" наборы инструментов сборки для кросс-компиляции, отладки, деплоя и профилирования с хост-машины на присоединённом устройстве.


На скриншоте ниже показано меню выбора “таргета” для проекта в Qt Creator — под какую платформу компилировать (кросс-компилировать) и где запустить приложение. Конкретно тут я собираю проект под Raspberry Pi 3 и хочу запустить своё приложение на подключённом по сети устройстве:


Embedded таргеты для Qt проекта


А на этом скриншоте показан полный список устройств, для которых "из коробки" имеются готовые образы и инструменты сборки:


Доступные образы Boot to Qt


Разумеется, это не означает, что больше ни на каких устройствах разработку с Qt вести не получится. Свой образ Boot to Qt можно собрать для любой платформы, которая соответствует требованиям.


Лицензия для университетов


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


В состав такого дистрибутива входят не только Open Source компоненты, но и коммерческие тоже. Также предоставляется ограниченный доступ к тех.поддержке (пониженный приоритет, нет фиксированного времени ответа и т.д.) и некоторые обучающие материалы. Однако, следует ожидать ограничений в условиях использования.


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


Ещё раз про виды лицензий


Глядя на весь этот километр текста, думаю, стоит показать лицензионную структуру Qt в виде картинки:


Лицензии Qt


Иногда задают вопрос: “Каковы условия использования Qt без лицензии?”. Ответ содержится на картинке: нет таких условий — невозможно использовать Qt без лицензии. Вы либо приобретаете коммерческую лицензию, либо используете Qt под условиями соответствующей Open Source лицензии (GPL/LGPL).


Заключение


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


Первое — это маркетинговое сотрудничество. Например, у вас классный продукт, вы выходите на рынок и потому заинтересованы в продвижении. The Qt Company, разумеется, тоже заинтересована, чтобы появлялось больше классных продуктов на Qt, и была бы рада объявлять о новых у себя на сайте. На этой взаимовыгодной почве и пополняется галерея Built with Qt. Если же продвижение вам не сильно интересно, зато хотелось бы получить скидку на лицензии — это тоже возможно.


Второе — это compliancy check. Что-то вроде проверки соблюдения условий лицензии. Время от времени The Qt Company может (по условиям договора) проводить такие проверки, и если будут выявлены нарушения, то это чревато последствиями. Пример: вы описали свой проект как “просто приложение под винду” и приобрели Qt for Application Development, а на самом деле у вас хаб для “умного дома” на Windows 10 IoT, поставляемый на рынок в количестве нескольких тысяч устройств ежегодно — это весьма грубое нарушение. Или другой пример: компания заявляет, что в команде проекта будет всего один разработчик, но при этом в LinkedIn от имени этой же компании висит штук десять объявлений поиска программистов Qt — как-то не сходятся цифры.


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




Дополнение №1.


В комментариях достаточно часто в той или иной форме задают вопрос: "А что мне будет, если я нарушу условия лицензии?". Надо сказать, это характеризует.


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


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


Если же вы нарушите условия той или иной Open Source лицензии, то я отвечал в комментариях, что эти лицензии не принадлежат The Qt Company, не она писала их текст (а Free Software Foundation), соответственно и затевать судебное разбирательство должна не The Qt Company, а FSF. Судя по всему, это не так. Как на самом деле — я не знаю.


Кстати, в русской версии статьи про FSF на Википедии есть фраза: "Программы, распространяемые на условиях GPL, но не принадлежащие Фонду, могут быть защищены только их владельцами, поскольку Фонд не имеет нужного юридического статуса для этого". Из этого следует, что как раз-таки The Qt Company должна судиться с нарушителем. Но в английской версии статьи это фразы нет. Как на самом деле — не знаю.


У меня даже появился встречный вопрос: если завтра The Qt Company исчезнет (заработает все деньги в мире и самораспустится), то кто будет подавать в суд за нарушения GPL/LGPL? Ведь сам Qt от этого не исчезнет, останется Open Source (как я и приводил пример в статье). Означает ли это, что тогда можно будет спокойно использовать Qt в своих проектах, игнорируя условия GPL/LGPL? Я подозреваю, что нет.


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

Поделиться с друзьями
-->

Комментарии (116)


  1. devpreview
    19.06.2017 04:01
    +7

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

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

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

    P.S. Хотелось бы увидеть от вас и другие статьи про Qt ;)


    1. devpreview
      19.06.2017 04:20
      +2

      Всё-таки не всё понятно.

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

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


      1. arteast
        19.06.2017 08:41
        +1

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


        1. devpreview
          19.06.2017 08:44

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

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

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


          1. arteast
            19.06.2017 09:47

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


            1. abagnale
              19.06.2017 13:20

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


              1. granindb
                19.06.2017 14:24

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


                1. abagnale
                  19.06.2017 14:47

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


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


                  1. granindb
                    19.06.2017 15:01

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


                    1. abagnale
                      19.06.2017 17:55

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


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


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


          1. abagnale
            19.06.2017 13:21

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


    1. monah_tuk
      19.06.2017 06:15
      +2

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


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


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

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


      1. abagnale
        19.06.2017 13:29

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


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


    1. abagnale
      19.06.2017 13:16
      -2

      Сразу же — IANALTINLA.


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


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


  1. Harrix
    19.06.2017 07:44
    +3

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

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

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

    3. Клиент-серверные приложения не попадают же под Qt for Device Creation?


    1. Harrix
      19.06.2017 07:53

      4. В коммерческой версии есть возможность работать (создавать, открывать, редактировать) документы от Microsoft Offfice?


      1. abagnale
        19.06.2017 14:55

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


        1. Harrix
          19.06.2017 15:07

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


          1. abagnale
            19.06.2017 15:18

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


            1. Harrix
              19.06.2017 15:25

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


    1. Akon32
      19.06.2017 12:07

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


    1. abagnale
      19.06.2017 14:53
      -1

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


      1. Harrix
        19.06.2017 15:06

        1. К сожалению ссылка кривая у вас. Вот она

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

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


        1. abagnale
          19.06.2017 17:00

          Потом автор решил в программе, например, использовать Qt Charts

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


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

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


  1. pronvit
    19.06.2017 10:26
    +5

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


    1. abagnale
      19.06.2017 10:48

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


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


  1. Gizmich
    19.06.2017 11:54
    +4

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


    1. abagnale
      19.06.2017 12:05

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


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


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


      1. ob1
        19.06.2017 12:54
        +4

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


        1. abagnale
          19.06.2017 13:02
          +1

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


      1. DaylightIsBurning
        19.06.2017 13:03
        +4

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


        1. abagnale
          19.06.2017 13:56

          судиться в случае нарушения LGPL заинтересована в первую очередь «The Qt Company»

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


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

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


          1. DaylightIsBurning
            19.06.2017 14:12
            +2

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


            1. abagnale
              19.06.2017 14:32

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

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


              1. DaylightIsBurning
                19.06.2017 14:41
                +1

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

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


                1. abagnale
                  19.06.2017 15:07

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

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


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

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


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

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


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


                  1. Harrix
                    19.06.2017 15:14

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

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

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


                    1. abagnale
                      19.06.2017 15:29

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

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


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


                      1. Harrix
                        19.06.2017 15:36
                        +2

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


                        1. abagnale
                          19.06.2017 17:06

                          и успешно продает данный продукт

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


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


                          1. bak
                            20.06.2017 00:26

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


                            1. khim
                              20.06.2017 00:49

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

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


                            1. abagnale
                              20.06.2017 01:22

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


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

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


                            1. abagnale
                              20.06.2017 01:26
                              -2

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

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


                              1. khim
                                20.06.2017 01:40
                                +3

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


                  1. ob1
                    19.06.2017 15:17
                    +5

                    Вот Вы всё красиво говорите, только почему-то уводите от сути. Главное здесь не кому принадлежит лицензия, а кому принадлежит продукт. Владелец прав не знает какие права он передаёт по лицензии на свой продукт? Ой, ну прекратите уже меня веселить.

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

                    Столлмана уже из сундука достали для пущего ужаса.


                    1. abagnale
                      19.06.2017 15:32
                      -2

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

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


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

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


                      Digia

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


  1. zelyony
    19.06.2017 13:38
    +3

    • за несколько лет месячная лицения выросла с 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)


    1. abagnale
      19.06.2017 14:21

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

      Кому не надо, тот просто не покупает, а реализует требуемый функционал самостоятельно (или переводит свой проект на 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 (или других партнёров, в зависимости от территории) своим клиентам.


  1. Filippok
    19.06.2017 14:15
    +4

    Озвучу, пожалуй, вопросы за ответами на которые большинство, в том числе и я, полезли читать статью:


    Вот, допустим, пилю я некую тулзину. Qt использую только для кроссплатформенного гуя для win/osx/linux. Closed-source, возможно потом буду продавать. Какая лицензия мне понадобится для этого? Что если я для нее напилю всяких разных виджетов — будет ли от этого зависеть тип лицензии? Нужно ли выкладывать исходники этих виджетов в opensource? Если я таки попадаю под opensource лицензию, где я должен разместить license.txt? Что еще нужно сделать чтобы ко мне не пришли лоеры из Qt company?


    1. abagnale
      19.06.2017 17:16

      Какая лицензия мне понадобится для этого?

      У вас есть выбор между 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 сообщества.


      1. aquamakc
        19.06.2017 17:25
        +3

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

        Не хочу никого обидеть, но на этой фразе воображение рисует:
        Заголовок спойлера
        image


      1. DaylightIsBurning
        19.06.2017 18:10
        +2

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

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


        1. abagnale
          19.06.2017 18:27

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


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


  1. sborisov
    19.06.2017 14:37

    Во времена Trolltech — с лицензиями было гораздо проще! А во времена Nokia и подавно.


  1. TiesP
    19.06.2017 15:20

    Подскажите, лицензируется как-то использование QML? Например, встречаются мобильные программы, которые можно запускать с помощью библ.типа Ministro. Или даже включить в программу библ.для запуска программы на QML.


    1. abagnale
      19.06.2017 18:21

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


      1. TiesP
        19.06.2017 18:58

        Спасибо. Может у меня немного "ламерский" вопрос) Но в данном случае имеется в виду QML как язык программирования. К примеру есть в android market приложение "QML-Tic-Tac-Toe". Допустим, я напишу такое же, но версию PRO и буду продавать за 1$. Это приложение не содержит библиотек Qt, а просит подгрузить их, если у пользователя не установлены на телефоне. В частности с помощью приложения Ministro (The connection API protocol used by applications to connect and query the service is released under BSD license, it mean that any application (no matter if that application is free or not) can connect and query its services.). Вот такой вариант попадает под условия лицензирования Qt?


        1. abagnale
          20.06.2017 13:41

          Нет, это интересный вопрос. Кстати, использование 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 — тут я всё ещё в растерянности.


  1. aquamakc
    19.06.2017 15:32
    +2

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


    1. abagnale
      19.06.2017 16:05

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

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


      1. granindb
        19.06.2017 16:18

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


        1. abagnale
          19.06.2017 16:42

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

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


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


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

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


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


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


          1. serg_p
            20.06.2017 09:30
            +1

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


      1. aquamakc
        19.06.2017 17:13

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


        1. abagnale
          19.06.2017 17:26
          +1

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


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


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

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


          1. Harrix
            19.06.2017 17:43
            +1

            В общем, руководству Qt или отделу продаж данную статью, а точнее комментарии лучше не показывать )


          1. DaylightIsBurning
            19.06.2017 18:14

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


            1. abagnale
              19.06.2017 22:54

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


    1. DaylightIsBurning
      19.06.2017 17:00
      +1

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

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


  1. iroln
    19.06.2017 15:46

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


    1. abagnale
      19.06.2017 15:58
      +1

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


    1. grossws
      19.06.2017 16:02
      +1

      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


  1. sgusev
    19.06.2017 16:19
    +4

    Немного не понял следующий момент:

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

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

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

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

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


    1. abagnale
      19.06.2017 22:21

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


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


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


      1. sgusev
        20.06.2017 14:38
        +1

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

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

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

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

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


        1. abagnale
          20.06.2017 15:25
          -3

          я не планировал нарушать какие-либо пункты лицензии — в случае моего приложения ничего такого и не требовалось — и благодаря этому не платил денег

          Отчасти отсюда и появилось это требование о недопустимости "смешивания кода". Представьте другую компанию, которая начала разработку своего проекта одновременно с вами, но приобрела коммерческую лицензию сразу на старте проекта и всё это время платила за обновление поддержки и получение апдейтов (а в случае подписки — платила за все эти месяцы/годы). Теперь и вы, и эта компания находитесь в текущей временной точке, и вы решаете перейти на коммерческую лицензию. То есть, вы сравнялись с этой компанией, но при этом "сэкономили" на предшествующем временном периоде, когда разрабатывали под 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 и, когда это стало удобно, коммерцизировались. Вас я ни в чём не обвиняю, просто так это может выглядеть в общем случае.


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

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


          1. sgusev
            20.06.2017 19:17
            +3

            если вы задались целью обмануть/нарушить лицензию
            В качестве небольшого дисклаймера, особенно ввиду вашего апдейта к статье, хочу сказать, что я всеми руками и ногами против любых нарушений интеллектуального права, лицензионных соглашений и законодательства. В сфере моей деятельности я использую 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, пишут с его помощью продукты, и выпускают в свет. Вы имеете возможность получать дополнительную прибыль с тех из них, у кого дела пошли в гору, но почему-то запрещаете это делать. Вот именно это мне и непонятно.


            1. abagnale
              20.06.2017 22:53

              Минуточку, я говорю про свой код, а не про код Qt.

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


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

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


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

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


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


              1. sgusev
                21.06.2017 13:36
                +1

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

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

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

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


                1. abagnale
                  22.06.2017 03:30

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


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


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


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


                  1. serg_p
                    22.06.2017 13:22

                    Давно заметил на хабре как в армии инициатива наказуема :)


              1. serg_p
                21.06.2017 17:20
                +1

                Супер смогли, и про succees story актуальненько :)


  1. WTFRU7
    19.06.2017 20:24

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

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

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

    А может есть пожизненная лицензия для пожизненных стартапов оборотом меньше 100к долларов в год?))


    1. Zifix
      19.06.2017 21:59
      +2

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


    1. abagnale
      19.06.2017 22:33
      +1

      видел только догадки на форумах

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


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

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


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

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


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

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


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


  1. Bombus
    19.06.2017 20:30

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


    1. abagnale
      19.06.2017 22:46

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


  1. fralik
    20.06.2017 11:08
    +1

    Лицензированние под GPL кажется весьма правильным шагом для компании. Предполагаю, что руководство вообще мечтало бы оставить только два варианта: либо GPL, либо комерческая лицензия.

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


    1. abagnale
      20.06.2017 12:45
      +2

      руководство вообще мечтало бы оставить только два варианта: либо GPL, либо комерческая лицензия

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


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

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


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


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

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


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


      1. fralik
        20.06.2017 12:54

        Спасибо.


      1. DaylightIsBurning
        21.06.2017 12:25

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

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


        1. serg_p
          21.06.2017 12:34

          100 из 100


  1. Obukhoff
    20.06.2017 12:04

    Где можно достать текст коммерческой лицензии Qt на русском языке?
    А то наши юристы не сильны в языках ;)


    1. abagnale
      20.06.2017 14:30

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


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


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


  1. Vitalik1705
    20.06.2017 13:26
    +1

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

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


    1. abagnale
      20.06.2017 13:29

      Кто-то может четко и ясно все-таки перечислить эти требования GPL/LGPL

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


      1. Siemargl
        21.06.2017 11:11

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

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

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


        1. abagnale
          22.06.2017 04:33
          +1

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


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

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

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


        1. khim
          22.06.2017 13:19

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

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


  1. Gris
    21.06.2017 11:48
    +2

    Добрый день! Есть несколько вопросов:

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

    Заранее спасибо.


    1. abagnale
      22.06.2017 04:10

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


      1. abagnale
        22.06.2017 04:59

        и больше не заносить ни копья

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


  1. trdm
    22.06.2017 03:32

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


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


    1. abagnale
      22.06.2017 03:47
      +1

      старых релизах

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


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

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


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

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


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

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


  1. sborisov
    22.06.2017 11:15

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


  1. Vitalik1705
    26.06.2017 13:58
    +1

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

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

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

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


    1. sborisov
      26.06.2017 14:43
      +1

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


      1. Siemargl
        26.06.2017 21:02

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

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


        1. abagnale
          27.06.2017 21:20

          поменять прошивку, программу, либы Кутэ, то допустимо

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


          1. Vitalik1705
            27.06.2017 21:30

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


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


            1. abagnale
              27.06.2017 22:05

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


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


              1. Siemargl
                27.06.2017 23:32

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

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

                Такие «друзья» не нужны


                1. khim
                  28.06.2017 01:21
                  +1

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

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

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

                  Они ведь в этом, как бы, не слишком-то и заинтересованы…


            1. khim
              28.06.2017 01:30

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

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

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

              Это связано с тем, что юристы, в некотором смысле, работают с квантовыми обьектами: ответ «да» или «нет» может дать только Верховный Суд, всё остальное — это некоторая оценка суперпозиции смеси ответов «может быть да» и «может быть нет». Разумеется чем более общий вопрос мы рассматриваем, тем сложнее нас сказать что скажет в ответ на это Верховный Суд (если дело до него дойдёт)!


    1. abagnale
      27.06.2017 21:16

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

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


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