Czy mogę skorzystać z licencji MIT, aby przekazać pracodawcy część mojego poprzedniego pisemnego kodu, aby chronić siebie i nie utracić praw autorskich?

17

Moja sytuacja:

  • Napisałem platformę przed rozpoczęciem nowej pracy. Jestem właścicielem praw autorskich.

  • Ma w sobie sporo logiki, jak każde oprogramowanie. (duh!)

  • Nie chcę używać całego frameworka w mojej nowej pracy, ale muszę ponownie użyć niektórych jego części w podobnym frameworku, który buduję dla mojej nowej pracy.

  • Ponowne wdrożenie / przemyślenie całej logiki od podstaw jest niepraktyczne. Jest dużo logiki, a logika jest logiką, nie da się inaczej. Na przykład, ile różnych wersji HashMap można kodować? Założę się, że będą bardzo podobne, a trzecia wersja może twierdzić, że naruszyłeś prawa autorskie do pierwszej wersji. :(

  • Próba ponownego wynalezienia interfejsu API jest niepraktyczna. Czy możesz ponownie wynaleźć API HashMap? Może zmienić put(k,v)się add(k,v), ale nie wiele więcej niż to.

Mój pomysł na ochronę siebie i mojego poprzedniego kodu:

Powiem mojemu pracodawcy, że buduję nowy framework oparty na poprzednim, który napisałem na licencji MIT. Więc w przyszłości, jeśli użyję mojego poprzedniego frameworka w innym miejscu lub nawet jego innej pochodnej wersji , która zawiera pewne fragmenty kodu podobne do tego nowego frameworku, który buduję teraz dla pracodawcy, nie będą mogli powiedzieć, że jestem używając ich kodu, tego, który dla nich napisałem.

Moje pytania:

  • Nie rozpowszechniam mojego kodu nikomu. Nie muszę rozpowszechniać mojego kodu licencyjnego MIT nikomu, jeśli jestem właścicielem praw autorskich, prawda? Mam na myśli, czy ktoś może poprosić o wydanie mojego kodu, który, jak twierdzę, jest objęty licencją MIT? To nie byłby koniec świata i na pewno zgodziłbym się na to pod groźbą prawa.

  • Czy ta strategia ma jakiś sens? Moim ostatecznym celem jest możliwość korzystania z pochodnej wersji mojego poprzedniego zakodowanego frameworka bez utraty praw autorskich. Jednocześnie nie chcę nikomu rozpowszechniać tego kodu jako projektu typu open source. Mam inne projekty open source, które swobodnie rozpowszechniam, ale ten chciałbym zachować dla siebie, aby móc korzystać z mojej pracy (nie zleceń wykonawcy).

To tak, jakby twierdzić, że masz platformę na licencji MIT, bez faktycznej dystrybucji i / lub pokazywania nikomu . Jeśli jest dostępny, bezpłatny i łatwo dostępny, moi pracodawcy już mnie nie potrzebują. Mogą po prostu wziąć kod i przekazać go komuś innemu, aby go użył.

Uwagi:

  • Wymieniłem ten framework jako poprzedni wynalazek przed rozpoczęciem pracy.

  • Nigdzie nie opublikowałem tego kodu. Jest na moim prywatnym repozytorium SVN, które hostuję na moim prywatnym serwerze.

Mój pomysł w pigułce:

  • Moim planem jest zachowanie poprzedniego kodu dla siebie, wykorzystanie jego części w nowych ramach, które buduję dla pracodawcy, i poinformowanie pracodawcy, że jest to praca wywodząca się z licencjonowanej platformy MIT, którą wcześniej zakodowałem i której nikomu nie rozpowszechniam ”. Nie jestem zmuszony do rozpowszechniania oprogramowania zakodowanego na licencji MIT, prawda? Jeśli później dojdzie do roszczeń prawnych (mam nadzieję, że nie), mogę natychmiast wkleić licencję na wszystkie źródła i wyświetlić / zwolnić kod.
JohnPristine
źródło

Odpowiedzi:

21

Kiedyś byłem prawnikiem własności intelektualnej, więc mam doświadczenie w licencjonowaniu. Wydaje mi się, że same warunki są dość czytelne i zrozumiałe, ale z drugiej strony nęka mnie trzyletnia szkoła prawnicza i trochę czasu na prawnictwo, zanim znów odzyskam rozum i wrócę do hakowania. Zwłaszcza, że ​​obecnie nie jestem aktywnym prawnikiem, z pewnością nie jest to w żaden sposób porada prawna.

Zacznijmy od samego języka licencji MIT. Następnie przedstawię kilka kluczowych punktów do zrozumienia licencji open source, a następnie odpowiem na pytania i przedstawię uwagi na wysokim szczeblu.

Niniejszym udziela się bezpłatnie każdej osobie, która otrzymuje kopię tego oprogramowania i powiązanych plików dokumentacji („Oprogramowanie”), do czynienia z Oprogramowaniem bez ograniczeń, w tym między innymi prawa do używania, kopiowania, modyfikowania, łączenia , publikować, rozpowszechniać, udzielać podlicencji i / lub sprzedawać kopie Oprogramowania oraz zezwalać na to osobom, którym Oprogramowanie zostało dostarczone, z zastrzeżeniem następujących warunków: (pozostawienia w nim niniejszego powiadomienia. Koniec).

Kilka kluczowych rzeczy dla większości licencji open source (w tym BSD, MIT, GPL) dla właścicieli praw autorskich to:

  1. Licencja nie zmienia twojego prawa własności do samego prawa autorskiego. Jest to niewyłączna licencja, a nie cesja lub utrata własności. Korzystanie z licencji systemu operacyjnego nie oznacza „umieszczenia czegoś w domenie publicznej”, chociaż jest to z pewnością jedno podejście do open source.
  2. Nic nie „zmusza” Ciebie, właściciela praw autorskich, do upublicznienia kodu w jakikolwiek sposób tylko dlatego, że dołączasz do niego licencję.
  3. Ale jeśli korzystasz z licencji systemu operacyjnego, nie możesz uniemożliwić nikomu, kto „uzyska” twój kod licencji systemu operacyjnego, upublicznienie go w jakikolwiek sposób, co jest wyraźnie objęte ich prawami wynikającymi z wszystkich tych licencji.
  4. Licencje Copyleft (np. GPL) wymagają od podmiotów uzyskujących (ale nie właścicieli) upublicznienia swoich dzieł pochodnych i oprogramowania typu open source. Dopuszczalne (MIT, BSD) nie. (może to być trochę uproszczenie, ale jest to zasadnicza różnica)
  5. W przypadku większości licencji typu open source (np. MIT) nie ma klauzuli „odbioru zwrotnego”, więc gdy ktoś „uzyska” Twój kod, ma prawo do korzystania z niego bez końca, zgodnie z warunkami licencji, na podstawie których go otrzymał.
  6. Zawsze możesz rozpowszechniać przyszłe wersje kodu na innej licencji lub zachować je całkowicie na własność. To nie powstrzymuje kogoś od rozpoczęcia od poprzedniej wersji Open Source (zakładając, że „ją uzyskał”) i dodania własnych nowych części i dystrybucji.
  7. Możesz usunąć kanał „pozyskiwania” poprzednich wersji kodu, np. Zdejmij go z github. Jednak, jak wspomniano, nie uniemożliwia to innym osobom używania ani rozpowszechniania jakichkolwiek wcześniejszych wersji, które miałeś otwarte, w jakikolwiek sposób.

Na tej podstawie przejdę do twoich pytań.

Nie rozpowszechniam mojego kodu nikomu. Nie muszę rozpowszechniać mojego kodu licencyjnego MIT nikomu, jeśli jestem właścicielem praw autorskich, prawda? Mam na myśli, czy ktoś może poprosić o wydanie mojego kodu, który, jak twierdzę, jest objęty licencją MIT? To nie byłby koniec świata i na pewno zgodziłbym się na to pod groźbą prawa. ... Jednocześnie nie chcę nikomu rozpowszechniać tego kodu jako projektu typu open source.

Jako właściciel praw autorskich nie musisz rozpowszechniać nikomu kodu; nie będziesz musiał honorować takich próśb (nawet gdyby była to GPL). Zachowujesz wszystkie prawa. Jednak w opisywanej sytuacji dystrybuowałbyś do swojej nowej firmy i udzielałby na nią licencji na podstawie licencji systemu operacyjnego. Twój pracodawca (bardziej prawdopodobny były pracodawca) może wkleić Twój kod do Internetu i nie będziesz w stanie nic z tym zrobić poza narzekaniem.

Zakładam, że masz na myśli „kogokolwiek poza moim pracodawcą”. Jeśli nie chcesz dać swojego pracodawcy „jako oprogramowanie typu open source” i dać im wszystkie prawa zawarte w tej licencji, w tym redystrybucję i użytkowanie wieczyste w dowolny sposób, nie powinieneś używać licencja typu open source. Powinieneś po prostu licencjonować go bezpośrednio na nich na warunkach, które chcesz. Bullet wskazuje, czego chcesz, i prawnik wystawia rachunek za godzinę lub dwie, aby umieścić je w formie akapitu. Lub napisz to sam. Licencje są tylko umowami, które są po prostu umowami wyrażonymi słowami.

Moim ostatecznym celem jest możliwość korzystania z pochodnej wersji mojego poprzedniego zakodowanego frameworka bez utraty praw autorskich.

Nie możesz utracić praw autorskich, chyba że powierzysz je komuś, udzielisz na nie wyłącznej licencji (w tym samemu sobie wykluczasz) lub utracisz je. Licencja Open Source nie jest żadną z nich. Zawsze będziesz mógł korzystać z utworzonych wersji pochodnych, a nawet licencjonować pochodne w inny sposób lub zachować wszystkie prawa.

Ale podstawową, twoją uzasadnioną troską wydaje się być to, że nadal będziesz w stanie zachować prawa autorskie i używać swojego kodu w przyszłości, bez konieczności zgłaszania roszczeń przez pracodawcę do kodu lub że nie masz do tego prawa. Kluczem do tego jest stworzenie niepodważalnego dowodu na to, że A) zachowujesz prawa autorskie do swojej poprzedniej pracy i udostępniasz je im na podstawie warunków licencji X (MIT działa, jeśli nie masz nic przeciwko opisanemu powyżej aspektowi open source. ) B) zgadzają się na te warunki oraz C) co dokładnie była poprzednia praca.

