Widziałem wiele licencji na wszelkiego rodzaju oprogramowanie, takie jak GNU GPL, licencja BSD, licencja MIT i LGPL. Jak wygląda proces tworzenia nowej licencji na oprogramowanie, takiej jak „ogólna licencja Johna Doe”?
Widziałem wiele licencji na wszelkiego rodzaju oprogramowanie, takie jak GNU GPL, licencja BSD, licencja MIT i LGPL. Jak wygląda proces tworzenia nowej licencji na oprogramowanie, takiej jak „ogólna licencja Johna Doe”?
Odpowiedzi:
Ogólnie rzecz biorąc, to wszystko. Poważnie.
Nie wierzysz mi? Sprawdź licencję Phila Sturgeona na Don't Be A Dick (a także WTFPL, która ją zainspirowała).
To powiedziawszy, nie wiadomo, czy licencje na oprogramowanie są prawnie wykonalne , nawet jeśli prawnik je napisał (przynajmniej w Stanach Zjednoczonych i zależy to niemal wyłącznie od kaprysu sędziego lub organu odpowiedzialnego za prawa autorskie). Mówiąc bardziej ogólnie, jako autor oprogramowania, jesteś już objęty prawem autorskim swojego kraju (zakładając, że podjąłeś kroki, aby twoje dzieło podlegało prawu autorskiemu; w USA to po prostu wykonanie dzieła).
Sprowadza się to do tego, co chcesz osiągnąć dzięki swojej licencji, wykraczając poza (lub zamiast) prawa autorskie. W przypadku takich licencji, jak licencja DBaD Phila, jest to w dużej mierze kwestia zasady honoru i wzajemnego szacunku.
Jeśli chcesz, aby było to prawnie wykonalne (lub przynajmniej masz taką szansę), na przykład wypuszczenie produktu z zamkniętych źródeł, najprawdopodobniej zechcesz porozmawiać z prawnikiem. W ten sposób możesz upewnić się, że nie ma żadnych rażących luk i możesz napisać to w taki sposób, aby sędzia / partia rządząca częściej decydowała na twoją korzyść w przypadku, gdy ktoś ją naruszy.
EllisLab (firma stojąca za CodeIgniter) doskonale wyjaśnia licencjonowanie oprogramowania (i cały tydzień blogów na ten temat), zarówno z prawnego punktu widzenia, jak i z punktu widzenia twórcy FLOSS oraz zasady honoru, o której wspomniałem powyżej.
(Oświadczenie: Nie jestem prawnikiem, to nie jest prawnie wiążąca rada, bla, bla, bla. Jestem tylko programistą, który musiał przechylić palcami wokół legalnego pola minowego, jakim jest tworzenie oprogramowania i licencjonowanie. W razie wątpliwości , porozmawiaj z kimś, kto jest prawnikiem, najlepiej z prawami autorskimi, patentami i / lub licencją).
Odpowiedz użytkownikowi na następujące pytanie:
Czy Twój produkt jest oprogramowaniem typu open source, tzn. Czy mogę otrzymać kopię kodu źródłowego?
Co mogę zrobić z twoim produktem? Czy mogę korzystać z jednego komputera? Czy mogę go używać na więcej niż jednym komputerze? Czy mogę go redystrybuować lub odsprzedawać?
Jeśli używam twojego produktu jako części innej aplikacji, którą piszę, czy muszę być również open source?
Jak gwarantujesz swój produkt? Czy jesteś prawnie odpowiedzialny, jeśli mam problemy?
Jakie są warunki redystrybucji? Czy mogę redystrybuować twój produkt jako część produktu, który piszę? Jeśli podasz źródło, czy mogę zmodyfikować bibliotekę i rozpowszechnić modyfikacje, a jeśli tak, to jakie warunki muszę spełnić?
Sprawdź inne licencje i zobacz, w jaki sposób odpowiedzieli na te pytania.
Jest zaskakująco podobny do tego, co robią programiści:
Dajesz prawnikowi (lub działowi prawnemu dużej korporacji) listę wymagań dotyczących tego, na co zezwala licencja i na co nie zezwala (np. Licencja jest tylko dla jednego użytkownika, jest tymczasowa, nie możesz używać oprogramowania do niektórych celów itd.) i „tłumaczą” to na prawników, podobnie jak tłumaczymy wymagania na kod.
Na przykład „licencja jest tylko dla jednego użytkownika” jest zwykle tłumaczone na coś podobnego do tego: „FooCorp Inc. udziela ci jednej, niewyłącznej, nieprzenoszalnej licencji na instalację i używanie FooSoftware do…”.
Możesz myśleć, że nie dotyczy to licencji F / OSS, ale jest mniej więcej taki sam, z wyjątkiem wymagań, które są różne: najprostszą wersję tych wymagań można znaleźć na stronie http://opensource.org/docs/OSD .
Ale część prawnicza jest niezbędna i nie ma sensu próbować pisać licencji samodzielnie (chyba że jesteś prawnikiem z dużym doświadczeniem w zakresie prawa własności intelektualnej i prawa międzynarodowego). Ktoś znajdzie po prostu dogodną lukę, która pozwoli mu korzystać z twojego produktu w sposób, który mu się podoba (posunę się tak daleko, aby porównać to z exploitami).
Oczywiście nie twierdzę, że to wyjaśnienie jest kompletne lub nawet poprawne, ale jest to przybliżony szkic procesu, o ile zaangażowani są twórcy oprogramowania (dlatego porównuję go do pracy programisty).
Aby odpowiedzieć na twoje pytanie, każdy może napisać licencję - i to pokazuje!
Ci z nas, którzy używają oprogramowania do tworzenia rzeczy i faktycznie starają się uszanować każdą licencję, są gotowi wyrwać nasze oczy gorącym pokerem za każdym razem, gdy ktoś mówi o tworzeniu nowej. Na świecie istnieje już niezliczona liczba licencji na oprogramowanie. 99% z nich to prawie duplikaty istniejących, bardziej popularnych licencji, z wyjątkiem niezbyt przemyślanych.
Jedna strona, do której przyczyniam się, ma rodzimą, niekomercyjną, komercyjną licencję typu uznanie autorstwa, z tym wyjątkiem, że nie mówi nic o dziełach pochodnych. Czy są dozwolone? Czy mogą być dystrybuowane na tej samej licencji? Bije mnie!
Jeśli inne osoby wnoszą swój wkład w projekt i kiedykolwiek chcesz lub musisz zmienić licencję, musisz zmusić ich wszystkich do wyrażenia zgody na zmianę licencji lub w większym lub mniejszym stopniu utkniesz z nią na zawsze. Niektóre z nich mogą stać się nieosiągalne lub nawet umrzeć. Nie jestem prawnikiem, ale jeśli nie masz podpisanej umowy o współautorstwie od wszystkich, która pozwala ci podejmować decyzje dotyczące twojej licencji, myślę, że jesteś SOL.
Naprawdę trudno jest napisać dobrą licencję. Nawet najlepsze licencje na oprogramowanie są pełne dziur. Okresowo pojawiają się nowe wersje licencji Apache i GPL. Sprawdź, czy możesz znaleźć licencję, która zaspokoi 90% Twoich potrzeb, i skorzystaj z niej. GPL Linking Wyjątek lub „Classpath Exception” jest doskonałym tego przykładem. Jestem trochę zaniepokojony stwierdzeniem, które ludzie Hibernacji mieli na swojej stronie przez kilka lat, w zasadzie publicznie źle interpretując GPLv2, aby brzmiało to tak, jakby zawierało wyjątek Classpath. Czy to wyjątek od ścieżki klas? Nie będziemy wiedzieć, chyba że ktoś ich pozwie.
Wydaje mi się, że pozwanie jest najbardziej bolesnym sposobem na debugowanie twojej licencji. Jeśli korzystasz z licencji, którą ludzie już złożyli pozew, istnieje pewna pewność, że działa, a także wyczucie, jak to działa. Jeszcze lepiej, wybierz licencję, która została wniesiona do sądu w różnych krajach. Czy zastanawiałeś się, w jaki sposób twoja licencja byłaby interpretowana w innych częściach świata?
Jeśli oprzesz swoją licencję na istniejącej, osoby, którym zależy na spełnieniu warunków licencji, mogą nie musieć studiować jej przez lata, aby dowiedzieć się dokładnie, co to znaczy.
Jeśli to w ogóle możliwe, zachęcam was do poświęcenia energii i talentów na ulepszenie istniejącej licencji zamiast pisania nowej.
Przepraszam, że jestem taką zabójczą radością. Jeśli jestem zgorzkniały, to dlatego, że naprawdę czytam i próbuję szanować ludzkie licencje, zanim skorzystam z ich dzieł.
Zapisz warunki, opublikuj je ze swoim oprogramowaniem. Otóż to.
Jedno pytanie brzmi jednak, dlaczego chcesz? Nie jest wykluczone, że jakiekolwiek warunki, które chcesz dodać, są już obecne w innej powszechnie używanej licencji.
Dodaje to wstępny krok - sprawdź, czy faktycznie musisz utworzyć licencję.
Jest również prawdopodobne, że niektóre z warunków, które chcesz egzekwować, są w jakiś sposób wadliwe; dodając kolejny wstępny krok - przeczytaj o „unikalnych” warunkach, które chcesz zastosować. Ktoś inny prawdopodobnie próbował takich warunków i stwierdził, że są one niewykonalne lub w jakiś sposób przynoszą efekt przeciwny do zamierzonego.