Kwestie licencjonowania kodu

Zanim skopiujesz i wkleisz kod, upewnij się, że masz prawo skopiować i wkleić ten kod. Jeśli nie masz takiego prawa, dopuścisz się kradzieży czyjejś własności intelektualnej. A to byłoby lenistwo.

Większość kodu na Stack Overflow to "wycinki" (ang. snippets). Nie spełniają standardów oryginalności i przez to nie są chronione prawem autorskim. Możesz je kopiować i wklejać, nie przejmując się, że przegrasz sprawę w sądzie.

Część kodu na Stack Overflow to o wiele dłuższe fragmenty niż "wycinki". I dlatego kwalifikują się do ochrony prawem autorskim. Domyślnie wszystkie treści na Stack Overflow (włącznie z kodem) są na licencji CC-BY-SA 3.0.

Nie jest to w ogóle licencja rekomendowana w przypadku oprogramowania i SO stara się wybrać inną licencję, która zastąpi ją w przyszłości w odniesieniu do kodu. Ale na razie obowiązuje CC-BY-SA 3.0. Nawet jeśli SO w przyszłości zmieni zasady licencjonowania, to cały wcześniejszy kod nadal pozostanie objęty CC-BY-SA 3.0.

CC-BY-SA 3.0 jest licencją copyleft tak samo jak GPL 3.0. Ogólnie rzecz biorąc, wolno ci korzystać z całego kodu objętego CC-BY-SA 3.0 o ile:

  • Uznasz autorstwo strony, z której weźmiesz kod.

  • Licencjonujesz swój kod na tych samych warunkach co CC-BY-SA 3.0. Powtórzmy: CC-BY-SA 3.0 nie jest rekomendowana dla oprogramowania, więc licencjonowanie własnego kodu na CC-BY-SA 3.0 nie ma sensu.

Ale jeśli zrobisz prawne czary-mary, to możesz zmienić licencję swojego kodu ze Stack Overflow, z okropnej CC-BY-SA 3.0 na prawilną licencję Open Source odpowiednią dla oprogramowania. Działa to tak:

  1. Każdy utwór na licencji CC-BY-SA 3.0 może być automatycznie przeniesiony na wyższą wersję CC-BY-SA 4.0.

  2. Zgodnie ze stroną Creative Commons, licencja CC-BY-SA 4.0 jest kompatybilna z GPL 3.0 oraz z Free Art License. Zarówno GPL 3.0, jak i Free Art License to licencje typu copyleft.

Nie ma żadnego realnego sposobu rozróżnienia pomiędzy "wycinkiem kodu" nieobjętym ochroną praw autorskich a znacznie większym blokiem kodu, który ze względu na zawarte w nim treści jest objęty ochroną (i dlatego jest licencjonowany CC-BY-SA 3.0). Możesz zdać się na zdrowy rozsądek, aby zdecydować, czy jakiś kod kwalifikuje się jako "wycinek", czy nie, ale jeśli sąd przyjmie inną od twojej definicję "wycinka", to masz pecha.

Jeśli pracujesz z kodem objętym licencją permisywną lub zastrzeżoną, to masz cztery możliwości:

  • Zmień licencję kodu na GPL 3.0 lub Free Art License, potem kopiuj i wklejaj do woli.

  • Zatrudnij drogiego prawnika, żeby bronił twojego prawa do korzystania z wycinków kodu ze Stack Overflow...

  • Licz na to, że osoba, której kod kopiujesz i wklejasz, nie dba o to, że naruszasz licencję CC-BY-SA 3.0 aż tak bardzo, żeby cię pozwać.

    • Osobiście polecam to podejście, bo szanse, że ktoś natknie się na twój kod i będzie skarżył się, że nie przestrzegasz warunków CC-BY-SA 3.0, są niższe niż to, że tę książkę naprawdę wyda O'Reilly. Jeśli będziesz mieć pecha (a to się zdarza), możesz po prostu przeprosić i napisać zakwestionowany kod od nowa.

  • ...albo napisz swoją własną pseudoCleanroomową implementację kodu ze Stack Overflow.

Oto instrukcja krok po kroku:

  1. Zrób notatki na temat kodu ze Stack Overflow. Szczególnie na temat działania, implementacji itd.

  2. Zamknij przeglądarkę.

  3. Zaczekaj kilka minut, aż zapomnisz kod.

  4. Użyj informacji z notatek do ponownego zaimplementowania kodu ze Stack Overflow.

  5. Teraz jesteś właścicielem praw autorskich napisanego przez siebie kodu... nawet jeśli jest on dokładnie taki sam jak pierwotny kod na Stack Overflow. A skoro masz już prawa do tego kodu, to możesz włączyć go do swojego projektu z licencją permisywną lub zastrzeżoną.

Jest to metoda wolniejsza niż tradycyjne "Ctrl + C i Ctrl + V". Ma jednak tę zaletę, że pozwala na głębsze zrozumienie kodu ze Stack Overflow. A to może być przydatne, bo zapewne będziesz później opiekować się tym kodem.

Przed końcem rozdziału trzeba jeszcze wspomnieć o jednym. Niektórzy użytkownicy mogą swój kod na Stack Overflow objąć licencją permisywną. W takich przypadkach możesz zastosować się do tej licencji zamiast martwić się o copyleft w CC-BY-SA 3.0. Zajrzyj na profil użytkownika, który dodał "kod", i sprawdź, czy nie jest on dostępny na innej licencji.

Last updated