LINUX.ORG.RU
ФорумTalks

LGPL и Qt


0

0

Что можно почитать про LGPL, чтобы уловить основные моменты и принципы. Не хотелось бы перекапывать все тома лицензии.

Может быть вы сможете ответить на вопросы.

Могу ли я написать с приложение с использованием LGPL-версии Qt (+Qt Solutions), не открывать исходники, не упоминать что используется Qt и продавать продукт и те-поддержку?

Если не могу что-либо из этого списка, то что именно?

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

VoofT
()

> Могу ли я написать с приложение с использованием LGPL-версии Qt (+Qt Solutions), не открывать исходники

Да, за исключением самой библиотеки.

> не упоминать что используется Qt


Вот это не знаю. Наверное, да.

> продавать продукт и те-поддержку?


Да.

Ruth ★★
()

> Могу ли я

> написать с приложение с использованием LGPL-версии Qt


Да.

> не открывать исходники


Да.

> не упоминать что используется Qt


Нет.

> продавать продукт


Да.

> и те-поддержку


Да.

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

> Да, за исключением самой библиотеки.

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

codeine-man
() автор топика
Ответ на: комментарий от kajematez

> А зачем тогда нужна коммерческая лицензия Qt? Кто ей будет пользоваться?!

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

codeine-man
() автор топика
Ответ на: комментарий от atrus

> Те, кому нужна гарантированная техподдержка.

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

Ruth ★★
()

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

Ишь какие халявщики-пустомели собрались.

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

> Нельзя закрывать исходники, не используя при этом коммерческую лицензию

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

> LGPL всего лишь позволяет вам линковать свой _открытый_ код с закрытыми библиотеками.


Простите?

>> The LGPL places copyleft restrictions on the program itself but does not apply these restrictions to other software that merely links with the program. There are, however, certain other restrictions on this software.


>> The LGPL is primarily used for software libraries, although it is also used by some stand-alone applications, most notably Mozilla and OpenOffice.org.


http://en.wikipedia.org/wiki/LGPL

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

>> The main difference between the GPL and the LGPL is that the latter can be linked to (in the case of a library, 'used by') a non-(L)GPLed program, which may be free software or proprietary software.[1] This non-(L)GPLed program can then be distributed under any chosen terms if it is not a derivative work.

>> <...>


>> Essentially, it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.


С той же Wiki.

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

> Правда, случаи, когда это может понадобиться единичны, но - .

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

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

Ты упускаешь тот факт, что программы, написанные на Qt с лицензией LGPL, могут быть лицензированы только под LGPL... По-моему этот вопрос уже сто раз обсосали.

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

> Ты упускаешь тот факт, что программы, написанные на Qt с лицензией LGPL, могут быть лицензированы только под LGPL...

Отчего же? Они ведь линкуются с Qt, а не используют её код.

> По-моему этот вопрос уже сто раз обсосали.


Ммм... Дайте ссылку на тему.

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

http://arstechnica.com/open-source/news/2009/01/nokia-qt-lgpl-switch-huge-win...

> Nokia's decision to adopt the LGPL for Qt will eliminate the cost barrier, making it possible for developers to freely use Qt for proprietary application development. This in turn will significantly expand the number of developers who are using the toolkit and will also attract involvement from companies that find the permissiveness of the LGPL appealing.

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

> Пруфлинк? Иначе это бред. В таком разрезе оно ничем не отличается от чистого GPL.

Отличие очень простое - можно линковаться с закрытыми библиотеками. GPL этого не позволяла. Пруфлинк в http://lists.trolltech.com/qt-interest/ 3-4-месячной давности.

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

> Пруфлинк в http://lists.trolltech.com/qt-interest/ 3-4-месячной давности.

А ссылку на сам тред? И цитату из LGPL. Пока я вижу только это:

http://www.gnu.org/licenses/lgpl.html

“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.

An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.

<...>

4. Combined Works.

You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:

# a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.
# b) Accompany the Combined Work with a copy of the GNU GPL and this license document.
# c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.
# d) Do one of the following:

* 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
* 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.

# e) Provide Installation Information

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

Ключевые фразы:

> You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work


> under terms of _your_choice_


> do not restrict modification of the portions of the _Library_

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

Честно говоря, что-то не находится. Пока самое позднее сообщение со словом LGPL там за март 2008.

atrus ★★★★★
()

http://www.gnu.org/licenses/lgpl.html


> 4. Combined Works.

>

<...>
> * d) Do one of the following:

> o 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.

> o 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.


Либо какая-то часть кода, либо линковать.

Да, вот еще что:
> a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.

VoofT
()
Ответ на: комментарий от DNA_Seq

