Показать полную графическую версию : Помогите разобраться с LGPL
LeonidPr
05-03-2011, 10:29
По общим описаниям (на википедии) вроде все было понятно. Но, решил прочитать текст самой лицензии и запутался. Версия лицензии 2.1. В первом абзаце пункта 5 написано, что моя программа, будучи скомпилирована или связана с библиотекой не является производным произведенем от библиотеки и на мою программу не распространяеся действие данной лицензии. Но затем во втором абзаце пишут, что при линковке моей программы с библиотекой получаемый бинарник является производным произведением от библиотеки, так как содержит её части, а следовательно такой исполняемый файл подпадает под действие лицензии. И далее говорится, что порядок распространения таких бинарников определяется в пункте 6 лицензии. ИМХО, эти абзацы противоречат друг другу. Разъясните пожалуйста, что я не так понимаю?
Delirium
05-03-2011, 13:51
Вообще то, принято и текст лицензии сразу показывать или хотя бы ссылку на страницу, чтобы не пришлось сначала искать суть вопроса, а только затем писать ответ :)
LeonidPr
05-03-2011, 16:32
Прошу прощения.
Это оригинальный текст лицензии: LGPL (http://www.gnu.org/licenses/lgpl-2.1.html)
Это неофициальный перевод: Перевод (http://infolex.narod.ru/gpl_gnu/lgplrus.html)
как я понял тут говорится скорее о способе взаимодействия с библиотекой.
Суть в том, что допустим в твоей программке-аудиоплеере предусмотрена работа с аудиокодеком-dll-кой, но она написана так, что самой этой dllки (или любой ее части или даже намека на нее) нет. Однако твой айдиоплеер может быть в последующем связан кемто с этой dll-кой или твой исходник кемто другим скомпилирован с ней. Это первый абзац.
Во втором говорится что если этот некто третий скомпилирует твою программу с этой dll-кой, то такой исполняемый файл больше не подходит под первый абзац так как в нем уже содержаться части dll-ки.
Третий абзац не очень ясен...
четвертый говорит что если ты делаешь как в третьем, но по мелочи, например макрос или линейную функцию не более 10 строк (и по тексту) то это не считается за нарушение авторства и можно неограничено юзать dll-ку не зависимо от "формы ее собственности" и ссылка что про такие произведения - читай в п. 6
"Во всех других случаях, если произведение является производным от Библиотеки, Лицензиат вправе распространять объектный код данного произведения в соответствии с пунктом 6 настоящей Лицензии. Любой исполняемый файл, содержащий данное произведение, также подпадает под действие пункта 6 настоящей Лицензии, независимо от того, связан ли исполняемый файл компоновщиком напрямую с Библиотекой." - ну тут все ясно я думаю
LeonidPr
05-03-2011, 17:46
если этот некто третий скомпилирует твою программу с этой dll-кой » Как можно скомпилировать программу с dll-кой так, что она будет содержать части dll-ки, dll-ка ведь динамическая библиотека. А во втором абзаце, мне кажется идет речь о статических библиотеках. В первом же абзаце похоже говорится как о статических так и о динамических библиотеках.
Под "произведением, использующим Библиотеку", понимается программа, которая не содержит кода, производного от любой части Библиотеки, но предназначена для работы с Библиотекой будучи скомпилированной с ней или связанной с ней. Отдельно такое произведение не является произведением, производным от Библиотеки, и на него не распространяется действие настоящей Лицензии.
Т.е. если я компилирую свою прогу с библиотекой (для статических библиотек) или связываю её с библиотекой (для динамических библиотек) то моя прога под действие лицензии не подпадает. Но тут же второй абзац опровергает это.
Однако в результате связывания "произведения, использующего Библиотеку" с Библиотекой создается не "произведение, использующее Библиотеку", а исполняемый файл, который является производным от Библиотеки в силу того, что он содержит части Библиотеки. Такой исполняемый файл подпадает под действие настоящей Лицензии.
Т.е. при компилировании моей программы с библиотекой, exe-шник будет содержать часть библиотеки (ну это и естественно, библиотека же статическая), то моя прога попадает под действие лицензии.
Так зачем же говорить в первом абзаце, что при компиляции моей программы с библиотекой программа не подпадает под действие лицензии, если простите сразу понятно, что в этом случае прога будет содержать куски библиотеки (а тут у же вступает в силу второй абзац)?
Еще мысль возникла.
Отдельно такое произведение не является произведением, производным от Библиотеки, и на него не распространяется действие настоящей Лицензии. Может они этим хотят сказать, что пока моя прога не скомпилирована (в исходниках), то она не подпадает под действие лицензии (естественно, так как в исходниках не ни капли из самой библиотеки), но как только я компилирую и получаю бинарник (в который уже включена часть библиотеки), то сразу вступает в силу второй абзац. Может так?
LeonidPr
06-03-2011, 01:37
Уф, нашел вроде более менее внятный ответ. Вот, если кому-нибудь понадобится: Google answers (http://answers.google.com/answers/threadview?id=439136)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.