Russian Qt Forum

Qt => Общие вопросы => Тема начата: x012 от Январь 29, 2010, 23:23



Название: Как проверить лицензию?
Отправлено: x012 от Январь 29, 2010, 23:23
Приветствую.

Возник вопрос ответ на который не нашёл ответа поисками тут и в интернетах.

Заказываю у программиста прогу. Говорит что будет писать на С++ а гуи - на Qt Creator.
Спрашиваю: а qt под какой лицензией
он: GPL 3
я: ... а что так?
он: да все в порядке мол, а че?
я: дак мы собираемся ее продавать, и СПО проект из нее устраивать нет намерения. А так же открывать исходинки.
он: да ниче - она (лицензия) же только на гуи распространяется.
я: а чего не LGPL ?
он: а ... м... хз..

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

я кончено же попрошу его писать под LGPL , но проверять все равно буду.
только вот вопрос: а как?


p.s. Читал в downloads "You can choose between LGPL and GPL during the installation process." это когда качаешь framework only, а когда SDK - тогда как выбираешь LGPL или GPL?




Название: Re: Как проверить лицензию?
Отправлено: BRE от Январь 29, 2010, 23:45
Не пойму в чем вопрос?
Qt распространяется под двойной лицензией LGPL и GPL.
Когда программист закончит разработку и предоставит исходники, самолично скачай нужную версию Qt, собери ее разделяемой (LGPL запрещает статическую линковку) и собери программу из исходников. Что бы не сомневаться.



Название: Re: Как проверить лицензию?
Отправлено: x012 от Январь 30, 2010, 00:08
да делать мне нечего.
не программист я))

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

Цитировать
Не пойму в чем вопрос?
Цитировать
как проверить готовый программный продукт? т.е. с какой он лицензией создавался?


Название: Re: Как проверить лицензию?
Отправлено: SABROG от Январь 30, 2010, 01:52
Когда пришлет программу открой файл QtCore4.dll в HEX редакторе и найди строчку "qt_lcnsuser=", там не будет GPL или LGPL, но там будет "Open Source" например. В самом exe'шнике программы нет информации о лицензии. Вполне возможно, что тролли могли оставить в исходниках какой-нибудь ключ или GUID, который и выдаст программу со всеми потрахами.


Название: Re: Как проверить лицензию?
Отправлено: uriel от Январь 30, 2010, 10:49
Да вроде не должны они ничего туда зашивать были.
Посмотрел сейчас скрипт конфигурации, так там выбор GPL и LPGL определяет только то, какой файл он покажет more'ом для ознакомления. Основное же различие идёт по open source/commercial, так что какую лицензию рядом с программкой положите, такая и будет. :)


Название: Re: Как проверить лицензию?
Отправлено: crackedmind от Январь 31, 2010, 01:22
ну как это. qApp->aboutQt() показывает инфу про лицензию. Opensource или коммерческая :)


Название: Re: Как проверить лицензию?
Отправлено: tim474 от Январь 31, 2010, 04:06
А в договоре на создание программы у вас что говорится? Кому принадлежат исключительные права на данную программу? Если создателю, и он предоставил вам программу под GPL, то тут уже ничего не спасёт, придётся распространять под GPL. Если же исключительные права принадлежат вам, то договоритесь и о выпуске Qt, но можно в любом случае пересобрать с той версией Qt, которая вам нужна. Возможно, программист согласился разрабатывать программу на тех условиях, на которых согласился, рассчитывая на то, что программа будет свободной. А за разработку проприетарной программы, на которую сам не будет иметь никаких прав, возможно, потребует большее вознаграждение :D

Кстати, я не понимаю, зачем нокиа распространяет Qt отдельно под GPL и LGPL? Ведь в п.3 LGPL говорится, что лицензиат вправе по своему выбору применить к определенному экземпляру Библиотеки условия GPL вместо настоящей LGPL.


Название: Re: Как проверить лицензию?
Отправлено: niXman от Январь 31, 2010, 12:35
Цитировать
А за разработку проприетарной программы, на которую сам не будет иметь никаких прав, возможно, потребует большее вознаграждение
естественно!
будет глупцом если не потребует.