W przypadku (A) i (B) możesz skłonić ich do podpisania lub wyrażenia zgody na piśmie na coś, co odwołuje się do licencji lub zawiera licencję i że rozumieją, że dostarczasz kod do tabeli zgodnie z tymi warunkami. Co do (C) nie jestem pewien, jaki byłby standardowy sposób, ale logiczne. Jeśli nie jest zbyt masywny, możesz po prostu wydrukować kod i dołączyć go do aneksu w kopiach umowy podpisanej przez ciebie i twojego pracodawcę. Zachowaj swoją kopię z podpisem. Jeśli jest zbyt duży, aby go praktycznie wydrukować, wygląda na to, że przydałby się tu skrót md5. Może mógłbyś to nazwać czymś w rodzaju „pliku zip o nazwie X w prywatnym repozytorium github /, (lub stronie ftp itp.), Który ma hash md5 XXXXXX ... i został wysłany e-mailem do firmy Y reprentative na Z data". Następnie możesz wysłać go e-mailem do swojego przełożonego lub jego prawnika lub kogokolwiek z osobistego konta e-mail, a nawet jeśli usuną ich kopię, nadal zachowujesz swoją i nie mogą argumentować, że przewidziałeś przyszły skrót kodu md5, który nie został jeszcze napisany . To teoretycznie zapobiegłoby im dochodzenie roszczeń na drodze.

