Я создал программу на основе проекта LGPL, и мне не разрешается публиковать исходный код

13

Я думал, что LGPL - это разрешительная лицензия, такая же, как MIT, BSD или Apache. Но сегодня я прочитал, что только ссылки на LGPL (библиотеки и т. Д.) Разрешены из закрытого исходного кода - кроме этого, это - copyleft - поэтому я должен опубликовать код, основанный на программе LGPL.

Я создал программу для своего работодателя, которая основана на программе LGPL, но в нее внесены значительные изменения. Конечно, мне не разрешено размещать этот измененный исходный код. В то же время, я должен, если я распространю это (верно?).

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

Моя идея: могу ли я поместить большинство функций исходного приложения LGPL во внешнюю библиотеку, написать исполняемый файл ядра с нуля, но вернуться к библиотеке для всех функций, которые я не модифицировал?

В настоящее время все находится в файле .jar (это Java / Swing). если вы думаете, что моя идея является юридически / технически осуществимой, - сколько будет усилий, чтобы отделить то, что я написал, и что такое оригинал? Я не самый здравый смысл Java.

Esuus
источник
В этом посте парень говорит: «Кроме того, LGPL можно обойти, просто поместив его в новый dll и используя делегаты или интерфейсы для вызова его из исходного кода LGPL». - кто-нибудь может объяснить немного больше, как я делаю это с оригинальным приложением Java?
16
это не юридический веб-сайт , я бы никому не советовал по юридическим вопросам здесь, кроме как получить реальную юридическую консультацию, конечно.
5
LGPL в основном занимается распространением, и вы не предоставили нам никакой информации о том, как вы планируете распространять этот код. Вопрос вряд ли получит точные ответы, пока вы не сделаете это. В любом случае я повторю, что вам не следует обращаться за юридической консультацией в Интернет .
Рейн Хенрикс
Я считаю, что теперь я достаточно хорошо понимаю LGPL с точки зрения законности. Так что я действительно спрашиваю вас, ребята, как заставить это работать технически - хотя вы, конечно, правы - в случае сомнений я проконсультируюсь с юристом.
Esuus
Вы не говорите, какое программное обеспечение вы используете, но некоторые поставщики программного обеспечения GPL / LGPL (и других) предоставляют коммерческие лицензии для людей в вашей ситуации.
Джейди

Ответы:

13

Прежде всего, получение юридической консультации здесь (как в: интернетах) не является хорошей идеей.

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

Если бы лицензию можно было игнорировать только потому, что она вам не нравилась, не было бы особого смысла иметь ее сейчас?

Если вы и / или ваш работодатель не желаете публиковать исходный код с вашими изменениями, вам необходимо прекратить использование этого кода LGPL и избавиться от него.

Опять же, это только я говорю.

Получите совет от настоящего юриста.


Отвечая на ваш вопрос об обходе лицензии путем добавления кода в DLL, я бы предположил, что это будет работать следующим образом.

Что бы вы сделали, это изменили бы исходную программу настолько, чтобы она могла вызывать функции во внешних библиотеках. Вы должны были бы сделать это, не делая этот фрагмент кода, специфичный для ваших нужд, библиотек, имен функций и т. Д.

Затем эти изменения публикуются в соответствии с требованиями лицензии.

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

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

Впрочем, опять же ...

Получить консультацию юриста

Лассе В. Карлсен
источник
4
Обратите внимание, что FSF, который написал семейство лицензий GPL, рассматривает динамическое связывание для создания производного произведения, поэтому оно может не работать. (Другие люди считают, что ФФС не прав.) Я не думаю, что есть юридическое определение, хотя я вполне могу ошибаться.
Дэвид Торнли
В самом деле? Я убежден, что вы знаете об этом больше, чем я, Дэвид, но википедия говорит, что вы даже можете динамически ссылаться на библиотеки, лицензированные по GPL, без необходимости публиковать под лицензией GPL: «Например, исключение по ссылкам GPL позволяет программам, которые не лицензируют себя в соответствии с GPL для связи с библиотеками, лицензированными в соответствии с GPL, не подпадая под действие требований GPL ". Так что это заставляет меня задуматься, в чем же разница между GPL и LGPL: я думал, что только LGPL допускает это.
Эсус
2
@Dave: Большая юридическая команда моего работодателя не согласилась бы. Они очень агрессивно защищают свою интеллектуальную собственность, и нам явно запрещено связывать код GPL с нашим, если мы не распространяем код в рамках GPL. Где вы нашли это исключение? Я не вижу этого в GPLv2 или v3. Похоже, вы имеете в виду исключение для ссылок, которое не является частью ванильной лицензии GPL. Однако владельцы авторских прав могут добавить исключение для ссылок в свой GPL-код по своему усмотрению. Консультирование юридической команды - действительно лучшее, что можно сделать.
Пустота
5
Я бы не стал доверять Википедии в этом. Для всех, кого вы знаете, запись написана 14-летним, который читал о лицензировании на предыдущих выходных. Получите реальный совет. Или вы могли бы поставить пари на ферме и надеяться, что ваша компания не попадет в беду. Что бы ни работало.
Лассе В. Карлсен
@ Дейв ссылки на GPL это проблема. Насколько я знаю, это было одной из основных причин отказа FreeBSD от GCC в пользу Clang / LLVM .
Леголас
4

