Licencja MIT jest zgodna z GPL. Czy licencja GPL jest zgodna z MIT? tj. mogę dołączyć kod na licencji MIT do produktu na licencji GPL, ale czy mogę dołączyć kod na licencji GPL do produktu na licencji MIT?
Wydaje mi się, że główna różnica między licencją MIT a GPL polega na tym, że MIT nie wymaga modyfikacji z otwartym kodem źródłowym, podczas gdy GPL tak. Czy to jest poprawne? Czy GPL jest bardziej restrykcyjna niż licencja MIT?
Odpowiedzi:
Prawda - ogólnie. Nie musisz otwierać swoich zmian, jeśli używasz GPL. Możesz go zmodyfikować i używać do własnych celów, o ile go nie rozpowszechniasz. ALE ... jeśli to rozprowadzasz, cały projekt, który używa kodu GPL, również automatycznie staje się GPL. Co oznacza, że musi być open-source, a odbiorca ma takie same prawa jak ty - co oznacza, że może go obracać i rozpowszechniać, modyfikować, sprzedawać itp. I to obejmowałoby twój zastrzeżony kod, który wtedy nie już zastrzeżone - staje się open source.
Różnica w stosunku do MIT polega na tym, że nawet jeśli faktycznie rozpowszechniasz swój zastrzeżony kod, który korzysta z kodu licencjonowanego przez MIT, nie musisz tworzyć kodu open source. Możesz rozpowszechniać go jako zamkniętą aplikację, w której kod jest zaszyfrowany lub binarny. Dołączony kod licencjonowany przez MIT może być zaszyfrowany, o ile zawiera informację o licencji MIT.
Tak, bardzo.
źródło
Możesz. GPL jest wolnym oprogramowaniem, podobnie jak MIT, obie licencje nie ograniczają Cię do łączenia kodu, gdzie „dołączenie” jest zawsze dwukierunkowe.
W przypadku praw autorskich do dzieła połączonego (tj. Dwóch lub więcej utworów tworzą razem jeden utwór) nie ma większego znaczenia, czy jedno dzieło jest „większe” od drugiego, czy nie.
Jeśli więc włączysz kod na licencji GPL do produktu na licencji MIT, jednocześnie włączysz produkt na licencji MIT do kodu na licencji GPL.
Po drugie, OSI wymieniło następujące kryteria (bardziej szczegółowo) dla obu licencji (MIT i GPL):
Oba pozwalają na tworzenie połączonych prac, o co prosiłeś.
Jeżeli połączenie tych dwóch utworów jest uważane za pochodne, to nie jest to również ograniczone przez obie licencje.
Obie licencje nie ograniczają rozpowszechniania oprogramowania.
GPL nie wymaga od ciebie wypuszczania modyfikacji tylko dlatego, że je wprowadziłeś. To nie jest dokładne.
Możesz to połączyć z dystrybucją oprogramowania na GPL, o co nie pytałeś bezpośrednio.
Oto jak to rozumiem:
Jeśli chodzi o dystrybucję, musisz objąć cały pakiet licencją GPL. Kod MIT w pakiecie będzie nadal dostępny w ramach MIT, podczas gdy GPL dotyczy całego pakietu, jeśli nie jest ograniczona wyższymi prawami.
„Restrykcyjny” lub „bardziej restrykcyjny” / „mniej restrykcyjny” zależy w dużej mierze od punktu widzenia. Dla użytkownika oprogramowania MIT może skutkować bardziej ograniczonym oprogramowaniem niż to dostępne na GPL, nawet niektórzy nazywają GPL bardziej restrykcyjną obecnie. Ten użytkownik w szczególności będzie nazywał MIT bardziej restrykcyjnym. To subiektywne, aby to powiedzieć, a różni ludzie udzielą ci różnych odpowiedzi na to pytanie.
Ponieważ mówienie o ograniczeniach różnych licencji jest subiektywne, powinieneś pomyśleć o tym, co chciałbyś osiągnąć:
Dopóki jesteś autorem, to Ty decydujesz.
Tak więc najbardziej restrykcyjną osobą w historii jest autor, niezależnie od tego, na którą licencję się zdecyduje;)
źródło
Masz rację, że GPL jest bardziej restrykcyjna niż licencja MIT.
Nie możesz zawrzeć kodu GPL w produkcie licencjonowanym przez MIT. Jeśli rozpowszechniasz połączone dzieło, które łączy kod GPL i MIT (z wyjątkiem niektórych szczególnych sytuacji, np. „Zwykła agregacja”), dystrybucja ta musi być zgodna z GPL.
Możesz dołączyć kod na licencji MIT do produktu GPL. Cała połączona praca musi być rozpowszechniana w sposób zgodny z GPL. Jeśli dokonałeś zmian w częściach MIT kodu, będziesz musiał opublikować źródło tych zmian, jeśli rozpowszechniasz aplikację, która zawiera kod GPL i MIT.
Jeśli jesteś właścicielem praw autorskich do kodu GPL, możesz oczywiście zdecydować się na wydanie tego kodu na licencji MIT - w takim przypadku jest to twój kod i możesz go opublikować na dowolnej liczbie licencji.
źródło
IANAL, ale tak jak ja to widzę ....
Chociaż można łączyć kod GPL i MIT, GPL niszczy. Co oznacza, że pakiet jako całość podlega ograniczeniom GPL. Ponieważ jest to bardziej restrykcyjne, nie można go już używać w oprogramowaniu komercyjnym (lub raczej zamkniętym). Co również oznacza, że jeśli masz projekt MIT / BSD / ASL, nie będziesz chciał dodawać zależności do kodu GPL.
Dodanie zależności GPL nie zmienia licencji twojego kodu, ale ograniczy to, co ludzie mogą zrobić z artefaktem twojego projektu. Z tego powodu ASF nie zezwala na zależności od kodu GPL w swoich projektach.
http://www.apache.org/licenses/GPL-compatibility.html
źródło