Перезапис GPL-коду для зміни ліцензії


23

Я знайшов бібліотеку GPL (без подвійної ліцензії), яка робить саме те, що мені потрібно. На жаль, ліцензія GPL на бібліотеку несумісна з ліцензією іншої бібліотеки, яку я використовую. Тому я вирішив переписати бібліотеку GPL, щоб ліцензію можна було змінити.

Моє запитання: наскільки масштабними повинні бути зміни в бібліотеці, щоб можна було змінити ліцензію? Іншими словами, який найдешевший спосіб зробити це?


3
Можливо, дешевше заплатити автору бібліотеки GPL, щоб випустити її за іншою ліцензією.
Quant_dev

3
Замість того, щоб запитати, який найдешевший спосіб, чому б не розповісти нам повну історію і не запитати "Що правильно робити?"
Джон Р. Стром

4
Якщо інша бібліотека не сумісна з GPL, можливо, саме цю бібліотеку потрібно змінити.
Пол Різник

1
Яку ліцензію має інша бібліотека?
Андрес Ф.

Відповіді:


34

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

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

Редагувати: Зауважте, що ви формулюєте своє запитання "Наскільки масштабними повинні бути зміни до бібліотеки, щоб можна було змінити ліцензію?" відповідь AFAIK зрозуміла: що б ви не робили, якщо ви просто змінюєте бібліотеку, ви повинні дотримуватися терміну ліцензії, що дозволяє вам в першу чергу змінити її.


3
Питання неприємності, мабуть, не є дуже серйозним питанням на практиці. У випадках, коли ви реверсуєте інженерний код комерційної організації, то брандмауер між читачем та виконавцем необхідний для судового позову про порушення (по суті неминучого), тож ви можете довести, що не було можливості копіювати код з іншої версії . Що стосується більшості GPL-кодів, якщо ви не порушуєте грубих прав, ніхто не збирається вас судити, оскільки це не в їх інтересах.
Марк Бессі

1
Можливо, вам сподобається російська рулетка, її вибір. Якщо з якоїсь причини - конкуренція, яка наслідує той чи інший код, або просто конкуренція, яка вирішила фінансувати позов, - вас подають до суду і засуджено, це може щось заглушити вашу компанію. Навіть якщо вас не пред'являть позови, якщо це відомо, погана репутація може бути проблемою.
AProgrammer

2
Я думаю, що "заплямоване" питання здебільшого стосується НДА. Що стосується авторських прав, це навряд чи має сенс. Вважайте, що авторські права також стосуються книг, газет, фільмів і т. Д. Джордж Лукас, ймовірно, бачив серіал «Зоряний шлях» по телевізору перед створенням «Зоряних воєн», чи це робить «Зоряні війни» похідною роботою? Якщо журналіст про щось чує по радіо, чи заважає йому писати про ту саму подію?
користувач281377

6
Підхід до чистої кімнати - це лише спосіб довести, що ви не порушили закон про авторські права. Як я розумію - і знову ж таки я не юрист - речі, розроблені без знання оригінального твору, можуть не порушувати авторські права (але можуть порушувати патенти). Речі, розроблені за допомогою цих знань, можуть або не можуть порушити авторські права - просто важче довести, що подібність обумовлена ​​випадковими подіями або характером проблеми, що робить підхід природним.
AProgrammer

1
@ammoQ: У США давно був позов про порушення копії (статистичний програмний пакет?), коли компанія вважала, що вона порушила, хоча кожен рядок коду був переписаний. Зауважте, що "Зоряні війни" не особливо схожі на "Зоряний шлях", і що репортер газети не збирається писати історію лише з того, що він чи вона чули по радіо.
Девід Торнлі

21

Звичайний спосіб вирішити цю проблему - спочатку зв’язатись із власником бібліотеки і запитати, чи видасть її вам за іншою ліцензією.

Якщо ви працюєте над проектом з відкритим кодом, де GPL не сумісний, є велика ймовірність, що вони це зроблять, деякі проекти закінчуються ліцензією GPL лише тому, що це здавалося найкращим вибором.

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

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


8
Це варто зняти, але це не спрацює, якщо власник бібліотеки прийняв або скористався внесками GPLed, що стосується багатьох бібліотек.
Брайан

^ Якщо у них не було угоди про "внесок", яка перепризначила авторські права на оригінальних авторів: softwareengineering.stackexchange.com/a/225577/93511
Джонатан

17

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

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

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


4

IANAL, але я знаю, що в США жодна ступінь модифікації не створить непохідну роботу. Якщо у нього є який-небудь код, скопійований зі старої бібліотеки, або він має достатню внутрішню схожість, що може спричинити неприємності для плагіарізиму в університетському класі, то ви не-де поблизу нової роботи. Зміна деяких імен функцій або змінних нічого не призведе, а також переміщення фрагментів коду в джерелі. Вам доведеться самостійно створити його знову, щоб мати шанс. IOWs, вам потрібно буде переглянути лише інтерфейси, які він надає, і вирішити, як надати цю функціональність і відновити її таким чином, щоб мати шанс. Навіть тоді ви все ще не можете бути з лісу, якщо хтось дійсно піклується і злість.

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


1

Якщо все інше, що пропонується тут (прохання про подвійну ліцензію, перезапис), є неприйнятним, будь ласка, пам’ятайте, що досі не є ясним випадком, чи динамічне зв’язування з власною програмою / бібліотекою вважається похідною роботою. FSF стверджує, що так, але багато юристів (включаючи Лоренса Розена) сумніваються в цьому.

