Szukałem różnych licencji, których mogę użyć do mojego projektu typu open source, ale wszystkie projekty, które widziałem, z wszelkiego rodzaju licencjami, wydają się być gigantyczne, wstrętne (moim zdaniem) zauważ w każdym pliku źródłowym, że stwierdza, że plik znajduje się na liście w ramach określonej licencji. Nie sądzę, że znalazłem projekt z jednego źródła, który nie jest domeną publiczną i nie ma takiego powiadomienia.
To po prostu wydaje się stratą czasu i przestrzeni na pliki. Planuję umieszczać @license
i @author
tagi w moich projektach, ale nie rozumiem, dlaczego muszę wymieniać tak wielkie powiadomienie w każdym pliku, jeśli nie chcę, aby mój kod był domeną publiczną.
Czy jest jakiś powód, dla którego chciałbym zamieścić takie powiadomienie w moich projektach, czy po prostu zamieszczenie powiadomienia README
i @license
tagu byłoby wystarczająco dobre? Czy wpływa to na „jasno określoną” zasadę większości licencji, czy jest to po prostu przesada, aby ludzie się nie sprzeczali?
Odpowiedzi:
W moim rozumieniu GPLv3 zdecydowanie sugeruje (a może nawet wymaga, przynajmniej tak rozumiem tekst Jak zastosować niniejsze warunki do nowych programów , po sekcji 17), informację o prawach autorskich w każdym pliku źródłowym. To mówi
Projekty GNU, które są własnością FSF, takie jak GCC, mają taką informację w każdym pliku.
Znam również program (system CAIA J.Pitrat), któremu odmówiono na stronie internetowej społeczności wolnego oprogramowania, ponieważ nie miał takiego powiadomienia w każdym pliku.
Nie jestem prawnikiem , ale uważam, że takie zawiadomienie jest praktycznie obowiązkowe w każdym pliku źródłowym programu GPLv3 .
(jeśli używasz innej licencji, zwłaszcza innej niż FSF, przeczytaj uważnie, jak ją zastosować; YMMV; jednak AFAIK napisanie zawiadomienia w każdym pliku nie zaszkodzi.)
źródło
Widziałem wiele projektów, które wspominają tylko o licencji w README lub w pliku LICENCJI lub KOPIOWANIA.
Twoje oprogramowanie jest automatycznie chronione prawem autorskim, zgodnie z prawem międzynarodowym. (Chyba że pracujesz dla rządu USA lub innej organizacji, do której prawa autorskie nie mają zastosowania).
Jeśli ktoś korzysta z Twojego oprogramowania, musi przestrzegać umowy licencyjnej lub ograniczeń dozwolonego użytku dotyczących tego, co może zrobić.
Załóżmy, że ta osoba chce użyć jednego z plików w dystrybucji kodu, co oczywiście wymaga kopii, a zatem obowiązują przepisy dotyczące praw autorskich. Domyślnie NIE mają prawa do korzystania z twojego oprogramowania zgodnie z prawem autorskim. Tylko wtedy, gdy znają i przestrzegają ograniczeń licencyjnych, mogą z nich korzystać.
Więc jeśli używają pliku bez licencji na oprogramowanie, łamią prawo autorskie. Ponieważ wszystkie licencje mówią coś w rodzaju „Powyższa informacja o prawach autorskich i ta informacja o zezwoleniu będą zawarte we wszystkich kopiach lub znacznych częściach Oprogramowania”, są oni zobowiązani do umieszczenia tej licencji gdzieś.
Może to znajdować się w samym pliku lub gdy użyłem kodu jako biblioteki, umieściłem odpowiednie części w swoim własnym katalogu i dodałem „README” lub „LICENCJA” do tego podkatalogu.
Krótko mówiąc, nie musisz umieszczać licencji w każdym pliku. Myślę, że to przesada. Nie ma przy tym dodatkowej ochrony prawnej. To trochę pomaga dalszemu użytkownikowi, ale niewiele.
Myślę, że tradycja wielu metadanych opartych na komentarzach (licencja, data utworzenia każdej funkcji, dziennik zmian itp.) To bardzo stare tradycje, które istnieją, ponieważ są łatwe do wykonania i które są bardziej talizmanem niż użytecznym.
Na przykład domyślny szablon Eclipse dodaje przed każdą funkcją coś, co uważam za bezużyteczne metadane, które moim zdaniem lepiej przechwytuje kontrola wersji. Ale taka praktyka jest powszechna w wielu sklepach.
źródło
Problem polega na tym, że bardzo łatwo jest rozpakować pojedynczy plik kodu źródłowego z jego większego projektu, takiego jak ktoś po prostu sprawdzający, wysyłający e-mailem, pobierający jeden plik, bez reszty, która zawiera pełne prawa autorskie. Następnie plik ten może zostać przekazany w nieskończoność w czasie, stronom trzecim, które mogą nie mieć pojęcia o pochodzeniu plików.
Informacja o prawach autorskich u góry przypomina każdemu, kto przeszukuje ten samotny plik, że tak naprawdę jest chroniony prawami autorskimi, a nie domeną publiczną, a zatem niektóre licencje mogą, ale nie muszą być zaangażowane w jego dystrybucję lub wykorzystanie. W przeciwieństwie do umożliwienia znajdującemu własne losowe założenia.
źródło
W podziemnym bunkrze nie ma tajnego spotkania supermocarstwa, które mówi, co należy umieścić w każdym pliku źródłowym.
Wyjaśnia to użytkownikowi, że ten plik jest objęty dowolną licencją, a tak naprawdę większość oprogramowania GPL zawiera krótką preambułę z tekstem: license.txt. Pamiętaj, że projekty dzielą się, a pliki są ponownie wykorzystywane, więc umieszczenie wiadomości w jednym pliku może nie być dobrym pomysłem.
Jeśli w mało prawdopodobnym przypadku kiedykolwiek trafi do sądu, możesz mieć więcej roszczeń, jeśli wyraźnie oznaczysz każdy plik jako swoją pracę i pod jaką licencją był on objęty - wtedy nikt nie może twierdzić, że uważał, że ten prticular plik nie został objęty
źródło
Prawie zadałem niezwykle podobne pytanie. Mniej o irytacjach, a więcej o technicznych. TL; DR: Uważam, że odpowiedź jest kwestią priorytetów autora. Może zamiar byłby dokładniejszy niż priorytety ...
Uważam, że można odwoływać się do licencji w twoim źródle, w zależności od twojej definicji „w porządku”. Zgadzamy się, że termin „bez opieki” oznacza plik źródłowy, który jest częścią projektu, który został bezwzględnie oddzielony od jego kochającej bazy kodu. Wspomniany plik zawiera taką linię:
Lub o wiele fajniejsza linia:
"Ale poczekaj!" , wykrzykujesz, „właśnie powiedziałeś, że plik został oddzielony od swojego projektu! I goodlics.com przekierowuje do squattera domen! Przestań być trixy!” Masz rację, powiedziałem to, ale to może być w porządku i przestań na mnie krzyczeć. Oto moje uzasadnienie nie-prawnika:
nyancat-bcminer-algo.qbasic
plik, który napisałeś i opublikowałeś na LiveJournal, to, wierz lub nie, nie domena publiczna. Nie, chyba że powiesz, że to domena publiczna. Domyślnie jest twój i tylko ty. To jest ... Drogocenne . (Przynajmniej przez 25-50 lat, chyba że jesteś Disneyem.)To rozumowanie przyjmuje dwa epickie i prawdopodobnie błędne założenia:
Dziękujemy za jazdę po drogach oddechowych małpiego mózgu.
Oświadczenie: Wydaje mi się to logiczne, bo jestem w 90% pewien, że w 100% się mylę.
źródło
Istnieje różnica między licencją a preambułą .
W niektórych moich projektach korzystam z Powszechnej Licencji Publicznej GNU, wersja 3.0 . GNU GPL wymaga posiadania preambuły dla każdego pliku kodu źródłowego:
Źródło: http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble
Oto co robię:
1. Dodaj License.txt
Aby przestrzegać zasad, umieściłem LICENSE.txt w katalogu głównym repozytorium mojego projektu. Jest to również sugerowane przez GitHub (patrz „ Gdzie mieszka licencja” ).
2. Dodaj preambułę, używając automatycznego składania
Następnie umieszczam preambułę GPL na wierzchu każdego pliku kodu źródłowego, ALE, aby nie było to trudne, ukryłem go w IDE. Większość IDE ma funkcję automatycznego składania bloków kodu. NetBeans obsługuje niestandardowe składanie kodu, a WebStorm obsługuje również składanie komentarzy .
Oto jak to wygląda:
Myślę, że jest to bardzo dobry kompromis między wygodą a bezpieczeństwem prawnym.
Jeśli masz wiele projektów, w których musisz dodać licencję, http://www.addalicense.com/ może ci pomóc.
Uwaga: moja rada dotyczy GPLv3. Inne typy licencji mogą nie wymagać preambuły.
źródło
LICENSE
pliku, tzn. Nie możesz zmienić tekstu GPL, upuszczając go.Jest jeszcze jeden praktyczny sposób, o którym jeszcze nie wspomniano.
SPDX-License-Identifier
etykietka. https://spdx.org/using-spdxDzięki temu „legalny szablon” w każdym nagłówku pliku źródłowego ogranicza się do zaledwie dwóch wierszy:
Ponadto osoby automatyzujące analizy łańcucha dostaw oprogramowania będą wdzięczne za przestrzeganie wspólnego standardu opisu licencji do odczytu maszynowego.
źródło