Wybór licencji na projekty open source


30

Zrobiłem kilka projektów typu open source i planuję zrobić więcej w przyszłości. Jak dotąd wydałem cały mój kod na licencji GPL, ale przeczytałem kilka artykułów, które twierdzą, że GPL jest zbyt restrykcyjne, aby jakikolwiek kod mógł być używany w środowisku korporacyjnym. To rzekomo zmniejsza składki.

Oto, co chciałem osiągnąć:

Dla pełnych aplikacji :

  • bez komercyjnego wykorzystania, z wyjątkiem wsparcia sprzedaży aplikacji (tzn. aplikacji nie można sprzedać, ale wszystko wokół niej może)

W przypadku bibliotek (komponenty, wtyczki, ...):

  • może być włączony do projektów komercyjnych bez modyfikacji
  • wszelkie modyfikacje biblioteki / komponentu muszą być otwarte (przekazane z powrotem) - nie ma to wpływu na pozostałą część projektu, komercyjną lub nie

W przypadku aplikacji GPL nadal wydaje się logicznym wyborem. W przypadku bibliotek moje prymitywne rozumienie licencji powoduje, że uważam, że LGPL jest dobrym rozwiązaniem, ale nie jestem pewien. Przejrzałem licencję MIT i wydaje się to zbyt liberalne.

Przez większość czasu chcę, aby ludzie używali mojego kodu w dowolnym miejscu, pod warunkiem, że wszelkie ulepszenia zostaną wniesione z powrotem.

To prowadzi mnie do moich pytań: czy LGPL jest logicznym wyborem dla bibliotek, komponentów, wtyczek itp. Typu open source? Czy jest lepsza alternatywa? Czy GPL jest dobrym wyborem dla moich aplikacji, czy jest coś lepszego?

Aktualizacja:

Dla tych, którzy są zainteresowani moją ostateczną decyzją, zdecydowałem się wydać moje biblioteki w ramach systemu wielu licencji, MPL, LGPL i GPL. Dzięki temu praktycznie każdy może korzystać z mojego kodu bez żadnych zobowiązań, chyba że zmodyfikuje go zgodnie z MPL, w którym to przypadku należałoby go oddać.

Oznacza to, że kod może być używany zarówno przez FSF, jak i oprogramowanie zastrzeżone, ale zapobiega się „złemu” komercyjnemu wykorzystaniu (a przynajmniej tak sądzę).


1
Czy masz na myśli niekomercyjne wykorzystanie lub komercyjną dystrybucję / odsprzedaż?
MIA

Prawdopodobnie dystrybucja / odsprzedaż. Nie miałbym nic przeciwko, gdyby ludzie używali moich rzeczy w celach komercyjnych, ale myślę, że to zależy od projektu. Chociaż nie widzę sposobu na wykorzystanie czegokolwiek, co napisałem do celów komercyjnych.
dr Hannibal Lecter,

4
Należy zauważyć, że (w przeciwieństwie do niektórych odpowiedzi) FAQ Creative Commons wyraźnie stwierdza, że ​​licencje CC nie powinny być używane do oprogramowania. ( Dedykacja domeny publicznej CC0 jest zatwierdzona do użytku z oprogramowaniem, ale nie nadaje się do celów określonych w pierwotnym pytaniu.) Zamiast tego CC zaleca wybór licencji zatwierdzonej przez Free Software Foundation lub Open Source Initiative.
Peter Briggs,

1
Domyślam się, że jeśli nie wymyślisz czegoś naprawdę i naprawdę wyjątkowego i użytecznego, szansa na „złą komercjalizację” jest tak mała, że ​​nie warto poświęcać czasu, aby temu zapobiec.
Bryan Oakley,

1
Jeśli ktoś jest zainteresowany, jest propozycja strony z pytaniami i odpowiedziami na temat licencjonowania open source w area51: area51.stackexchange.com/propozycje/58715/...
Kurt

Odpowiedzi:


8

Wydaje mi się, że GPL i LGPL są tym, czego chcesz dla swoich projektów.


Więc powiedziałbyś, że LGPL to dobry wybór dla moich wymagań? Nie jestem prawnikiem, więc po prostu sprawdzam :)
dr Hannibal Lecter

1
Nie jestem też prawnikiem, ale myślę, że LGPL jest dokładnie tym, czego chcesz dla biblioteki, a GPL dla pełnych aplikacji.
alternatywny

