Чи можна GPL припускати до похідної роботи?


13

Існує три програмні проекти: A, B і C.

A публікується для будь-кого і ліцензується відповідно до GPL.

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

C поширюється B. Чи можна опублікувати C під GPL? Мотивація була б "A - це GPL, будь-яка похідна повинна бути GPL також, так що B є GPL і C також може бути GPL".


5
Яка частина В поширюється на С? Якщо вони всі вже в A, я не бачу жодної проблеми. Якщо C поширюється на частини B, які там, де не в A, все стає цікавішим.

Я б назвав проекти A, B, C і зв’язався з авторами Б.
Василе Старинкевич

1
Також я вважаю, що ви могли принаймні опублікувати C під GPL, оскільки GPL сумісний з LGPL. Але IANAL
Василь Старинкевич

2
@Tichodroma, C поширюється на частини B, але B не може існувати без A :)
Андрій

Чи писав автор С також (частину) А? Якщо ні, то ми не маємо уявлення, яку ліцензію автори "А" дали "B", тож ми не маємо ідеї, чи можемо ми на цьому базуватися?
виїзд

Відповіді:


23

По-перше, B є порушенням GPL щодо A. Але це не зовсім ваше занепокоєння, і це не має значення для питання тут (хто знає, можливо, B отримав ліцензію LGPL від A на свій код, щоб його можна було випустити під LGPL? ).

Питання "Чи можете ви створити програмне забезпечення GPL на основі коду LGPL?" Відповідь на це просто "так".

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

З ліцензії LGPL:

  1. Код об'єкта, що містить матеріал із файлів заголовків бібліотеки. Форма об'єктного коду програми може містити матеріал із заголовкового файлу, який є частиною бібліотеки. Ви можете передати такий об'єктний код під вибрані вами умови за умови, що якщо вбудований матеріал не обмежений числовими параметрами, макетів структури даних та аксесуарами, або малими макросами, вбудованими функціями та шаблонами (довжиною десять чи менше рядків), ви виконайте наступне:

    a) Повідомляйте кожну копію об'єктного коду про те, що Бібліотека використовується в ній і що Бібліотека та її використання охоплюються цією Ліцензією.
    b) Супроводжуйте об'єктний код копією GPL GNU та цим ліцензійним документом.

Його частина ліцензії. Ви можете легко створити програмне забезпечення GPL на основі коду LGPL.

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


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

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

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

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

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

Порушення GPL не означає, що матеріал знаходиться під GPL, а скоріше, що він не може поширюватися.


3
Гарна відповідь. Чи розглядали ви зобов’язання прийняти пропозицію Stackexchange з відкритим кодом ?
Філіп

5
@Andrej Єдиною особою, яка має право визначити, як B має бути ліцензованою, є люди, які написали B. Якщо A є GPL'ed, вони мають можливість "не поширювати" або "ліцензію як GPL". Те, що воно було помилково розподілене, не означає, що воно ліцензоване як GPL.

6
Крім того, приємний вислів про те, що "ти не знаєш, чи отримав B іншу ліцензію від авторів"; " можливо, B зовсім не порушує авторські права A, оскільки ви не знаєте, що B використовує A відповідно до GPL (автори A можуть видавати стільки ліцензій, скільки бажають, і можуть, наприклад, запропонувати її під GPL і продати на нього ліцензію, що дозволяє використовувати її у власницькому коді).
cpast

1
У випадку, коли автор B отримує A за ліцензією GPL, факт розповсюдження не змушує GPL щодо B. Але чи існують ліцензії, які могли б це зробити? Отже, людина може опублікувати своє програмне забезпечення та бути впевненою, що хтось отримає доступ до всіх майбутніх опублікованих похідних даних? І дозволити будь-кому застосувати ліцензію на похідні. (Я можу почати нове запитання до цього :))
Андрій

2
По-четверте, EULA - це набагато, набагато, набагато сумнівніше юридично питання, ніж GPL. GPL не встановлює обмежень; будь-яке обмеження насправді є законодавчим законом про авторські права (те, що GPL робить, в деяких випадках відмовляється від цих обмежень). Тому GPL працює так добре - не існує такого поняття, як "порушення GPL", є лише порушення авторських прав. Завдяки договору EULA потрібно змусити людей погодитися обмежувати себе; це означає, що ви знаходитесь у царині договірного права, яке дуже мутне і наповнене можливими захисними силами, як, наприклад, хтось не погодився (вам не потрібно погоджуватися на авторські права).
cpast

4

Є власники авторських прав: є авторські права на твори, створені A, є авторські права на доповнення B, а також авторські права на будь-які зміни, внесені C. C повинен перевірити, чи має він дозвіл на використання програмного забезпечення, на яке A і B зберігаються авторські права.

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

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

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


3

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

У вашій ситуації це означає, що можливо мати бібліотеку A під GPL та новий код у бібліотеці B під LGPL. Комбінована робота (бібліотека B) ефективно поширюється за ліцензією GPL і може поширюватися як така, оскільки ліцензія LGPL сумісна з ліцензією GPL (код ліцензій LGPL можна використовувати в ліцензованому проекті GPL).
У цій ситуації цілком чудово мати новий код у бібліотеці С під GPL, а отриману роботу також під GPL.


Це працює лише тому, що частини LGPLed B можуть використовуватися разом із GPLed A під GPL. Якщо новий код знаходився під якоюсь ліцензією, що суперечить GPL (наприклад, всі права захищені), ви не можете припустити, що B в цілому ефективно поширювався під GPL.
cpast

1
@cpast: Ви праві, я забув зазначити, що LGPL сумісний з GPL. Якщо ліцензії були несумісними, ви не дозволили б розповсюджувати результат.
Барт ван Інген Шенау
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.