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


15

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

Однак мені цікаво, якими є правила в цьому випадку: я створюю сервіс, де буду продавати та розповсюджувати програмне забезпечення на стороні клієнта .

У програмному забезпеченні на стороні клієнта абсолютно немає GPL-коду. Це на 100% мій власний код.

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

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

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

Відповіді:


12

Це не чітке питання. Розглянемо два крайніх кінця спектру:

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

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

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

Поширені запитання щодо GPL мають таке значення про сумісні програми, що мають окрему ліцензію :

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

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

Ви повинні вирішити, чи вважаєте ви, що ваш клієнт є сервером, відповідає стандарту "дві частини однієї програми" (і тому кожна повинна мати ліцензію відповідно до GPL) чи ні. Поширені запитання щодо GPL дають додаткові пояснення щодо цієї теми з іншого питання :

Де знаходиться лінія між двома окремими програмами та однією програмою з двома частинами? Це юридичне питання, яке вирішать врешті-решт судді. Ми вважаємо, що правильний критерій залежить як від механізму комунікації (exec, pipe, rpc, виклики функцій у спільному адресному просторі тощо), так і семантики комунікації (які види інформації взаємозамінні).

...

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

Так, мережевий зв’язок, безумовно, проходить тест "механізм комунікації", але незрозуміло, куди ваша клієнтська / серверна пара потрапляє на тест "семантика комунікації".


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

Хм. Я поставив це запитання так невиразно, бо мені просто цікаво про GPL взагалі. Однак я думаю, що зараз я розумію різницю. Якщо на моєму сервері є інформація про обліковий запис користувача, яку потрібно запустити для мого клієнтського програмного забезпечення, це явно порушує GPL. Якщо мій сервер чимось нагадує пакетний ретрансляційний сервер, який просто дозволяє двом версіям мого клієнтського програмного забезпечення спілкуватися між собою, то це було б добре. Чи я правильний у цих припущеннях?
Стівен Джефріс

4

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

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

GNU Affero GPL - це ліцензія, схожа на GPL, з додатковою вершиною, призначеною для закриття цієї самої петлі, яка ви хочете скористатися (див. Http://www.gnu.org/licenses/why-affero-gpl.html та http://en.wikipedia.org/wiki/Affero_General_Public_License#Examples_of_web_applications_under_GNU_AGPL ).

Відмова: Я розробник, а не юрист.


3
Просто до відома попередження: Якщо клієнт розроблений спеціально для спілкування з цим програмним забезпеченням сервера, то цілком можливо , що FSF робить розглянути сервер і клієнтське програмне забезпечення в якості одного продукту. Дивіться також тут у FAQ щодо GPL
Барт ван Інген Шенау

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

2

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

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


Я буду помилятися з боку обережності і не використовую GPL-код на своєму сервері.
Стівен Джефріс

2
@StevenJeffries Ця відповідь відповідає як сучасній практиці, так і вимогам GPL. Поки я не поширюю програмне забезпечення або похідну роботу, я вільний використовувати програмне забезпечення GPL'ed на сервері, наприклад, Linux або GCC або WordPress. Просто використання програмного забезпечення не створює похідну роботу. У випадку GPL це вважається нормальним, якщо задіяно принаймні поділ на рівні процесу (немає спільної пам'яті, немає спільних структур даних). Правильне рішення та довідки див. У відповіді Дж. Ленте.
амон

@amon: Якщо ви навіть не обмінюєтесь структурами даних між сервером і клієнтом, то ви праві. Я сумніваюся, що так і є. Відмінність, яку я малюю (чи клієнтське програмне забезпечення залежить від серверного програмного забезпечення для його належного виконання), не є довільним; це одна з двох суттєвих вимог до того, що ФФС вважає не "похідною роботою"; інше - "спілкування по довжині зброї". Не сприймайте мого слова за це; прочитайте його для себе на веб-сайті FSF.
Роберт Харві

@amon: Ви можете прочитати більше про це тут .
Роберт Харві

@amon Ще один дуже релевантний елемент поширених запитань щодо GPL (хороший як подальший досвід після прочитання посилання Роберта) - це цей, особливо останні три абзаци: gnu.org/licenses/gpl-faq.html#MereAggregation
apsillers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.