Вибір ліцензії на проекти з відкритим кодом


30

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

Ось що я хотів досягти:

Для повних програм :

  • не використовувати комерційне використання за винятком продажу підтримки програми (тобто додаток не можна продавати, але все навколо нього може)

Для бібліотек (компоненти, плагіни, ...):

  • можна включати в комерційні проекти без змін
  • будь-яка модифікація, на яку бібліотека / компонент має бути відкрита (надана назад) - решта проекту, комерційна чи ні, не впливає

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

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

Це підводить мене до моїх питань: чи є LGPL логічним вибором для бібліотек, компонентів, плагінів з відкритим кодом та іншого? Чи є краща альтернатива? Чи є GPL хорошим вибором для моїх програм чи є щось краще?

Оновлення:

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

Це означає, що код може використовуватися як FSF, так і фірмовим програмним забезпеченням, але "погана" комерційна експлуатація перешкоджає (або я так хотів би подумати).


1
Ви маєте на увазі не комерційне використання чи комерційне розповсюдження / перепродаж?
МВС

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

4
Важливо зазначити, що (всупереч деяким відповідям) FAQ Com Creative Commons прямо зазначає, що ліцензії CC не повинні використовуватися для програмного забезпечення. (The Відданість СС0 Public Domain буде схвалений для використання з програмним забезпеченням , але не підходить для цілей , зазначених в первісному питанні.) Замість CC рекомендує вибрати ліцензію , затвердженої Фондом вільного програмного забезпечення або ініціативи в області Open Source.
Пітер Бріггс

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

1
Якщо когось зацікавить, є пропозиція щодо веб-сайту з питань запитання щодо ліцензування відкритих джерел на сайті51: area51.stackexchange.com/proposals/58715/…
Курт

Відповіді:


8

Мені здається, що GPL та LGPL - це те, що ви хочете для своїх проектів.


Отже, ви б сказали, що LGPL - це хороший вибір для моїх вимог? Я не юрист, тому я просто перевіряю :)
доктор Ганнібал Лектер

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

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

8
  • не використовувати комерційне використання за винятком продажу підтримки програми (тобто додаток не можна продавати, але все навколо нього може)

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


Я справді добре з цим, оскільки вихідний код кудись буде плавати, і хтось від цього виграє. ;)
д-р Ганнібал Лектер

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

@Camilo: чого ти не отримаєш?
Конрад Рудольф

Розділи 4 та 6b версії 3 GPL охоплюють те, що ви говорите @KonradRudolph
Рудольф Олах

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

5

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

Я не знаю, чи потрібна ліцензія Creative Commons Attribution Non-Commercial No Derivatives (єдине обмеження, яке ви згадали, - комерційне використання ), але якщо ні, можливо, вам доведеться мати ліцензію, підготовлену для вас адвокатом, яка містить мова, яка надає права, які ви бажаєте мати власників ліцензій.

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

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


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

3
@mathepic, чи слова "бізнес" та "використання" не вважають вас схожими на "комерційне використання"? definitions.uslegal.com/c/com
commercial

@Huperniketes Ні, вони ні. Бізнес, що використовує програмне забезпечення (наприклад, браузер бази даних), точно такий же, як і людина, яка використовує це програмне забезпечення. Немає різниці, якщо проект не включений у кінцевий продукт бізнесу.
альтернатива

3
@mathepic, ви неправі. Бізнес - комерційний концерн - існує для отримання прибутку. Будь-яка діяльність, якою вона займається, є комерційною. А налаштування веб-сервера під керуванням Apache для розміщення посібників користувача - це комерційне використання Apache. Оперативне слово в юридичному розумінні - це використання , а не розповсюдження , не продаж чи перепродаж .
Хупернікетес

2
@dr, це не є порушенням, оскільки ліцензія Apache не забороняє комерційне використання. apache.org/foundation/licence-FAQ.html#WhatDoesItMEAN "Це дозволяє: вільно завантажувати та використовувати програмне забезпечення Apache, повністю або частково, для особистих, внутрішніх чи комерційних цілей компанії;"
Хупернікетес

4

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


Я взагалі не знайомий з MPL, але це звучить дуже цікаво. Поки що я випустив лише PHP-код, тому зв'язування обмежень не повинно бути проблемою, але я планую випустити також і якийсь код Mono, MPL може виявитись дуже корисним.
д-р Ганнібал Лектер

4

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

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

Будьте уважні до зовнішніх внесків або патчів, які ви включаєте у свій код (оскільки ви не володієте ними).


1

Чи можна насправді подавати заявку на MPL або лише на GPL, залежить від однієї критичної різниці:

"Права згідно з цим Договором" включають право, надане одержувачам пов'язувати MPL "Покритий код" з приватним кодом, що не є MPL, для формування "Більшої роботи" (MPL 3.7 Більші твори). GPL не дає одержувачам такого права. Тому одержувач не може змінювати ліцензійні умови для застосування GPL замість MPL.

Дивіться це .

Це означає для вас, що якщо ви використовуєте будь-який компонент, який сам є GPL'ed, ви (мабуть) не можете випустити код (який використовується цим) під MPL; MPL помилково намагатиметься дозволити перерозподілити код GPL'ed під MPL, що є неправильним. Це добре, якщо ваші залежності в порядку ліцензії MIT або Apache.

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

Є лише критична зміна, яка забезпечує MPL - це захист від невідомо спричинених порушень патенту. Як зазначено в ліцензії:

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

MPL та GPL не зовсім сумісні.

Ви можете побачити тут: MIT vs. BSD vs. Dual License для обговорення наслідків подвійних ліцензій.


Несумісність GPL повинна була бути вирішена з MPL v2.0. (Я думаю, цей пост був зроблений до виходу v2.0). Дивіться заяву GNU про MPLv2.0
mucaho

0

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

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