Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > использование лицензии QT


Автор: BearFear 11.8.2012, 10:03
Всем доброго дня. Недавно возник спор на одну тему. А какие все же правила использования QT? В силу слабого понимания юридических трактовок (лично мной) возник ряд вопросов в довес к уже существующему. Например, есть приложение, которое не в коем случае не будет продаваться. Каждый желающий может свободно закачивать и даже исследовать программу. Но, сама программа создана коммерческой компанией и некоторые части программы предполагают платежи. Вот к примеру, приложение для бесплатного общения SKYPE. Сама программа бесплатна, ее использование так же допускает бесплатное общение между участниками сети. Но если есть необходимость позвонить на городской или сотовый, то необходимо пополнить счет. Как в таком случае будет действовать лицензия QT? Будет ли необходимым приобретать коммерческую версию, или же можно обойтись фриварной? Или еще одна ситуация. Имеется компания, внутри которой есть потребность в определенных средствах. Программисты компании реализуют средства которые не будут публиковаться для "народа", например GUI приложение оборачивающее консольный ввод для сервера. Использование фриварной версии библиотеки внутри компании без распространения программы и исходников не нарушает лицензионное соглашение? То есть, иными словами, допускает ли использование бесплатной версии библиотеки, в тех случаях когда ПО является либо публичным, либо не публичным, само ПО не требует от пользователей каких либо денежных взносов для приобретения ПО?
Помогите пожалуйста, а то я совсем... совсем запутался.

Автор: korian 11.8.2012, 16:27
http://ru.wikipedia.org/wiki/Qt

судя по всему начиная с версии 4.5 можно делать почти все шо угодно
Цитата

GNU LGPL — для разработки ПО с собственнической лицензией, но без внесения изменений в Qt.

Автор: bsa 15.8.2012, 11:01
Цитата(korian @  11.8.2012,  17:27 Найти цитируемый пост)
GNU LGPL — для разработки ПО с собственнической лицензией, но без внесения изменений в Qt.
Вообще-то, вносить изменения в Qt не запрещается. Но эти изменения должны распространяться под совместимой с Qt лицензией. Т.е. LGPL. 
Другими словами, ты делаешь прогу, использующую Qt. В процессе разработки ты выясняешь, что нужный тебе компонент можно получить из уже существующего, путем добавления нескольких строчек в код самой Qt. Ты это делаешь... Когда приходит время передавать кому-то результаты своего труда, ты должен по первому требованию приобретателя программы передать все исходники защищенные LGPL. В частности Qt и те несколько строк, что ты добавил. Для этого ты берешь ОФИЦИАЛЬНЫЙ архив исходников той версии, что используешь, и делаешь патч путем сравнения с используемыми исходниками (команда diff -ruN /path/to/orig /path/to/custom >my-qt-changes.patch). Затем ты два этих файла и передаешь заказчику. После этого заказчик должен иметь возможность пересобрать Qt и слинковать с твоей программой. Это и есть требование LGPL.
Если ты сделаешь статическую линковку, то заказчик уже не сможет так просто перелинковать. Поэтому, ты обязан предоставить ему объектные файлы твоей программы, пригодные для линковки. Это ограничение отсутствует для динамической линковки, так как там достаточно только заменить одну DLL на другую.

BearFear, варианты использования Qt без нарушения лицензии:
- динамическая линковка программы с официальной версией Qt
- динамическая линковка программы с неофициальной версией Qt и предоставление исходников ИЗМЕНЕНИЙ внесенных в официальную Qt
- статическая линковка программы с официальной версией Qt и предоставление объектных файлов или исходников твоей программы
- статическая линковка программы с неофициальной версией Qt и предоставление исходников ИЗМЕНЕНИЙ внесенных в Qt и объектных файлов или исходников твоей программы

