Чи можете ви змінити код, розповсюджений під ліцензією MIT, і повторно поширити його за ліцензією GPL? [зачинено]


57

Чи можна змінити код плагіна Chili , який вийшов останнім випуском липня 2008 року, і він ліцензований за ліцензією MIT, щоб потім ліцензувати його під GPL?

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

У моєму випадку я б змінив плагін jQuery в звичайний код Javascript, який виконується в CMS. Це по суті означає, що серед іншого:

  • Код не використовуватиме простір імен "ChiliBook".
  • Функція не буде викликана як $($element).chili(), а як GlobalObject.ChiliHighlighter.process($jquery_element), де "GlobalObject" - це об'єкт JavaScript, який використовується з CMS.
  • Код дозволить іншим модулям змінювати GlobalObject.ChiliHighlighterоб'єкт для додавання функцій, які необов'язково викликаються, GlobalObject.ChiliHighlighter.process()коли вони визначені.

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


2
Якщо ви дійсно хочете авторитетної відповіді, вам слід проконсультуватися з юристом (у відповідній юрисдикції, наприклад, відповідь у Італії може бути іншою, ніж у США)
MarkJ

Відповіді:


59

Це технічно законно.

Ліцензія MIT (Expat) накладає на вас кілька обмежень. Це підмножина ліцензії GPL. Тому, якщо ви повторно додати код під GPL та зберігаєте повідомлення про MIT, то ви виконали умови ліцензії MIT і можете юридично перерозподілити код.

Зауважте, що ви не можете вимагати права власності на авторські права; вам доведеться підтвердити оригінальне авторське право.

[редагувати] Деякі люди, здається, не розуміють, як працює F / ​​OSS у поєднанні з авторським правом та ліцензійним законодавством. Все починається з авторських прав, хоча б тому, що це за замовчуванням. Відповідно до доктрини авторських прав, автор отримує право робити копії вихідного коду. Відповідно до ліцензії MIT, це право надається мені, а також право рекурсивно надавати його іншим. Зауважте, що ліцензія MIT явно включає право на субліцензію. Цитування:"the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

Коли я надаю субліцензійний код, я не можу надати права, які у мене раніше не було. У випадку з GPL мені суворо заборонено субліцензувати лише деякі права. Але ні в законі, ні в ліцензії MIT у мене немає зобов'язання субліцензувати всі права в цілому.

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


6
@vartec: Ви не змінюєте ліцензію, згідно з якою ви отримали код. Ви створюєте нову ліцензію між вами та новим одержувачем, і вона може мати будь-які умови, які ви хочете. (Новий одержувач може отримати додаткові права за оригінальною ліцензією, але це не впливає на нову ліцензію.) Норма полягає в тому, що субліцензія дає частину прав у оригінальній ліцензії. Наприклад, субліцензія рідко включає право на субліцензію, яке, мабуть, містило оригінальну ліцензію для наявності субліцензію.
Девід Шварц

3
@vartec: По суті, ви стверджуєте, що ліцензія на авторське право, яка якось дає право на субліцензію, насправді не дає права на субліцензію. Я не впевнений, на чому ви висуваєте цей аргумент. Чи є у вас якісь посилання на будь-який відповідний юридичний орган? Ви говорите, власник авторських прав не може надати іншим право ліцензувати його твір? Або ви вважаєте, що ліцензія MIT якось не справляється з цим чи не збирається?
Девід Шварц

1
@David: ти, схоже, не розумієш, що означає "субліцензування".
vartec

1
@vartec: Посилання на джерело, яке пояснює це було б чудово, тому що я думаю, ви не розумієте, що це означає.
Девід Шварц

7
У ліцензії MIT є такий біт: "Вищезазначене повідомлення про авторські права та це повідомлення про дозвіл повинні бути включені у всі копії чи значні частини Програмного забезпечення." Це означає, що будь-яка вилка повинна бути доступна за ліцензією MIT. Зміни можна вказати як GPL. Вилка може бути вказана як GPL + MIT. Але вилку не можна вказати лише як GPL - це явне порушення ліцензії MIT.
Джонатан Ванаско

26

Так. Але ефект може бути не таким, яким ви вважаєте, що це таке.

Ліцензія MIT включає всі права, які надає GPL та багато іншого. І хоча люди, які отримують ваш дистрибутив, отримують лише ліцензію GPL на додані вами елементи, вони все одно отримують ліцензію MIT (від оригінальних авторів, а не від вас) на будь-які елементи, що містяться у творі, запропонованому авторами відповідно до цієї ліцензії.

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

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


так що на практиці я би зробив це: скопіюйте проект MIT, замініть все MIT на GPL (щоб не залишилося жодного сліду від проекту, що був MIT), а потім додатково посилання на оригінальний проект MIT у кількох важливих місцях (не у кожному вихідний файл, хоча), згадуючи, що базовий проект доступний під MIT. це буде нормально / законно (якщо я зберігаю оригінальні заяви власника авторських прав)?
hoijui

