Czy licencja open source MIT wymaga podania do publicznej wiadomości pochodnych utworów (na licencji MIT)?

9

Szukam licencji typu open source dla biblioteki, którą chcę opublikować. Idealnie byłoby, gdyby można było korzystać z tej biblioteki w aplikacjach bezpłatnych lub komercyjnych bez uiszczania mi opłaty, ale jeśli powstanie jakakolwiek praca pochodna z biblioteki (na przykład dowolne ulepszenie biblioteki), powinna być dostępna dla wszystkich w ramach tego ta sama licencja.

Innymi słowy, chcę wprowadzić następującą etykę: „Korzystasz z tej pracy za darmo, a jeśli ją ulepszysz, mogę również skorzystać z twojej poprawy za darmo”. To licencja typu copyleft, której szukam.

Licencja MIT wygląda na możliwe rozwiązanie, ale nie jest dla mnie jasne, czy dzieła pochodne kodu objętego tą licencją MUSZĄ zostać udostępnione PUBLICZNIE wszystkim. Czy ktoś może to wyjaśnić / potwierdzić? Jeśli istnieje inna, bardziej odpowiednia licencja typu open source pokrywająca moje potrzeby, jestem również zainteresowany. Dzięki.

Jérôme Verstrynge
źródło
Trochę bardziej zaawansowana dyskusja jest tutaj: programmers.stackexchange.com/questions/12394/…
Dipan Mehta

Odpowiedzi:

9

Licencja MIT nie wymaga, aby prace pochodne były otwarte. Szukasz GPL .

GPL przyznaje odbiorcom programu komputerowego prawa do Definicji Wolnego Oprogramowania i korzysta z copyleft, aby zapewnić, że swobody zostaną zachowane za każdym razem, gdy dzieło zostanie rozpowszechnione, nawet gdy dzieło zostanie zmienione lub dodane. GPL jest licencją typu copyleft, co oznacza, że utwory pochodne mogą być rozpowszechniane tylko na tych samych warunkach licencyjnych ...

Mrówka
źródło
1
GPL zmusza użytkownika do publikowania prac pochodnych w ramach GPL, co przesuwa zbyt duże ograniczenia. Chcę tylko, aby modyfikacje mojej biblioteki były dostępne. Czy powinienem używać LGPL?
Jérôme Verstrynge,
8
W takim przypadku tak - LGPL jest bardziej odpowiednie.
Ant
Pamiętaj, że wyzwalacz (L) GPL działa tylko przy redystrybucji. Użytkownik końcowy, który tworzy dzieło pochodne wyłącznie do użytku prywatnego, nie jest związany obowiązkami (L) GPL. Tj. Ściśle mówiąc, nie jest to odpowiedź na pytanie w formie wyrażonej.
MSalters
7
@MSalters: Myślę, że byłoby prawie niemożliwe, aby wiedzieć, że ktoś wyprowadził coś z twojego kodu, chyba że opublikuje to w jakiejś formie, co sprawi, że problem będzie nieco dyskusyjny.
Ant
6

Krótka odpowiedź

Połączenie licencji publicznej Eclipse i licencji LGPL zapewnia dokładnie to, czego chcesz: Modyfikacje kodu muszą być udostępnione, ale użycie kodu w większym produkcie nie zmusza do licencjonowania większego produktu. Połączenie jest konieczne, aby umożliwić stosowanie kodu zarówno w projektach GPL, jak i innych niż GPL.

Tak właśnie zrobiły projekty takie jak JGraphT. Licencjonowali swój projekt na podstawie EPL i LGPL. Motywacja i procedura są opisane na ich wiki .

Długa odpowiedź

Myślę, że Licencja publiczna Mozilla ( MPL ) lub Licencja publiczna Eclipse ( EPL ) to licencja, której szukasz, ponieważ „jeśli zostanie utworzona jakakolwiek praca pochodna z biblioteki (na przykład dowolne ulepszenie biblioteki), to [IS ] udostępnione wszystkim na tej samej licencji ”.

Licencja MPL i EPL jest zawarta między GPL a MIT.

MIT pozwala użytkownikowi robić z nim wszystko, w tym modyfikować, sprzedawać i nie oddawać zmodyfikowanego kodu społeczności.

GPL zmusza użytkownika do przekazania całego kodu społeczności, nawet jeśli twoja biblioteka stanowi tylko 1% całego produktu.

LGPL zmusza użytkownika do ujawnienia modyfikacji części kodu LGPL.

MPL i EPL są podobne do LGPL: Zmusza to również użytkownika do udostępnienia zmodyfikowanego źródła. „Zmodyfikowane źródło” obejmuje tylko część kodu objętego MPL- / EPL. Oznacza to, że użytkownik może zbudować nowy produkt ze swojej biblioteki. Jeśli dokona modyfikacji części MPL / EPL, musi ją opublikować. Nowe rzeczy przez niego nie muszą być publikowane.

Uważam, że MPL / EPL jest bardziej odpowiednie, ponieważ LGPL wyraźnie mówi o „bibliotekach”, a MPL po prostu mówi o „oprogramowaniu objętym usługą” (co jest szerszym zakresem).

Jednak wybór EPL powoduje problemy z czesaniem oprogramowania z oprogramowaniem GPL: EPL nie jest kompatybilny z GPL . Nie dzieje się tak w przypadku korzystania z MPL .

Jeśli chcesz mieć pewność, że Twój kod może być używany zarówno w projektach GPL, jak i innych niż GPL, podwój licencję na kod zgodnie z LGPL i EPL, jak opisano w krótkiej odpowiedzi.

Przykłady

  • JGraphT
  • logback
  • qooxdoo . Planują „uprościć i zmodernizować warunki licencyjne qooxdoo”, a tym samym przestawią się z podwójnego licencjonowania na MIT.
koppor
źródło
Czy możesz wyjaśnić, dlaczego uważasz, że MPL spełnia kryteria, których szuka PO?
wałek klonowy
Czy „podwójna licencja” powinna wyglądać jak „jeśli używasz tego oprogramowania w produkcie GPL, to oprogramowanie jest licencjonowane na licencji GPL, w innym przypadku na licencji MPL?” Czy są jakieś projekty, które robią coś takiego?
9000
@ 9000 Zgodnie z często zadawanymi pytaniami w GNU , kod jest objęty zarówno MPL, jak i GNU. Drugi akapit jest trochę dziwny i nie całkiem zrozumiałem konsekwencje.
koppor