Я думал, что LGPL - это разрешительная лицензия, такая же, как MIT, BSD или Apache. Но сегодня я прочитал, что только ссылки на LGPL (библиотеки и т. Д.) Разрешены из закрытого исходного кода - кроме этого, это - copyleft - поэтому я должен опубликовать код, основанный на программе LGPL.
Я создал программу для своего работодателя, которая основана на программе LGPL, но в нее внесены значительные изменения. Конечно, мне не разрешено размещать этот измененный исходный код. В то же время, я должен, если я распространю это (верно?).
Поэтому мне интересно, есть ли обходной путь для этого, чтобы я мог сохранить этот закрытый источник (я хотел бы опубликовать источник) - какие-либо предложения?
Моя идея: могу ли я поместить большинство функций исходного приложения LGPL во внешнюю библиотеку, написать исполняемый файл ядра с нуля, но вернуться к библиотеке для всех функций, которые я не модифицировал?
В настоящее время все находится в файле .jar (это Java / Swing). если вы думаете, что моя идея является юридически / технически осуществимой, - сколько будет усилий, чтобы отделить то, что я написал, и что такое оригинал? Я не самый здравый смысл Java.
Ответы:
Прежде всего, получение юридической консультации здесь (как в: интернетах) не является хорошей идеей.
Во-вторых, это я, а не юрист, вы должны были подумать об этом, прежде чем брать программу LGPL и изменять ее для своего работодателя.
Если бы лицензию можно было игнорировать только потому, что она вам не нравилась, не было бы особого смысла иметь ее сейчас?
Если вы и / или ваш работодатель не желаете публиковать исходный код с вашими изменениями, вам необходимо прекратить использование этого кода LGPL и избавиться от него.
Опять же, это только я говорю.
Получите совет от настоящего юриста.
Отвечая на ваш вопрос об обходе лицензии путем добавления кода в DLL, я бы предположил, что это будет работать следующим образом.
Что бы вы сделали, это изменили бы исходную программу настолько, чтобы она могла вызывать функции во внешних библиотеках. Вы должны были бы сделать это, не делая этот фрагмент кода, специфичный для ваших нужд, библиотек, имен функций и т. Д.
Затем эти изменения публикуются в соответствии с требованиями лицензии.
Затем вы создаете свою собственную внешнюю библиотеку со своим собственным проприетарным кодом и просите эту программу загрузить и выполнить ее, используя те изменения, которые вы внесли в нее.
Не зная всего объема лицензии LGPL, я не могу сказать, достаточно ли этого, чтобы избежать публикации вашей библиотеки, хотя я подозреваю, что это произойдет.
Впрочем, опять же ...
Получить консультацию юриста
источник
Большинство библиотек с открытым исходным кодом, опубликованных под лицензией LGPL или схожей лицензией, по крайней мере, достаточно хороших для использования в ваших проектах, построены по принципу открытого / закрытого: http://en.wikipedia.org/wiki/Open/closed_principle .
Вы должны иметь возможность реорганизовать свой код так, чтобы ваше приложение было связано с библиотекой LGPL, а все расширения содержались в закрытом коде приложения.
источник
Тот же отказ от ответственности: IANAL.
Что еще никто не упомянул, так это то, что даже если вы разделите код, вам все равно придется распространять исходный код по частям LGPL или, по крайней мере, предоставлять информацию о том, где они могут быть загружены.
Единственный способ обойти это - не распространять их в первую очередь.
источник
Я не думаю, что вам нужен адвокат, чтобы понять, что пытаться обойти лицензию не очень хорошая вещь. Здравого смысла достаточно.
Вместо этого вы можете связаться с первоначальным автором программы LGPL и попросить / купить другую и проприетарную лицензию.
Единственные другие альтернативы - освободить источник или полностью переписать его.
источник
IANAL, TINLA и др.
Да, LGPL требует, чтобы либо вы предоставили исходный код любому, кто получает копию произведения, либо вы должны распространить свою работу в форме, в которой получатели программного обеспечения могут заменить вашу версию работы LGPL новой версией. версия. В любом случае все модификации части работы LGPL должны быть доступны всем получателям работы.
Верный. Лицензия обязывает всех получателей программного обеспечения получить доступ к исходному коду.
Это может представлять собой производную работу, и вам все равно придется распространять все сценарии сборки, которые сокращают программу, до библиотеки.
Java добавляет в LGPL целый ряд новых проблем, поскольку неясно, что представляет собой «статическое» и «динамическое» связывание. Поскольку исключения LGPL в отношении GPL основаны на этой концепции, LGPL действительно эквивалентен GPL в большинстве случаев. Вам нужно будет проконсультироваться с юридической командой компании, чтобы ответить на любые вопросы, которые возникнут.
Мой совет: если кто-то за пределами вашей компании будет иметь доступ к программе, отмените ее и начните все сначала. Если вы не можете соответствовать требованиям лицензии, вам вообще не разрешается ее распространять.
Если программа будет доступна только внутри компании, то вам нужно только сделать источник доступным для сотрудников компании. Я бы предложил добавить его в систему контроля исходных кодов вашей компании. Это будет соответствовать требованиям LGPL, пока никто за пределами компании не будет иметь доступа.
источник
Вы можете использовать шаблон адаптера и не трогать оригинальный код. Также LGPL позволяет вам наследовать классы и переопределять функциональность его классов в вашем собственном проекте.
источник
Это мое понимание, IANAL.
Проверьте текст версии LGPL, который охватывает код, который вы используете. Я считаю, что требование заключается в том, что любой код LGPL должен быть доступен для выгрузки - обычно с использованием общей библиотеки / файла JAR. Если вы можете разделить код, который вы используете LGPL, в библиотеку, вы можете выпустить его под LGPL, выпуская ваше приложение под любой лицензией, которая вам нравится.
источник
Вы не можете обойти лицензию. Даже если вы найдете лазейку, это все равно неэтично (хотя для некоторых это другой вопрос). Что вы МОЖЕТЕ сделать, так это связаться с автором указанного программного обеспечения, объяснить ситуацию и запросить отдельную лицензию. Если он готов предоставить вам специальную лицензию по цене, вы можете сравнить ее со стоимостью переписывания вашего программного обеспечения без использования соответствующего компонента. И просто пойти с более дешевым.
источник