Название: Re: Как проверить лицензию?
Отправлено: lit-uriy от Январь 31, 2010, 22:38
>>Кстати, я не понимаю, зачем нокиа распространяет Qt отдельно под GPL и LGPL?
нет ничего отдельного, исходник один, просто дана возможность выбирать.

Положим выпускалась бы Qt только под LGPL, тогда не было бы возможности её использовать в GPL'ном проекте. Т.к. GPL по сути запрещает использование не GPL-кода.
Вот троли говорят, выбирайте один из трёх вариантов, мы разрешаем.


Название: Re: Как проверить лицензию?
Отправлено: tim474 от Февраль 01, 2010, 13:36
Цитировать
Вот троли говорят, выбирайте один из трёх вариантов, мы разрешаем.
То же самое сказано в тексте LGPL.
Цитировать
Положим выпускалась бы Qt только под LGPL, тогда не было бы возможности её использовать в GPL'ном проекте.
Можно. Ведь те же glibc, gtk и многие другие свободные библиотеки распространяются под LGPL.


Название: Re: Как проверить лицензию?
Отправлено: x012 от Февраль 01, 2010, 20:27
SABROG, спасибо, посмотрел QtCore4.dll, да там стот OpenSource

Я так понял LGPL от GPL в данном случае приниципально отличается:
а) лицензией, которую сам просто назначаешь  если у тебя СПО версия продукта
б) динамической линковкой dll файлов.

p.s. я правильно понял на счет пункта б: т.е. это значит что файлы себе лежат отдельно, и их не трогают, только подключают динамически.

а статическая линковка - это тупо копи-паст в тело основного кода программы?
Или имеется ввиду что это как бы "автоматический копипаст" который при компиляции собирает код из бибилотек, вставляет его в тело осноной программы, и потом компилиться с вклюеннысм текстом.
Ну и в результате, как побочный эффект вес файла становиться больше. Я прально понял?


Название: Re: Как проверить лицензию?
Отправлено: x012 от Февраль 08, 2010, 10:11
да?


Название: Re: Как проверить лицензию?
Отправлено: tim474 от Февраль 11, 2010, 22:16
Цитировать
Я так понял LGPL от GPL в данном случае приниципально отличается:
а) лицензией, которую сам просто назначаешь  если у тебя СПО версия продукта
б) динамической линковкой dll файлов.
Не совсем понятно, что вы имеете в виду, но попробую объяснить.
Если программа написана с использованием Qt, то она считается производной работой от Qt. Если программа является производной от программы, распространяемой под GPL, то она сама должна распространяться под лицензией GPL. Если же программа является производной от LGPL-программы, то она может распространяться под любой лицензией на выбор её правообладателя, но при условии, что пользователь может слинковать эту программу с любой версией той библиотеки, распространяемой под LGPL. Одним из способов предоставления этой возможности является динамическая линковка. Если же предоставить пользователю программу только в виде бинарного файла со статической линковкой, то он не сможет это сделать, таким образом вы нарушите условия использования Qt.

И лучше прочитайте тексты лицензий GPL (http://code.google.com/p/gpl3rus/wiki/LatestRelease) и LGPL (http://ru.wikisource.org/wiki/LGPL) (правда я дал ссылки на русские переводы, но лучше читать оригинальную английскую версию, если владеете английским, как родным).

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

Цитировать
p.s. я правильно понял на счет пункта б: т.е. это значит что файлы себе лежат отдельно, и их не трогают, только подключают динамически.

а статическая линковка - это тупо копи-паст в тело основного кода программы?
Или имеется ввиду что это как бы "автоматический копипаст" который при компиляции собирает код из бибилотек, вставляет его в тело осноной программы, и потом компилиться с вклюеннысм текстом.
Ну и в результате, как побочный эффект вес файла становиться больше. Я прально понял?
Ну можно назвать "автоматическим копипастом". Сам программист файлы не копирует, но на выходе мы получаем бинарник, уже содержащий в себе код этих библиотек. Правда объединяется не исходный код, а объектный (http://ru.wikipedia.org/wiki/Объектный_модуль).  А при динамической  линковке эти библиотеки представляют собой отдельные .dll или .so-файлы, которые вы либо предоставляете вместе с программой, либо пользователь должен скачать и установить самостоятельно.


Название: Re: Как проверить лицензию?
Отправлено: x012 от Апрель 04, 2010, 21:44
tim474, спасибо. Все доходчиво и полезно)