Projekt Forking GPL: Czy mam pełne prawa do nowego widelca, czy nadal jestem zależny od pierwotnego właściciela

34

Zastanawiam się nad stworzeniem widelca do małego projektu na licencji GPLv2 i mam kilka bardzo szczegółowych pytań, na które nie udało mi się odpowiedzieć podczas badań na różnych stronach i forach.

Kiedy rozwidlam kod, jestem zmuszony wydać nowy projekt na tej samej licencji (GPL), co zrobię, ale czy mogę również zdecydować o wydaniu go na podstawie podwójnej licencji, jednej z nich komercyjnej?

Czy podczas tworzenia projektu automatycznie posiadam prawa autorskie do całości? Jest to istotne, gdy na przykład, decydując się na zmianę przyszłości w pozwoleniu, lub aby móc egzekwować licencji GPL do 3 -ciej partii

Visiedo
źródło
10
gdyby to było możliwe, każdy mógłby po prostu rozwidlić projekt GPL i uzyskać to samo oprogramowanie z zupełnie nową licencją, skutecznie usuwając wszelkie ograniczenia związane z GPL i unieważnić licencję GPL jednym prostym ruchem.
user2485710,
GPL pozwala na wykorzystanie komercyjne!
feklee

Odpowiedzi:

74

Krótka odpowiedź: kiedy rozwidlasz istniejący projekt, na ogół nie masz pozwolenia na zmianę licencji ani nie masz praw autorskich do skopiowanego kodu.

Ci zrobić posiadają prawa autorskie do wszelkich (nietrywialnych) zmiany lub rozszerzenia, które można zrobić.


Długa odpowiedź:

Jedynym sposobem uzyskania praw autorskich do fragmentu kodu jest napisanie go samodzielnie lub przyznanie praw autorskich przypisanych do Ciebie. Oznacza to, że rozwidlenie istniejącego projektu nie zmienia praw autorskich do kodu oryginalnego projektu ani rozwidlenia.

Jedynymi osobami, które mogą zmienić licencję praw autorskich, są posiadacze tego prawa autorskiego. Jeśli kod projektu ma wielu właścicieli praw autorskich, wszyscy posiadacze praw autorskich muszą wyrazić zgodę na zmianę licencji na prawa autorskie. Oznacza to, że nie masz uprawnień do zmiany licencji swojego widelca (nawet na podwójną licencję), chyba że istniejąca licencja na prawa autorskie wyraźnie daje ci prawo do sublicencjonowania kodu.

Bart van Ingen Schenau
źródło
2
Dobre wyjaśnienie problemów z prawami autorskimi.
Rory Hunter
2
@ ArtB, nie jestem pewien co do GPL -> AGPL, ale LGPL pozwala na wydanie zmodyfikowanej wersji na licencji GPL ( patrz artykuł 2 ). To, co wolno ci robić, zależy od tego, jaka jest początkowa licencja.
Bruno
3
@ 2rs2ts nie jestem pewien, czy to, co mówisz, jest prawdą (patrz sekcja 13 GPLv3 ... oczywiście zależy to od tego, czy mówimy o GPLv2 czy GPLv3). Ponadto Twoje zmiany są zazwyczaj zawsze Twoje. Jeśli dodasz magiczny widget do projektu A GPL, może rzeczywiście być konieczne redystrybucja partii w ramach GPL, ale jeśli dodasz ten sam magiczny widget do projektu B BSD, możesz ponownie licencjonować swoje rzeczy (a nie rzeczy z projektu A) w dowolny sposób (zgodny z licencją projektu B). (Jak zawsze zasięgnij porady prawnej, jeśli chcesz być pewien. To nie to.)
Bruno
1
Pamiętaj, że AFAIK (ale IANAL) twój kod jest twój bez względu na wszystko, tzn. Możesz wydać łatkę na dowolnej licencji, którą lubisz, niezależnie od licencji projektu docelowego.
o0 ”.
4
@Lohoris: Masz rację, że możesz wydawać łatki, które piszesz, z dowolną licencją. Ale jeśli nieostrożny wybór tej licencji może uniemożliwić dystrybucję łatanego kodu, ponieważ spełnienie wszystkich wymagań licencyjnych byłoby niemożliwe.
Bart van Ingen Schenau
24