троллище

> Для жадных проприетарщиков есть GTK

Бедный, бедный тролль. Он под LGPL? А под какой лицензией Qt, как ты думаешь?

codeine-man
() автор топика
Ответ на: комментарий от mamay_cozak

> Отличие очень простое - можно линковаться с закрытыми библиотеками.

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

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

> LGPL всего лишь позволяет вам линковать свой _открытый_ код с закрытыми библиотеками. Не хотите открывать код - покупайте коммерческий вариант библиотеки.

Между LGPL и GPL либами QT разницы нету - к примеру, Kubuntu поставляет QT4.5 уже под лицензией LGPL.

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

> Отличие очень простое - можно линковаться с закрытыми библиотеками. GPL этого не позволяла.

Автором закрытой библиотеки/программы могу быть я. И соответственно код будет закрыт.

Почти все основные runtime библиотеки в линухе имеют лицензию LGPL. Если бы они требовали, чтобы код, который их использует был тоже LGPL, то коммерческого софта в линухе бы не существовало и сам линух в этом случае никому нахер был бы не нужен.

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

В LGPL версии Qt нет некоторых компонетов. Например, если ты захочешь свое приложение встроить в IE в виде ActiveX контрола, то обломишься.

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

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

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

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

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

> Какой либы, под какой лицензией?

Qt под любой лицензией.

> Я уверен, что код коммерческой тоже открыт - для купившего лицензию, и он тоже может его модифицировать - для использования со своим продуктом.

Естественно только для купившего лицензию, но открыт ведь :)

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

> Отличие очень простое - можно линковаться с закрытыми библиотеками. GPL этого не позволяла.

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

Цитато с википедии - "GNU LGPL позволяет связывание с данной библиотекой или программой программы под любой лицензией, несовместимой с GNU GPL, при условии, что такая программа не является производной от объекта, распространяемого под (L)GPL, кроме как путём связывания."

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

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

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

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

Но тут возникает момент - "при условии, что такая программа не является производной от объекта", т.е. наследовать свои классы от классов Qt нельзя, следовательно нельзя ничего изменить в поведении виджетов Qt. У них нету ничего наподобие classpath exception для жабы?
Знающим кутеводам - на куте вообще можно что-либо написать кроме hello world не используя наследование? Дизайнеры форм Qt генерят код классов - они наследуются от QЧегоТоТам или как?

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

> т.е. наследовать свои классы от классов Qt нельзя

http://www.gnu.org/licenses/lgpl.html

>> An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.




>> Defining a subclass of a class defined by the Library is deemed a mode of _using_an_interface_ provided by the Library.


Не оно?

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

> Но тут возникает момент - "при условии, что такая программа не является производной от объекта", т.е. наследовать свои классы от классов Qt нельзя

Наследовать можно. Ты используешь только хидеры, а не код. Вот если бы код правил - тогда нельзя закрывать.

VoofT
()
Ответ на: комментарий от k0l0b0k

> Но тут возникает момент - "при условии, что такая программа не является производной от объекта", т.е. наследовать свои классы от классов Qt нельзя,

Это не так. Если цитируешь, то тогда уже полностью, и желательно на английском - а то получается как цитата классиков коммунизма.

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

>"при условии, что такая программа не является производной от объекта", т.е. наследовать свои классы от классов Qt нельзя,

Вы фееричны, это вот теперь форки бум называть наследованием и делать добавлением слова parent ?

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

> наследовать свои классы от классов Qt нельзя,

при наследовании ты не меняешь код класса, ты создаешь подкласс, поведение которого меняешь переопределением методов класса. Тут явно нету никакого изменения исходного кода.

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

> Тут явно нету никакого изменения исходного кода.

Небольшое уточнение. Derivative Work (Производная Работа) - не обязательно является измененным исходным кодом оригинала, это может быть новый продукт, который заимствует части оригинала.

Но это именно уточнение, наследовать классы Qt вполне можно, подобное отдельно оговорено в LGPL.

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

Вестимо оно. Меня в свое время натупил пиар вокруг жабы, ее exception'ов из GPL по поводу derived work.

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

> Но это именно уточнение, наследовать классы Qt вполне можно, подобное отдельно оговорено в LGPL.

Ну да - иначе C код был бы тоже нелегитимным - сразу же после #include <bla.h>, в результате чего препроцессор включает в исходник код хидера перед компиляцией (ага, и с декларацией LGPL лицензии и копирайта либы, как это обычно в хидерах).

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

> Поэтому, если не вносится изменений в саму Qt библиотеку, то линковаться с Qt либами может любой код под любой лицензией.

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

praseodim ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.