1
@hoijui Ви повинні залишити усі заголовки ліцензій та повідомлення про дозвіл недоторканими та включити їх у свій новий проект. І якщо ваш намір не обманювати, я не розумію, чому ви замінили б усі згадки про «MIT». Це нічого не змінить, деталі, які ви берете, як і раніше будуть мати ліцензію на MIT. Просто додайте свій власний заголовок ліцензії GPL під ним, він буде дійсним для всіх змін, захищених авторським правом (тобто не лише перейменування змінних), які ви вносите у вихідний код. BTW, тому більшість проектів мають заголовок авторських прав у кожному файлі.
jmiserez

@jmiserez гаразд. тому давайте подивимось на один файл мого проекту тоді: я залишаю заголовок MIT, вношу деякі зміни та додаю заголовок GPL (оскільки я хочу, щоб мої зміни були доступні лише під GPL). тепер третя сторона, що надходить до мого файлу, повинна вшанувати і MIT, і GPL? я ніколи не бачив файл з двома заголовками ліцензій, і я думаю, що більшість людей просто обирають ліцензію, яка їм подобається, оскільки вони не знають, що таке юридично правильний шлях. Крім того, чому я повинен включати MIT, якщо вшановуючи GPL, він автоматично також вшановує MIT?
hoijui

@hoijui Будь-які права, які ви маєте за ліцензією MIT, поширюються з обмеженням "Вищезазначене повідомлення про авторські права та це повідомлення про дозвіл повинно бути включено до всіх копій або значної частини Програмного забезпечення". повідомлень, або лише одне, IANAL. Але я впевнений, що вам потрібно десь включити повідомлення. Якщо ви цього не зробили, ви більше не відповідали б ліцензії MIT, а це означає, що ви втратите всі права на використання коду у своєму проекті. FYI ядро ​​Linux має файли з декількома ліцензіями, вони використовують заголовки SPDX
jmiserez

1
Як сумно, що хтось хоче спробувати використати GPL-код, який був побудований на ліцензії MIT. Здається, це проти всього, за що виступає ліцензія MIT.
Ендрю Т Фіннелл

8

Нічого не додайте до пояснень у вже наданих відповідях, але ось інструкції, як формувати заголовки вихідного файлу ( джерело ):

2.2 Додавання модифікацій GPL'd до файлів, що мають дозвільну ліцензію

Складніший випадок виникає, коли розробник вносить зміни, захищені авторським правом, у файл, що має дозвіл, який розробник включив у програму GPL'd. Розробники в цій ситуації зазвичай застосовують GPL до своїх модифікацій. (Однак розробник може натомість внести новий код за дозволеними умовами, такими як дозвільна ліцензія, яка керує немодифікованим файлом. Ми обговорюємо цей випадок у § 2.3.)

Незважаючи на те, що дозвільна ліцензія зовнішнього проекту дає юридичний дозвіл на включення коду цього проекту в проект GPL'd, розробник проекту GPL'd повинен, тим не менш, відповідати вимозі збереження сповіщень у дозвільній ліцензії. У проекті, що використовує метод "файл за файлом", розробник, який вносить зміни, захищені авторським правом, на файл, що має дозвільний доступ, повинен розмістити нове повідомлення про авторські права та повідомлення про дозвіл вище існуючого та дати зрозуміти, що розробник змінив файл. Верх файлу з’явиться наступним чином:

/*  
 * Copyright (c) 2007  GPL Project Developer Who Made Changes   
 *  
 *  This file is free software: you may copy, redistribute and/or modify it  
 *  under the terms of the GNU General Public License as published by the  
 *  Free Software Foundation, either version 2 of the License, or (at your  
 *  option) any later version.  
 *  
 *  This file is distributed in the hope that it will be useful, but  
 *  WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  
 *  General Public License for more details.  
 *  
 *  You should have received a copy of the GNU General Public License  
 *  along with this program.  If not, see .  
 *  
 * This file incorporates work covered by the following copyright and  
 * permission notice:  
 *  
 *     Copyright (c) YEARS_LIST, Permissive Contributor1   
 *     Copyright (c) YEARS_LIST, Permissive Contributor2   
 *  
 *     Permission to use, copy, modify, and/or distribute this software  
 *     for any purpose with or without fee is hereby granted, provided  
 *     that the above copyright notice and this permission notice appear  
 *     in all copies.  
 *  
 *     THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL  
 *     WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED  
 *     WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE  
 *     AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR  
 *     CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS  
 *     OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,  
 *     NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN  
 *     CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  
 */

Дуже важливо, щоб розробник зберігав все повідомлення про авторські права, повідомлення про дозвіл та відмову від гарантії, оскільки вони з'явилися в оригінальному коді, як того вимагає дозвільна ліцензія. Іноді ми бачимо повідомлення GPL, змішані з повідомленнями про дозвільну ліцензію - заплутану практику, яка затьмарює як походження коду, так і точні дозволи, надані різними власниками авторських прав, переліченими в повідомленнях. Коли різні власники авторських прав оприлюднили свої внески на різних умовах, слід вказати умови, які кожен розмістив на своєму конкретному вкладі. Ми рекомендуємо зробити чітке розділення та використовувати відступи, як у наведеному вище прикладі.

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

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