Автор: BearFear 23.8.2012, 15:12
Эх, в общем этого я и ожидал. В принципе, те же DLL QT при динамической линковке, вполне сподручно можно распихать по system папкам оси (аля виндувз) и юзверю не придется долго мучаться с пониманием тех или иных ресурсов проги. Это будет и эстетически валидно и с другой стороны для QT не в ущерб. Модифицировать QT боюсь не так часто приходится кому либо, наверно это было введено не в силу практики, а в силу лицензионных изощрений, только лишь для того что бы установить доверительные отношения между QT -> кодером -> потребителем. В общем ничего не изменилось в лицензировании QT как оказалось smile Для мирных (не агрессивных-коммерческих) целей, можно вполне себе использовать QT даже будучи юридическим лицом или просто частным кодером. В случае если каких либо дополнительных изменений не было произведено (в кодах QT) то все распространяемое ПО может быть с закрытым кодом. То есть, если код QT не является частью ПО (внешние библиотеки без статики) то все что кроме QTшного кода, включая использование самого QT, может быть закрытым и вплоть до своеобразного и совместного лицензирования. Все что касается самого QT кода, предоставляется выбор, либо использование статики (склейки кода QT с кодерским решением) и предоставление объектных файлов, либо в случае модификаций библиотеки QT еще и предоставления файлов разницы (DIFF) от оригинальной библиотеки QT. Стало быть, фришная лицензия отличается от коммерческой лишь тем, что в случае с коммерческой, мы будучи организацией или частным кодером имеем право закрыть свой код даже в случае если модифицировали код QT и делали статику? То есть, в случае фиршной лицензии мы работаем по правилам QT, а в случае коммерческой QT забивает кол на свое детище, так как мы вроди бы откупились.

Автор: bsa 26.8.2012, 21:59
BearFear, коммерческая лицензия необходима для проектов, которые не могут использовать LGPL-библиотеку. Например, программы под игровые консоли.

Автор: Proger10 1.10.2012, 15:31
А что относительно коммерческого использования софта? Если имеется программа, написанная с использованием Qt, программа предназначена для продаж её копий. В этом случае подходит только коммерческая лицензия Qt или существуют ещё какие-либо варианты выхода из ситуации "не тратить много бабла"? smile (изменения в Qt вносить не будем).

Насколько я понимаю и по лицензии LPGL можно разрабатывать продаваемое ПО? (продаваемое конечным пользователям, а не заказчику). Тогда не пойму какое отличие между коммерческой лицензией и LGPL smile

Добавлено через 3 минуты и 44 секунды
Цитата(bsa @ 26.8.2012,  21:59)
BearFear, коммерческая лицензия необходима для проектов, которые не могут использовать LGPL-библиотеку. Например, программы под игровые консоли.

А почему они не могут использовать её? smile

Автор: bsa 1.10.2012, 15:48
Proger10, потому что пользователь не может самостоятельно обновить библиотеку (заменить своей).
Ты бы лучше почитал текст лицензии LGPL. Если не знаешь английского, то найди переведенный вариант.

Автор: Proger10 1.10.2012, 17:14
Цитата(bsa @ 1.10.2012,  15:48)
Proger10, потому что пользователь не может самостоятельно обновить библиотеку (заменить своей).
Ты бы лучше почитал текст лицензии LGPL. Если не знаешь английского, то найди переведенный вариант.

Уже читаю! http://ru.wikisource.org/wiki/GNU_Lesser_General_Public_License
Но не очень понимаю smile

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


Т.е. у меня не может быть авторских прав на свою программу? Я не смогу запатентовать её / зарегистрировать, если моя программа использует Qt по лицензии LGPL?

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

Т.е. получается, что по LGPL я могу продавать свои копии программы, но только с полными правами на неё и исходным кодом?

Автор: bsa 2.10.2012, 10:43
Proger10, речь идет о самой библиотеке, а не программы, которая ее использует.
Короче, если ты линкуешь Qt динамически, то проблем у тебя вообще не будет. В худшем случае (по требованию купившего у тебя программу), тебе надо будет предоставить исходники самой Qt и внесенных в нее тобой изменений, если они были, конечно.

Автор: math64 2.10.2012, 11:51
Ну допустим, типичная ситация:
Используется Qt 4.7.0 без изменений (не пересобирал и даже не знаю как это сделать),
QtSerialPort с изменениями, динамическая линковка, используется Visual Studio 2008.
Покупатель при покупке не потребовал исходников библиотек, но через несколько лет потребовал.
В инете 4.7.0 уже нет, Microsoft уже не продает Visual Studio 2008, а новым компилятором уже это старьё не скомпилировать.

Автор: bsa 2.10.2012, 20:10
Цитата(math64 @  2.10.2012,  12:51 Найти цитируемый пост)
Покупатель при покупке не потребовал исходников библиотек, но через несколько лет потребовал.
В инете 4.7.0 уже нет, Microsoft уже не продает Visual Studio 2008, а новым компилятором уже это старьё не скомпилировать. 
Если у продавца исходников нет и он их достать не может, то это проблема продавца. Надо заранее запастись.
С другой стороны, что однажды в интернет попадает, то никогда не пропадает... Поэтому, всегда можно будет исходники достать. А вот компилятор - это уже проблема покупателя. Ему обязаны предоставить исходники, защищенные LGPL. Это условие было выполнено. А дальше - это уже его проблемы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)