Таким чином, ви можете зв’язати своє програмне забезпечення з бібліотекою GPLed, а потім переконатися, що вихідний код його поширюється з кожною копією програмного забезпечення. Якщо хтось подає до вас у суд, він повинен довести, що їх розуміння цього хитрого і мутного аспекту GPL є правильним. Як видно (наприклад, Galoob проти Nintendo), ви не можете бути абсолютно впевнені, що робить похідну роботу, а що ні.


або принаймні запитайте, чи може lib також бути LGPL.
Йоган

2
Питання щодо динамічного зв’язку є складним, але не розраховуйте на те, що суддя вирішує ваш шлях. Суддя цілком може прийняти рішення, що ви приймаєте визначення Gnu, якщо використовуєте ліцензію Gnu, і, ймовірно, не хочете базувати свій програмний продукт на результатах судової справи, яка ще не відбулася.
Девід Торнлі

1

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

Є багато простіших способів навколо GPL:

  • на чіткому рівні: зробіть його на сервісі, отримайте доступ через нього Socket - це межа ліцензії GPL (якщо тільки це сумнозвісний GPLv3 з умовою Affero );
  • у сірій зоні: динамічно зв’язуйте це. Існує багато суперечок, якщо динамічне пов'язування не є межею похідної роботи. Тут небагато точок зору . Це також може залежати від юрисдикції, в якій ви перебуваєте.

Також зауважте, що GPL є ліцензією на розповсюдження , тому вам потрібно ліцензувати свою роботу лише в тому випадку, якщо ви поширюєте бінарні файли третім сторонам. І ви зобов'язані лише випускати джерело до них, не зобов’язуючись випускати його для загальної публіки, якщо тільки ви не випускаєте бінарні файли для загальної публіки. Якщо ви використовуєте свій код, наприклад, лише на своїх серверах, ви не зобов'язані випускати будь-який код. Ось як, наприклад, Google робить це зі своїми налаштованими ядрами Linux.


Я далеко не впевнений, що розетка є бар’єром. На думку наших юристів, інженери занадто зосереджені на технічних заходах, тоді як глобальний ефект - це те, що перевіряється законом. Публікація інтерфейсу сокета та надання прикладу використання в emacs lisp було для них нормальним. Але надання можливості автоматично встановлювати emacs разом з нашою програмою не було. Ви праві для дистрибуції. Але зауважте, що ви не можете перешкодити тому, кому розповсюджуєтесь, розповсюджувати далі.
AProgrammer

@AProgrammer: навіть FSF каже, що якщо це окремий процес, то це окремі програми, таким чином, не випливає робота. Поширені запитання стосуються плагінів, але логіка все ж застосовується: gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins
vartec

Питання про те, що плагіни та плагіни за своєю природою не є необхідними. Я не ставлю ставку моїй компанії, що структурування програми в двох процесах: один GPLed тому, що він використовує бібліотеки GPLed, а інший не тому, що ми хочемо зберегти джерело приватним - це законно. Особливо, коли обидва розподіляються разом. Але це ваш дзвінок.
AProgrammer

1
@ A: розповсюдження з іншими програмами є "агрегацією" і явно дозволено GPL. І ні, це не мій дзвінок. Особисто я б не торкався бібліотеки GPL навіть палицею довжиною 10 футів.
vartec

1

IANAL, і, в будь-якому випадку, це може нічого юридично не означати, але, я вважаю, що в книзі Стівена Леві "Хакери" він описує, як, в один момент, RMS написав * nix-код для грошей протягом дня і вночі написав те саме речі вдома, щоб вона могла бути частиною ... GNU? ... це було раніше Linux ... якоїсь безкоштовної системи типу Unix. Я вважаю, що він повинен був зробити домашній код іншим, ніж код дня, але він в основному робив саме те, що ви пропонуєте.

Це, мабуть, юридично не має значення, але ... Я не впевнений, що Apple і / або Microsoft отримали дозвіл / ліцензію чи щось таке, але лабораторії дзвоників не винайшли інтерфейс робочого столу / піктограми / миші, який використовувався для Mac (або Ліза?), яку потім використовував Microsoft.


Це був би Xerox PARC, а не Bell Labs.
Marnen Laibow-Koser

І Джобс уклав угоду з Xerox, яка дозволила Apple піти в лабораторію в Пало-Альто. На той час ніхто в компанії Xerox не піклувався про цю техніку.
aledalgrande

0

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


Ви можете отримати список ліцензій Gnu за адресою gnu.org/licenses/license-list.html, і ви помітите, що він розділений на безкоштовні ліцензії, сумісні з GPL, безкоштовні не сумісні з GPL ліцензії та недобрі ліцензії. GPL має деякі специфічні вимоги, яким інші ліцензії часто не відповідають, і однією з цілей GPLv3 було спрощення сумісності.
Девід Торнлі

0

Наскільки масштабними повинні бути зміни в бібліотеці, щоб можна було змінити ліцензію?

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

З іншого боку, якщо diff-інструмент не може знайти подібності, то ...


2
Якщо різний інструмент не може знайти подібності, це все ж може бути порушенням авторських прав. Погляньте на це з точки зору непрограмування: я пишу книгу, ви перекладаєте її на шведську мову, а за законом про авторські права США (і, швидше за все, шведської мови) ви зробили похідний твір.
Девід Торнлі

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