Twój rozwidlony projekt jest pochodną kodu oryginalnego projektu. Innymi słowy, twój projekt korzysta z oryginalnego projektu, a zatem jesteś związany jego licencją. Gdyby to nie była prawda, licencja nie miałaby żadnego sensu.

Więc nie, nie możesz zwolnić kodu na licencji zastrzeżonej, jeśli pochodzi on z kodu, który na to nie pozwala.

duży nos
źródło
Odpowiedź Barta implikuje bardziej rygorystyczne warunki niż twoje w zakresie wymagań licencyjnych dotyczących rozwidlonego kodu - który z nich jest dokładny w ogólnym przypadku?
Thomas
Twoja odpowiedź tworzy dzieło oparte na rozwidlonych projektach, co umożliwia licencjonowanie, jeśli oryginalny kod był objęty licencją, która pozwala na licencjonowanie dzieł pochodnych. Odpowiedź Barta mówi, że nigdy nie możesz ponownie udzielać licencji na rozwidlony kod, chyba że nabywasz prawa autorskie, niezależnie od tego, co mówi oryginalna licencja. Czy są one równoważne?
Thomas
4
@Thomas Dan's są poprawne, jeśli oryginalna licencja zezwala na ponowne licencjonowanie, możesz ponownie licencjonować nowy projekt. Nie jestem przekonany, że odpowiedź Barta określa, na co ją interpretujesz. OP mówi o kodzie licencjonowanym na licencji GPL, więc oba są równoważne w tym przypadku.
Taemyr
5
@ Thomas, nie sądzę, żeby tam był konflikt. Obie nasze odpowiedzi dotyczą tego, że nadal jesteś związany licencją na kod, z którego korzystałeś . Możesz jednak robić wszystko, na co pozwala licencja tego kodu. Bart zauważa, że ​​jeśli oryginalna licencja na pracę daje Ci pozwolenie, możesz wydać swoją pracę na innej licencji.
@Taemyr Tak, chyba myliłem się co do tego, czy odpowiedź Barta dotyczyła wszystkich licencji (jak sugeruje pisanie), czy tylko GPL (jak sugeruje to pytanie).
Thomas
17

Zapomnij na chwilę o GPL i spójrz na prawa autorskie. Po rozwidleniu projektu cały kod obecny w oryginalnym projekcie jest chroniony prawami autorskimi każdego, kto napisał ten kod w oryginalnym projekcie. Cały kod, który napiszesz później, jest twoim prawem autorskim. Więc jeśli nie przepiszesz całego kodu z oryginalnego projektu, ten kod nie jest twój i nie masz żadnych praw.

Następnie spojrzysz na licencję GPL i sprawdzisz, jakie prawa daje ci poza prawem autorskim. Pozwala tworzyć dzieła pochodne, dzięki czemu cała działalność związana z rozwidlaniem jest legalna - przy zwykłym prawie autorskim nie można tworzyć dzieł pochodnych. Następnie pozwala ci używać kodu, dopóki go nie rozpowszechniasz. Tak długo, jak nikt inny nie może położyć rąk na rozwidlonym kodzie, GPL pozwala ci robić z nim, co chcesz.

Jeśli jednak rozpowszechniasz rozwidlony kod, w tym kod chroniony prawem autorskim innej osoby, masz pozwolenie właściciela praw autorskich tylko wtedy, gdy przestrzegasz jego zasad. Jedną z zasad jest to, że musisz licencjonować cały kod na licencji GPL (w tym własny). Kolejną zasadą jest to, że musisz przekazać kod źródłowy innym; sprawdź GPL, aby uzyskać szczegółowe informacje.

Zmiana licencji byłaby trudna, dopóki jakikolwiek oryginalny kod nadal istnieje. Nie możesz licencjonować swojego kodu w sposób, który uniemożliwia następnemu facetowi korzystanie z kodu w sposób dozwolony przez GPL, a także nie możesz pozwolić im robić rzeczy z kodem, na który GPL nie zezwala.

gnasher729
źródło
1
Ogólnie zgadzam się z twoją odpowiedzią, ale myślę, że możesz chcieć przeformułować to zdanie: „przy zwykłym prawie autorskim nie byłoby dozwolone tworzenie dzieła pochodnego”. Zasadniczo prawdopodobnie wystarczy udawać, że jest to dokładne, ale są wyjątki. (Wygasłe prawa autorskie, parodia itp.) Przyznaję jednak, że większość nie dotyczy GPL.
Patrick M