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


13

Я думав, що LGPL є дозвільною ліцензією, як і MIT, BSD або Apache. Але сьогодні я прочитав, що з закритого коду дозволено лише посилання на LGPL (бібліотеки тощо) - крім цього, це copyleft - тому мені доводиться публікувати код, заснований на програмі LGPL.

Я створив для свого роботодавця програму, яка базується на програмі LGPL, але вона має значні зміни до неї. Звичайно, мені не дозволяється розміщувати модифікований вихідний код там. У той же час я повинен, якщо я його поширюю (правда?).

Тож мені цікаво, чи є в цьому спосіб вирішення, тому я можу зберегти це закрите джерело (я б хотів, щоб я міг опублікувати джерело) - будь-які пропозиції?

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

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


У цій публікації хлопець каже: "Крім того, LGPL можна обійти, просто поставивши його в новий dll і використовуючи делегати або інтерфейси, щоб викликати його з вихідного коду LGPLed". - хтось може розробити трохи більше, як це зробити з оригінальним додатком Java?

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

5
LGPL в основному стосується дистрибуції, і ви не надали нам жодної інформації щодо способу розповсюдження цього коду. На питання навряд чи ви отримаєте точних відповідей, поки не зробите це. У будь-якому випадку я ще раз зазначу, що вам не слід брати юридичні поради з Інтернету .
Рейн Генріхс

Я вважаю, що зараз я досить добре розумію LGPL з точки зору законності. Тож я справді запитую вас, хлопці, про те, як змусити це працювати технічно - хоча ви, звичайно, маєте рацію - у разі сумнівів я проконсультуюся з юристом.
Ісус

Ви не говорите, яке програмне забезпечення ви використовуєте, але деякі постачальники програмного забезпечення GPL / LGPL (та іншого) надають комерційні ліцензії людям, які перебувають у вашій ситуації.
Джейді

Відповіді:


13

Перш за все, отримання юридичних порад тут (як і в інтернеті) - не дуже гарна ідея.

По-друге, і це я просто кажу, а не юрист, ви повинні це подумати, перш ніж взяти програму LGPL'ed і змінити її для свого роботодавця.

Якби ліцензія була чимось, що ти можеш нехтувати лише тому, що тобі це не сподобалось, не було б багато сенсу мати її зараз?

Якщо ви та / або ваш роботодавець не бажаєте публікувати вихідний код зі своїми модифікаціями, вам потрібно припинити використання цього коду LGPL'ed та позбутися його.

Знову ж таки, це я просто кажу.

Отримайте поради у справжнього юриста.


Відповідаючи на ваше запитання про обхід ліцензії шляхом додавання коду до DLL, я припускаю, що це діятиме наступним чином.

Що ви зробили б, щоб змінити початкову програму достатньо, щоб вона могла викликати функції у зовнішніх бібліотеках. Вам доведеться це зробити, не роблячи цього фрагмента коду, який відповідає вашим потребам, бібліотекам, назвам функцій тощо.

Зміни, які ви публікуєте, відповідно до ліцензійних вимог.

Потім ви створюєте свою власну зовнішню бібліотеку з власним власним кодом і просите програму завантажити та виконати її, використовуючи ті зміни, які ви внесли до неї.

Не знаючи всієї ліцензії LGPL, я не можу сказати, чи цього достатньо, щоб уникнути необхідності публікувати вашу бібліотеку, хоча я підозрюю, що це буде.

Однак знову ...

Отримайте консультацію у юриста


4
Зауважте, що FSF, який написав сімейство ліцензій GPL, розглядає динамічне посилання для створення похідного твору, щоб воно не працювало. (Інші люди вважають, що ФФС помиляється.) Я не думаю, що існує юридичне визначення, хоча я, можливо, помиляюся.
Девід Торнлі