Ben Roberts
źródło
To niesamowite, Ben. Dzięki za pomoc. Jestem już zatrudniony, więc zastanawiam się, czy wystarczy e-mail do mojego kierownika z informacją o sytuacji i warunkami licencji ode mnie. Następnie dołączam licencję (Copyright (c) MY NAME - Licencja udzielona FIRMIE bla, bla, bla) na każdy kod źródłowy, który wprowadzam. Co myślisz?
JohnPristine
E-maile z pewnością mogą być dowodem porozumienia lub porozumienia, np. Umowy. Jeśli zaproponujesz dostarczenie kodu do tabeli pod pewnymi warunkami, a osoba z autorytetem w firmie wyrazi na to zgodę, wygląda na to, że wystarczająco dobrze stworzy umowę. Myślę, że twój pomysł na (C) / warunki licencji w każdym pliku jest również dobry. Pytanie brzmi, czy zachowasz (C) ulepszenia plików, czy nie. Jeśli nie, możesz chcieć zapisać oryginalne wersje plików, do których zachowasz podeszwę (C), np. Z plikiem zip i skrótem md5 wysłanym do swojego menedżera.
Ben Roberts,
Świetna odpowiedź, dziękuję. Bardzo dobrze szczegółowy i sformułowany.
haylem
6

