Czy licencje open source na mój kod ograniczają mnie później?

29

Załóżmy, że opracowuję przydatną bibliotekę i postanawiam opublikować ją jako oprogramowanie typu open source. Jakiś czas później muszę zrobić coś, co nie byłoby zgodne z licencją typu open source. Czy mogę to zrobić?

Jak powinienem opublikować oprogramowanie w taki sposób, aby zachować własność i nie blokować w żaden sposób korzystania z biblioteki w przyszłości?

Pamiętaj, że przynajmniej teoretycznie inni programiści mogą zdecydować się na udział w moim projekcie open source. Czy mogę określić w licencji, że jako pierwotny programista mam również własność ich wkładów? Nie zrozumcie mnie źle, nie staram się być złym i przejąć na własność cudzej pracy - chcę po prostu zachować swoją własność, a jeśli ktoś opublikuje ważną poprawkę, nie będę mógł użyć oryginalnego kodu, chyba że Korzystam także z jego pracy.

konfigurator
źródło
6
Wydanie na jednej licencji nie wyklucza również wydania na innych licencjach - w końcu nadal jesteś właścicielem kodu. Kod źródłowy jest podwójnie licencjonowany (lub trzy lub więcej) przez cały czas.
Uwaga do siebie - wymyśl nazwę

Odpowiedzi:

44

Zawsze zachowujesz własność na podstawie licencji typu open source. Praca, którą stworzyłeś, jest twoją własnością i możesz z nią robić, co chcesz, (oczywiście w granicach prawnych), w tym pozwalając innym osobom na korzystanie z niej na warunkach licencji typu open source. Jeśli chcesz go wykorzystać do zastrzeżonego projektu, możesz to zrobić, chyba że całkowicie przekazałeś prawa innej osobie na podstawie umowy. Ale nie tak robią licencje typu open source. Chodzi o dzielenie się użytecznością, a nie rezygnację z własności.

Sprawy stają się trochę naklejki, gdy inni ludzie zaczynają wnieść swój wkład. To ich praca, a nie twoja i musisz uzyskać ich pozwolenie. Jedną rzeczą, którą możesz zrobić, to opublikować swoją bibliotekę na podwójnej licencji. Tak robi Sam Lantinga, główny twórca i opiekun SDL . Ponieważ Apple nie lubi dynamicznych bibliotek linków dla iOS, a zgodność z LGPL w statycznie połączonej aplikacji jest większym problemem niż jest warta, dlatego publikuje SDL zarówno na licencji LGPL, jak i komercyjnej licencji na statyczne aplikacje na iPhone'a. Kiedy ktoś przesyła łatkę, wyraźnie prosi ją o pozwolenie na jej zainstalowanie w bibliotece na obu licencjach, a jeśli im się to nie podoba, nie dodaje jej do bazy kodu.

EDYCJA: Mój przykład nie jest już dokładny. Jakiś czas temu Sam zmienił model (nie wiem dlaczego; może po prostu zmęczył się problemami administracyjnymi) i teraz licencjonuje SDL na bardzo liberalnej licencji w stylu zlib. Ale robił to w ten sposób.

Mason Wheeler
źródło
1
+1 szczególnie za pokazanie, jak radzić sobie z wkładami innych autorów.
Frank Shearar
5

Nie jestem prawnikiem i nie jest to porada prawna. Jeśli potrzebujesz gwarancji prawnej, zatrudnij prawnika.

Absolutnie możesz podwójnie licencjonować swoje oprogramowanie - Trolltech robił to przez wiele lat z Qt, a Linden Lab zrobił to z klientem SecondLife.

Możesz użyć dowolnej licencji. Niektóre licencje są zgodne z zamkniętymi środowiskami komercyjnymi, takimi jak licencje Mozilla MPL, MIT i BSD oraz (wierzę) licencje SunDL CDDL i Apache.

Jeśli jednak potrzebujesz elastyczności, aby wydać swoje oprogramowanie zarówno jako projekt open source, jak i produkt o zamkniętym źródle, absolutnie możesz to zrobić jako oryginalny autor. Jedynym problemem jest kwestia wkładów użytkowników. Nie możesz włączyć wkładu innych osób do komercyjnej wersji oprogramowania, chyba że legalnie ujawnią ci prawa autorskie. GNU robi to tylko dlatego, że zaktualizuje swoje licencje w przyszłości.

Pamiętaj, że użytkownikom, a zwłaszcza autorom, prawdopodobnie się to nie spodoba, więc wpłynie to na społeczność wokół twojego projektu, prawdopodobnie negatywnie.

Ponownie skonsultuj się z prawnikiem w celu uzyskania szczegółowych informacji.

greyfade
źródło
MIT, czyli licencja „rób co chcesz, do diabła”.
Evan Plaice,
2

Ja też nie jestem prawnikiem, ale ...

Oprócz restrykcyjnych (które zmuszą cię do Open Source każdego projektu, który ich używa) licencji, takich jak GPL, istnieją również nieograniczające (co oznacza, że ​​możesz używać takiego oprogramowania w komercyjnym projekcie), takie jak Lesser GPL lub licencja Apache (2.0 ?). Może więc możesz po prostu wydać oprogramowanie na nieograniczonych warunkach.

Paweł Dyda
źródło
2
GPL nie zmienia prawa własności do kodu. Jeśli opublikuję kod na GPL, dotyczy to innych osób korzystających z kodu - mam dowolne pozwolenie, które mi się podoba i mogę zrobić z nim wszystko, co chcę (jednak ponieważ prawo nie działa wstecz, nie mogę ograniczyć korzystania z oprogramowania przez osoby, które korzystały z tego oprogramowania) na GPL).
Maciej Piechotka,
2
Mówiąc o ograniczeniu, mam na myśli to, że GPL zmusza użytkowników Twojej biblioteki do wydania oprogramowania na licencji zgodnej z GPL, podczas gdy licencje takie jak L-GPL, Apache, ... (BSD?) Nie. Nie jestem pewien, czy jeśli kod GPL został opracowany na licencji GPL, a ktoś dopuści się zmian, możesz po prostu opublikować go komercyjnie, jakby nic się nie wydarzyło. Myślę, że najpierw musisz pozbyć się dodatków ... Ale jeśli biblioteka / framework ma licencję L-GPL, możesz z niego korzystać w aplikacjach komercyjnych tak jak wszyscy inni, to na pewno. Mam nadzieję, że to ma sens.
Paweł Dyda,
To właśnie robię, gdy piszę bibliotekę. Wydanie biblioteki komercyjnej nie ma większego sensu, zwykle jest to aplikacja użytkownika końcowego, która zostanie wydana w ten sposób, a jeśli jest to licencja nieograniczająca, mogę korzystać z biblioteki w moim projekcie. I nie ma znaczenia, czy to napisałem, czy ktoś inny.
Goran Jovic
@Goran, możesz używać biblioteki we własnym projekcie, bez względu na licencję . To twoja biblioteka i twój projekt: licencja dotyczy innych osób, a nie ciebie.
TRiG