Дійсно? Я переконаний, що ви знаєте про це більше, ніж я, Девід, але wikipedia говорить, що ви навіть можете динамічно посилатися на бібліотеки, що мають ліцензію GPL, не публікуючи в GPL: "Наприклад, виняток, що посилається на GPL, дозволяє програмам, які не ліцензують себе відповідно до GPL для посилання на бібліотеки, що мають ліцензію відповідно до GPL, не стаючи тим самим вимогам GPL. " Тому мене зараз цікавить, яка різниця між GPL та LGPL: я думав, що це дозволяє лише LGPL.
Ісус

2
@Dave: Велика юридична команда мого роботодавця не погодиться. Вони дуже агресивно ставляться до захисту своєї інтелектуальної власності, і нам прямо забороняється пов'язувати код GPLed з нашим власним, якщо ми не поширюємо код під GPL. Де ви знайшли цей виняток? Я не бачу його в GPLv2 або v3. Здається, ви посилаєтесь на винятковий зв’язок, який не є частиною GPL ванілі. Однак власники авторських прав можуть на свій розсуд додати виключний посилання на свій код GPLed. Консультація з юридичною командою - це справді найкраще.
Недійсний

5
Я б не вірив Вікіпедії з цього приводу. За всіма відомостями, запис пише 14-річний, який читав про ліцензування попередніх вихідних. Отримайте реальну пораду. Або ви можете поставити під заклад ферму і сподіватися, що ваша компанія не потрапить у біду. Що б не працювало.
Лассе В. Карлсен

@ Посилання на GPL - це проблема. Наскільки мені відомо, це було однією з головних причин для FreeBSD відмовитися від GCC на користь Clang / LLVM .
Леголас

4

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

Ви повинні мати змогу повторно змінити код, щоб ваша програма була пов’язана з бібліотекою LGPL, а всі розширення містились у закритому коді програми.


Що ж, використовуваний мною код LGPL - це додаток, а не бібліотека. Тому питання полягає в тому, чи можу я перетворити його на бібліотеку, або - як запропонував Лассе - перетворити свій код у бібліотеку, а решту LGPL / відкрити
Esuus

1
@Dave: LGPL раніше називався бібліотекою GPL. Я дійсно не бачив жодної програми, що використовує цю ліцензію. Що ви використовували, якщо це не секрет?
Олаф

FSF тепер називає її меншою GPL. Єдине використання, яке я зараз думаю про додатки, - це можливість з'єднатись у власні бібліотеки тощо.
Девід Торнлі

Цікаво, що і Mozilla, і OpenOffice.org мають ліцензію під LGPL.
Ісус

@Dave: Тоді я з @David Thornley. Mozilla надає засоби для створення користувацьких плагінів, які можна закрити кодом. Я не такий знайомий з OpenOffice, але я думаю, що вони це роблять. Чи надає використовуваний вами додаток LGPL якийсь функціонал розширення, наприклад додавання плагінів або мова скриптів? Чи можете ви використовувати цей механізм для свого коду?
Олаф

2

Той самий застереження: IANAL.

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

Єдиний спосіб обійти це - не розповсюджувати їх в першу чергу.


2

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

Натомість ви можете зв’язатися з оригінальним автором програми LGPL та попросити / купити іншу та власну ліцензію.

Єдині інші альтернативи - звільнити джерело або переписати його повністю.


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, доки ніхто не має доступу до компанії.


1

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


0

Це моє розуміння, IANAL.

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


0

Ви не можете обійти ліцензію. Навіть якщо ви знайдете лазівку, це все одно неетично (хоча це питання інше для деяких людей). Що ви МОЖЕТЕ зробити, це зв’язатися з автором згаданого програмного забезпечення, пояснити ситуацію та попросити окрему ліцензію. Якщо він готовий надати вам спеціальну ліцензію за ціною, ви можете порівняти це з вартістю переписування програмного забезпечення, не використовуючи відповідний компонент. І просто піти з дешевшим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.