Большинство библиотек с открытым исходным кодом, опубликованных под лицензией LGPL или схожей лицензией, по крайней мере, достаточно хороших для использования в ваших проектах, построены по принципу открытого / закрытого: http://en.wikipedia.org/wiki/Open/closed_principle .

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

Olaf
источник
Ну, код LGPL, который я использовал, - это приложение, а не библиотека ... поэтому вопрос заключается в том, могу ли я превратить его в библиотеку или - как предложил Лассе - превратить мой код в библиотеку и оставить остальной LGPL / открытым
Esuus
1
@Dave: LGPL раньше был известен как библиотека GPL. Я действительно не видел ни одного приложения, использующего эту лицензию. Что вы использовали, если не секрет?
Олаф
FSF теперь называет это Малой GPL. Единственное использование, которое я могу придумать сейчас для приложений, - это возможность ссылаться в проприетарных библиотеках и тому подобное.
Дэвид Торнли
Интересно, что и Mozilla, и OpenOffice.org имеют лицензии LGPL.
Esuus
@Dave: Тогда я с Дэвидом Торнли. Mozilla предоставляет средства для создания пользовательских плагинов, которые могут быть закрытым кодом. Я не очень знаком с OpenOffice, но держу пари, что они делают это. Предоставляет ли используемое вами приложение LGPL какую-то расширенную функциональность, такую ​​как добавление плагинов или наличие языка сценариев? Можете ли вы использовать этот механизм для своего кода?
Олаф
2

Тот же отказ от ответственности: IANAL.

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

Единственный способ обойти это - не распространять их в первую очередь.

Пер Йоханссон
источник
2

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

Вместо этого вы можете связаться с первоначальным автором программы LGPL и попросить / купить другую и проприетарную лицензию.

Единственные другие альтернативы - освободить источник или полностью переписать его.

amadvance
источник
1

IANAL, TINLA и др.

Я думал, что LGPL - это разрешительная лицензия, такая же, как MIT, BSD или Apache. Но сегодня я прочитал, что только ссылки на LGPL (библиотеки и т. Д.) Разрешены из закрытого исходного кода - кроме этого, это - copyleft - поэтому я должен опубликовать код, основанный на программе LGPL.

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

Я создал программу для своего работодателя, которая основана на программе LGPL, но в нее внесены значительные изменения. Конечно, мне не разрешено размещать этот измененный исходный код. В то же время, я должен, если я распространю это (верно?).

Верный. Лицензия обязывает всех получателей программного обеспечения получить доступ к исходному коду.

Моя идея: могу ли я поместить большинство функций исходного приложения LGPL во внешнюю библиотеку, написать исполняемый файл ядра с нуля, но вернуться к библиотеке для всех функций, которые я не модифицировал?

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

В настоящее время все находится в файле .jar (это Java / Swing). если вы думаете, что моя идея является юридически / технически осуществимой, - сколько будет усилий, чтобы отделить то, что я написал, и что такое оригинал? Я не самый здравый смысл Java.

Java добавляет в LGPL целый ряд новых проблем, поскольку неясно, что представляет собой «статическое» и «динамическое» связывание. Поскольку исключения LGPL в отношении GPL основаны на этой концепции, LGPL действительно эквивалентен GPL в большинстве случаев. Вам нужно будет проконсультироваться с юридической командой компании, чтобы ответить на любые вопросы, которые возникнут.

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

Если программа будет доступна только внутри компании, то вам нужно только сделать источник доступным для сотрудников компании. Я бы предложил добавить его в систему контроля исходных кодов вашей компании. Это будет соответствовать требованиям LGPL, пока никто за пределами компании не будет иметь доступа.

greyfade
источник
1

Вы можете использовать шаблон адаптера и не трогать оригинальный код. Также LGPL позволяет вам наследовать классы и переопределять функциональность его классов в вашем собственном проекте.

небо
источник
0

Это мое понимание, IANAL.

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

Шон Макмиллан
источник
0

Вы не можете обойти лицензию. Даже если вы найдете лазейку, это все равно неэтично (хотя для некоторых это другой вопрос). Что вы МОЖЕТЕ сделать, так это связаться с автором указанного программного обеспечения, объяснить ситуацию и запросить отдельную лицензию. Если он готов предоставить вам специальную лицензию по цене, вы можете сравнить ее со стоимостью переписывания вашего программного обеспечения без использования соответствующего компонента. И просто пойти с более дешевым.

Тамас Селеи
источник