(Nie jestem prawnikiem.)

Widzę z tym kilka potencjalnych problemów:

  • Jeśli najgorsze stanie się najgorsze, będziesz musiał udowodnić, że napisałeś ten kod, zanim zacząłeś tam pracować, a kiedy używałeś go w swoim projekcie w pracy, twój pracodawca był świadomy, że jest on chroniony prawem autorskim i licencją MIT . Ponieważ głównym celem tego jest zachowanie praw autorskich, a nie ustalanie warunków redystrybucji, lepszym pomysłem wydaje się pisemna umowa z pracodawcą dotycząca korzystania z wcześniej napisanego kodu.

  • Mówisz, że chcesz chronić swoje prawa autorskie i możliwość zbudowania „nawet innej pochodnej wersji”. Teraz jest prawdopodobne, że podczas obecnej pracy będziesz mieć kilka świetnych pomysłów i je wdrożyć. Wydaje mi się, że byłoby to owłosione, gdy odejdziesz z pracy, a następnie „ponownie wdrożysz” te pomysły, aby zbudować inną wersję biblioteki - ponieważ nie możesz zrobić, co chcesz, z kodem, który napisałeś w pracy (i do pewnego stopnia idee za tym stojące).

us2012
źródło
1) Planuję to zrobić z plikiem licencji wraz z kodem firmy, stwierdzając, że jest on oparty na pracy pochodnej z licencją MIT. Aby udowodnić, że został napisany, zanim planuję liczyć z moją poprzednią deklaracją z formularza wynalazku. 2) Pomysły nie są chronione prawem autorskim, chyba że istnieje patent. Kod jest chroniony prawem autorskim. Wyzwanie polega na tym, jak ponownie wpisać / ponownie wdrożyć / ponownie wykorzystać pomysł bez łamania praw autorskich z oryginalnego kodu, który został zaimplementowany.
JohnPristine
2
Prawdą jest, że pomysły nie są chronione prawem autorskim, ale mogą być uważane za „tajemnice handlowe” lub „know-how” lub (jeśli można opatentować) „pomysły podlegające opatentowaniu” lub inny rodzaj „własności intelektualnej”, który prawdopodobnie zgadzasz się, że firma jest właścicielem. To rodzaj bałaganu.
Ben Roberts,
4

Nie jestem prawnikiem, ale takie byłoby moje rozwiązanie:

  1. Zwolnij kod na licencji GNU GPL v3 w publicznym repozytorium, gdzie wszyscy mogą to zobaczyć.

  2. Licencja GPL nie zezwala innym osobom na pobieranie Twojego kodu i umieszczanie go w zastrzeżonym oprogramowaniu komercyjnym oraz zamykanie kodu.

  3. Jeśli kod został w 100% utworzony przez Ciebie i nie zawiera pracy pochodzącej od innych osób ani pracy pochodnej, GPL pozwala również na licencjonowanie kodu na innej licencji, w którym to przypadku możesz używać go w swoich pracach do celów komercyjnych kod. Musisz jednak uczynić pracodawcę licencjobiorcą tej alternatywnej licencji zastrzeżonej.

  4. To rozwiązanie udowodni, że napisałeś swój kod PRZED podjęciem pracy.

  5. Możesz zareklamować, że Twój kod jest dostępny w ramach zastrzeżonej licencji na sprzedaż (za pieniądze), a następnie zainteresowane strony mogą się z Tobą skontaktować, aby go kupić.