Sprzedawanie aplikacji GPL jest legalne. Po prostu dołączasz kod źródłowy i dajesz swoim klientom takie same prawa GPL, jakie posiadasz.
bdsl

8
  • bez komercyjnego wykorzystania, z wyjątkiem wsparcia sprzedaży aplikacji (tzn. aplikacji nie można sprzedać, ale wszystko wokół niej może)

Strzeż się, że GPL nie zabrania sprzedaży aplikacji, a zabronienie tego rzeczywiście uczyniłoby twoją licencję niewolną, jak zaobserwował Huperniketes. Jedyną rzeczą, którą zapewnia GPL, jest to, że firma sprzedająca oprogramowanie musiałaby również bezpłatnie udostępnić bazę kodu. Ale nie muszą dostarczać pakietu oprogramowania w stanie , w jakim jest, za darmo. To dość duża różnica, ponieważ kod źródłowy oprogramowania nie jest produktem łatwym w użyciu.


Właściwie nie mam nic przeciwko, ponieważ kod źródłowy będzie gdzieś unosił się w powietrzu i ktoś z niego skorzysta. ;)
dr Hannibal Lecter

Naprawdę tego nie rozumiem. To znaczy, jeśli mogę zdobyć źródła, mogę skompilować i nic nie zabrania mi ich używania, prawda?
Camilo Martin

@Camilo: czego nie dostajesz?
Konrad Rudolph,

Sekcje 4 i 6b GPL w wersji 3 obejmują to, co mówisz @KonradRudolph
Rudolf Olah

Nie muszą dostarczać kodu źródłowego za darmo, jeśli dołączą go do pakietu podczas sprzedaży aplikacji.
bdsl,

5

Jeśli chcesz uniemożliwić komercyjne wykorzystanie swojego oprogramowania, GPL go nie wyciszy. Przedsiębiorstwa komercyjne unikają GPL w produktach, które sprzedają ze względu na konieczność redystrybucji zmodyfikowanego źródła, ale mogą swobodnie korzystać z oprogramowania GPL wewnętrznie. Nie oznacza to, że firmy nie są skonfigurowane do sprzedaży oprogramowania GPL lub budowania sprzętu wokół oprogramowania GPL (na przykład LinkSys), ale większość firm wolałaby nie udostępniać swoich produktów konkurentom.

Nie wiem, czy licencja Creative Commons Uznanie autorstwa niekomercyjne Bez instrumentów pochodnych jest tym, czego chcesz (jedynym ograniczeniem, o którym wspomniałeś, jest wykorzystanie komercyjne ), ale jeśli nie, może być konieczne przygotowanie licencji przez prawnika, który zawiera język przyznający prawa, które mają posiadać posiadacze licencji.

Ponadto, gdy zaczniesz uwzględniać takie ograniczenia, jak użytek niekomercyjny i niemodyfikowalność , możesz już nie spełniać kryteriów licencji typu open source określonych w inicjatywie Open Source . Ich strona zawiera także inne zatwierdzone licencje OSS . Być może jest już taki, który pasuje do twoich celów.

I odpowiednio definiując swoje cele będzie kluczem przed wyborem prawa i ograniczenia umieszczanych na użytkowników oprogramowania. Czy popularność jest ważniejsza niż modyfikowalność, dystrybucja, użycie czy…? Pomyśl o swoich celach związanych z wydaniem kodu na początek i w jakim duchu to robisz lub warunki, na jakich udzielasz dostępu, mogą mieć odwrotny skutek.


Firma wewnętrznie korzystająca z oprogramowania GPL nie jest komercyjnym wykorzystaniem oprogramowania ...
alternatywnie

3
@mathepic, czy słowa „biznes” i „używanie” nie wydają się podobne do „użytku komercyjnego”? definitions.uslegal.com/c/commercial
Huperniketes

@Huperniketes Nie, nie robią tego. Firma korzystająca z oprogramowania (np. Przeglądarka bazy danych) jest dokładnie taka sama jak osoba korzystająca z tego oprogramowania. Nie ma różnicy, dopóki projekt nie zostanie włączony do końcowego produktu firmy.
alternatywnie

