LINUX.ORG.RU
ФорумTalks

Объясните пожалуста кратко основной смысл LGPL, что позволяет, что требует.


0

0

Объясните пожалуста кратко основной смысл LGPL, что позволяет, что требует.

Особенно интересно в области коммерческого применения и публикации или скрытии исходников.

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

anonymous

По сравнению с GPL она позволяет линковать с софтом, несовместимым с GPL. Остальное - то же. Закрывать нельзя, derived work распространяется по тем же правилам и т.п.

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

гмм. т.е. допустим

у меня есть LGPL графический движек, все изменения в его коде я должен опубликовать. Это меня устраевает. И у меня есть движек игры, имею ли я проаво его не открывать? При этом они будут слинкованы в один бинари который я хочу продавать. А кто то другой будет иметь право его продавать?

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

>По сравнению с GPL она позволяет линковать с софтом, несовместимым с GPL.

С некоторыми ограничениями, вот наиболее важные из них:

1) нельзя пользователю запрещать модификацию для личного использования пользователем и нельзя запрещать реверс-инженирование для отладки таких модификаций;

2) библиотека может поставляться так, чтобы пользователь смог использовать её с изменённой (работоспособность, естественно, на ответственности пользователя) версией библиотеки:

а) отдельно от программы;

б) вместе с программой в виде разделённой библиотеки (т. е. dll/so), вместе с исходниками этой библиотеки;

в) в статической линковке только если ты предоставляешь объектный/исходный код своей программы, использующей библиотеку, чтобы пользователь мог собрать программу с изменённой версией библиотеки.

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

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

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

> у меня есть движек игры, имею ли я проаво его не открывать?

Да.

> При этом они будут слинкованы в один бинари который я хочу продавать.

Надо ещё раз перечитать лицензию на предмет статической линковки - не помню, возможно, нельзя.

> А кто то другой будет иметь право его продавать?

Граф. движок - да, игровой - зависит от лицензии на него.

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

>у меня есть LGPL графический движек, все изменения в его коде я должен опубликовать. Это меня устраевает. И у меня есть движек игры, имею ли я проаво его не открывать? При этом они будут слинкованы в один бинари который я хочу продавать. А кто то другой будет иметь право его продавать?

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

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

> С некоторыми ограничениями

Это всё попадает в то, что дальше: "Остальное - то же".

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

гм. графический движек - LGPL, не мой. игра - пока что проприетарщина, моя.

на счет статической линковки как я понял нельзя. А если как so/dll, что в принципе устраевает, то можно? Т.е. полноценные продажи диска с игрой без зашаривания кода игры, и без отчислений разработчикам движка?

JohnRus
()

Я много раз разговаривалс Ryan Gordon (icculus). Он имеет огромный опыт в этом. Вот что он говорит:

1-й способ: Линкуеш свой проект динамически (т.е. к so библиотекам). Чем чревато: на разных машинах может не запускаться (если библиотеки нужной нет или версия не подходит). Выход: можно таскать все so или dll с собой в проекте.

2-й способ: Линкуеш статически (все в бинарник - библиотеки .a). При этом ты обязательно распространяеш с проектом объектные файлы (.o) чтобы юзер мог пересобрать проект если в библиотеке какой-нибудь нашли уязвимость и т.п.

3-й способ: так делали в Loki! Делаеш два бинарника: статически слинкованный бинарь - является официально поддерживаемым тех. поддержкой. Но в добавок поставляеш динамечески слинкованный бинарник - он unsupported. Это такая лазейка в LGPL лицензии :)

Все эти три совета чисто практические и работают 100% - испытано. Возможно я не смогу подробно объяснить почему и как конкретно работает каждый способ (ниасилил как говорится я лицензию), но это все давно придумали грамотные люди, которые осилили :)

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

Большое спасибо. Я разобрался.

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