ruben2020
źródło
Nie chciałbym robić 1 ani wypuszczać kodu w publicznym repozytorium. Rozumiem, że to najłatwiejszy sposób na udowodnienie, że kod został napisany wcześniej. Myślę, że profesjonaliści oprogramowania nie mają tego rodzaju licencji, która pozwala im używać ich kodu do pracy bez tworzenia otwartego oprogramowania i bez utraty go. Jeśli wszystko zrobisz ponownie, kody będą podobne, nie ma przed tym ucieczki. A projekt czystego pokoju jest niepraktyczny dla pracownika.
JohnPristine
Ale twoje rozwiązanie pozwala pracodawcy opublikować kod źródłowy w publicznym repozytorium. Uważam, że używanie licencji typu open source, gdy nie chcesz, aby była to wersja open source, jest nierozsądne.
markijbema
2

Czy istnieje konkretny powód, dla którego nie możesz zapytać swojego pracodawcy, czy możliwe jest zachowanie praw autorskich do ogólnego kodu, który piszesz dla swojego frameworka (co z kolei daje im teraz trochę darmowego kodu) i dajesz mu wszystko, co możesz zrobić? -you-want-with-it (zgadza się, to całkiem jak MIT).

Jeśli jednak licencjonujesz swój obecny kod MIT, nie ma powodu, dla którego Twój pracodawca powinien otworzyć źródło jego zmodyfikowanej wersji (zmodyfikowanej przez Ciebie), więc powiedziałbym, że to nie rozwiązuje zbyt wiele. Nawet LGPL nie rozwiązałoby tego, o ile kod nie jest „rozpowszechniany”.

Podsumowując, twoja umowa nie brzmi nieracjonalnie: masz jakiś kod frameworka i jesteś gotów przekazać go firmie, o ile tylko możesz go zatrzymać i wykorzystać go do innych projektów później, więc dlaczego nie pytaj?

markijbema
źródło
Tak! To zawsze najlepsze podejście, na które muszę się zgodzić. Bądź odważny i zapytaj. Jeśli uważają, że dziwnie o to pytasz, zacznij szukać innej pracy. Tak proste jak to. W życiu chodzi o uczciwość i ryzyko. :)
JohnPristine
2

IANAL, zapytaj prawdziwego prawnika itp.

Po pierwsze, myślę, że wierzysz, że posiadając prawa autorskie, możesz licencjonować produkt samemu na tych samych warunkach, na jakich udzielasz go wszystkim innym. To źle: możesz licencjonować je sobie w dowolnej odpowiedniej licencji i udzielać licencji innej osobie na innej licencji.

Co oznacza, że ​​możesz utworzyć specjalną licencję dla firmy, która zamierza Cię zatrudnić, i udostępnić im oprogramowanie jako oddzielną umowę. Oczywiście powinien to zrobić prawdziwy prawnik.

Poproś swoją firmę o podpisanie oddzielnej licencji, która wyraźnie stwierdza, że ​​masz prawa autorskie i dajesz im określone prawa, a nie prawa autorskie.

Jeśli chodzi o kwestię drugorzędną, istnieją inne sposoby na udowodnienie wcześniejszej daty, poza projektem open source. Na przykład, możesz przechowywać na publicznie dostępnym serwerze plik, który mówi, że rzeczywiście napisałeś to oprogramowanie, we wskazanym dniu, zawierający na przykład kilka różnych skrótów bieżącej wersji, a nawet zaszyfrowaną wersję projektu.

Oznacza to, że jeśli jesteś zagrożony prawnie, możesz udowodnić sędziemu wcześniejszą datę użycia, ale nie ujawniasz praktycznie nic o projekcie, poza tym, że jesteś autorem i datą jego ujawnienia. Powinieneś skonsultować się z prawnikiem w sprawie możliwej ważności takiego argumentu, ale uważam, że zostałby zaakceptowany w większości sądów.

K.Steff
źródło