3
@mathepic, jesteś niepoprawny. Biznes to sprawa komercyjna - istniejąca dla zysku. Każda działalność, w którą się angażuje, jest komercyjna. A skonfigurowanie serwera WWW z Apache do obsługi podręczników użytkownika to komercyjne wykorzystanie Apache. Terminem operacyjnym w sensie prawnym jest użycie , a nie dystrybucja , nie sprzedaż ani odsprzedaż .
Huperniketes

2
@dr, nie stanowi to naruszenia, ponieważ licencja Apache nie zabrania używania komercyjnego. apache.org/foundation/licence-FAQ.html#WhatDoesItMEAN „Pozwala na: swobodne pobieranie i używanie oprogramowania Apache, w całości lub w części, do celów osobistych, wewnętrznych lub komercyjnych firmy;”
Huperniketes

4

Jeśli zależy Ci na tym, aby Twój kod pozostał wolny, odzyskiwał ulepszenia i był pewien, że każdy może go użyć, to MPL jest odpowiednią licencją dla Ciebie. Można go używać w dowolnym produkcie, w tym w oprogramowaniu komercyjnym, bez dziwnych, tajemnych ograniczeń łączenia, takich jak narzucone przez LGPL. Wymaga to, aby każdy, kto używa twojego kodu i modyfikuje go, opublikował zmiany w MPL, ale nie dotyka ani nie ogranicza reszty kodu w projekcie.


W ogóle nie znam MPL, ale brzmi to bardzo interesująco. Do tej pory wydałem tylko kod PHP, więc ograniczenia linkowania nie powinny stanowić problemu, ale planuję również wydanie kodu Mono, MPL może okazać się bardzo przydatny.
dr Hannibal Lecter

4

Jeśli napisałeś cały kod (to znaczy, jeśli posiadasz kod), możesz także podwójnie licencjonować go: opublikować swój kod np. W GPLv3 i zaoferować jego sprzedaż (z inną licencją) tym, którzy chcą go używać mniej restrykcyjnie.

(dotyczy to w szczególności biblioteki, ponieważ biblioteki edytowanej w GPL można używać tylko w oprogramowaniu GPL).

Uważaj na zewnętrzne elementy lub łatki, które włączasz do swojego kodu (ponieważ nie jesteś ich właścicielem).


1

To, czy faktycznie możesz ubiegać się o MPL, czy tylko GPL, zależy od jednej krytycznej różnicy:

„Prawa wynikające z niniejszej umowy” obejmują prawo przyznane odbiorcom do połączenia „Kodu objętego usługą” MPL z prywatnym kodem innym niż MPL w celu utworzenia „Większej pracy” (MPL 3.7 Większe prace). GPL nie daje odbiorcom takiego prawa. W związku z tym odbiorca nie może zmienić warunków licencyjnych, aby zastosować GPL zamiast MPL.

Zobacz to .

Oznacza to dla ciebie, że jeśli używasz dowolnego komponentu, który sam jest na licencji GPL, (prawdopodobnie) nie możesz zwolnić kodu (który go używa) w MPL; MPL niesłusznie podejmie próbę redystrybucji kodu GPL w MPL, co jest niewłaściwe. Jest to w porządku, jeśli twoje zależności są w kolejności licencji MIT lub Apache.

Ogólnie rzecz biorąc, jeśli nie radzisz sobie lepiej, wybierając MPL zamiast samej GPL, chyba że już używasz MPL. GPL zapewni również, że komentarze zostaną również opublikowane z powrotem.

Istnieje tylko krytyczna zmiana, jaką zapewnia MPL, czyli ochrona przed nieświadomie wywołanym naruszeniem patentu. Zgodnie z licencją:

Utworzenie Modyfikacji, na którą posiada patent, nie jest dozwolone, udostępnienie Modyfikacji bezpłatnie zgodnie z wymogami Licencji, a następnie powrót i próba obciążenia wszystkich prawami patentowymi.

MPL i GPL nie są całkiem kompatybilne.

Możesz zobaczyć tutaj: MIT vs. BSD vs. Podwójna licencja do dyskusji na temat implikacji podwójnych licencji.


Niezgodność GPL powinna być rozwiązana w MPL v2.0. (Myślę, że ten post został opublikowany przed wydaniem v2.0). Zobacz oświadczenie GNU w sprawie MPLv2.0
mucaho,

0

Wydaje się, że nikt o nich nie mówi, ale możesz rozważyć licencję Creative Commons. Mają szereg licencji (lub taką, którą dostosowujesz do swoich potrzeb, patrząc na inną drogę).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.