Z GPL FAQ (ale rada dotyczy wszystkich licencji):
Dlaczego GPL wymaga dołączenia kopii GPL do każdej kopii programu?
Dołączenie kopii licencji do utworu jest niezbędne, aby każdy, kto otrzyma kopię programu, mógł wiedzieć, jakie są jego prawa.
Kuszące może być podanie adresu URL, który odnosi się do licencji, zamiast samej licencji. Ale nie możesz być pewien, że adres URL będzie nadal ważny za pięć lub dziesięć lat. Za dwadzieścia lat adresy URL, jakie znamy dzisiaj, mogą już nie istnieć.
Jedynym sposobem, aby upewnić się, że osoby posiadające kopie programu będą nadal mogły zobaczyć licencję, pomimo wszystkich zmian, które nastąpią w sieci, jest dołączenie kopii licencji do programu.
(moje podkreślenie)
W momencie, gdy witryna hostująca licencję przestaje działać lub zmienia ścieżki adresów URL, osoby posiadające kopie oprogramowania nie mogą już sprawdzać, jakie prawa mogą bezpiecznie wykonywać. Załóżmy, że nawet możesz w jakiś sposób zagwarantować, że ten dokładny adres URL będzie zawsze dostępny online: możliwość zweryfikowania przez użytkowników legalności korzystania z Twojego oprogramowania zależy od możliwości połączenia się z tym konkretnym adresem URL. Chociaż ten wymóg może nie być uciążliwy w danym mieście / kraju / planecie, może być uciążliwy w innych miejscach. Nie należy nakładać tego wymogu, zwłaszcza gdy obejście (w tym pełny tekst licencji) jest banalne.
Możesz odpowiedzieć na tę skargę, mówiąc: „Co z tego? Jeśli adres URL spadnie lub nie będzie dostępny, wystarczający będzie jednoznaczny deskryptor, taki jak„ GNU GPL v3 ”. Kopie pełnotekstowe GPL są obfite; użytkownicy mogą przeglądać sama licencja ”. Od razu przychodzi mi na myśl kilka problemów:
Nie uogólnia to na mniej jasne identyfikatory licencji (przychodzi na myśl zwrot „licencja BSD”).
Nie uogólnia to dobrze w przypadku licencji, które są mniej popularne lub zostały dostosowane (przychodzi na myśl „GPL z wyjątkami łączenia”: które wyjątki łączenia?). Jak często musi obowiązywać licencja, aby można było oczekiwać, że użytkownik rzetelnie ją znajdzie po nazwie?
Nadal wymaga to od użytkowników połączenia z Internetem, co może nie być prawdą, nawet jeśli mieli połączenie w momencie, gdy otrzymali oprogramowanie. (I może nie mieli dostępu do Internetu, gdy otrzymali oprogramowanie: „epoka CD” jeszcze się nie skończyła w wielu częściach świata. Jako dodatkowy przypadek rozważmy narodowe populacje, które mają powszechny dostęp do Internetu, ale cenzurują jego znaczną część .) Konsekwencją oprogramowania, które można swobodnie rozpowszechniać, jest to, że odbiorca może nie otrzymać kopii twojego oprogramowania bezpośrednio od ciebie lub przez kanał dystrybucji, którego pierwotnie oczekiwałeś.
Ostatni argument przeciwko linkom do licencji odnotowano poniżej w komentarzu MichaelT: może to pozwolić na dynamiczną, wsteczną zmianę licencji. Można to zrobić celowo, ale można to również zrobić przypadkowo, jeśli zmienisz licencję między wersjami oprogramowania, ale użyjesz tego samego linku do licencji dla obu wersji, w ten sposób blokując starą licencję. Taka zmiana sprawiłaby trudności osobom, które muszą udowodnić, że otrzymały starszą kopię na innej licencji niż obecna wersja.
Dlaczego więc muszę zachować licencję w katalogu głównym projektu?
Nie jestem prawnikiem, ale nigdy nie widziałem żadnego przekonujący argument, że nie potrzeba do utrzymania licencji w katalogu głównym projektu. Nawet GPL, która określa, że licencja musi towarzyszyć każdej kopii utworu, milczy na temat tego, w jaki sposób musi towarzyszyć utworowi. (Może to być spowodowane tym, że GPL można zastosować w kontekstach innych niż oprogramowanie, w których pojęcie „katalogu głównego” nie ma znaczenia.)
Przechowywanie licencji w katalogu głównym jest prawdopodobnie dobrym pomysłem, ponieważ maksymalizuje prawdopodobieństwo, że użytkownik ją zobaczy, a tym samym minimalizuje zarówno frustrację użytkownika, jak i prawdopodobieństwo skarg przeciwko tobie za próbę ukrycia licencji w jakimś niejasnym katalogu. Jeśli masz wiele licencji, sensowniejsze może być umieszczenie ich wszystkich w osobnym folderze i dołączenie oczywistego projektu README zawierającego ścieżki plików umożliwiające znalezienie licencji dla każdego komponentu.
Umieszczanie licencji w katalogu głównym jest przydatną praktyką, ponieważ może ujednoznacznić licencje modułów, które są licencjonowane inaczej niż praca jako całość. Załóżmy, że mój projekt FooProj używa autonomicznego modułu BarMod. FooProj może być na licencji GPL, podczas gdy samodzielny moduł może być na licencji MIT. Kiedy po raz pierwszy otwieram FooProj, widzę kopię GPL w katalogu głównym i rozumiem, że cała praca jest objęta licencją GPL. Kiedy schodzę do folderu BarMod, widzę tam nowy plik licencji i rozumiem, że zawartość tego folderu ma licencję MIT. Oczywiście jest to tylko pomocna pomoc; zawsze należy wyraźnie wskazać licencję na swoje moduły w pliku README, NOTICE lub podobnym pliku.
Podsumowując, korzystanie z katalogu głównego pliku jest kwestią wygody i przejrzystości. Nie widziałem żadnego prawnie wiążącego tekstu licencji typu open source, który by tego wymagał, ani nie znam żadnego powodu, dla którego byłby on wymagany prawem. Twoja licencja powinna być stosunkowo łatwa do odnalezienia przez odbiorcę; uwzględnienie licencji w katalogu głównym projektu jest wystarczające, ale nie konieczne, aby spełnić to kryterium.