Kod

Wszystko o Powszechnej Licencji Publicznej GNU: Jakie ograniczenia nakłada Powszechna Licencja Publiczna i jak uniknąć problemów

Wszystko o Powszechnej Licencji Publicznej GNU: Jakie ograniczenia nakłada Powszechna Licencja Publiczna i jak uniknąć problemów

Darmowy kurs: „Szybki start w Pythonie”

Dowiedz się więcej

Używając kodu z GitHub lub GitLab w swoich projektach, automatycznie akceptujesz warunki licencji i nawiązujesz stosunek prawny z autorami oprogramowania. Programiści często pomijają ten punkt, przesyłając kod do projektów komercyjnych, co może prowadzić do pozwów sądowych przeciwko ich firmom. Aby uniknąć takich sytuacji i zapewnić bezpieczeństwo prawne, ważne jest, aby dokładnie zrozumieć warunki darmowych licencji. Właściwe zrozumienie licencji pomoże Ci nie tylko uniknąć problemów prawnych, ale także korzystać z zasobów społeczności zgodnie z ustalonymi zasadami.

Czym są wolne licencje?

Aleksander Sawieljew, prawnik specjalizujący się w prawie cyfrowym i wykładowca Wyższej Szkoły Ekonomicznej, klasyfikuje wolne licencje na podstawie ich warunków i kompatybilności. Jego badania pomagają lepiej zrozumieć, jak różne licencje oddziałują na siebie i jakie prawa przyznają użytkownikom. Ta wiedza jest szczególnie ważna dla programistów, projektantów i wszystkich osób pracujących z oprogramowaniem open source i produktami cyfrowymi.

Istnieją dwie główne grupy, które wyróżniają się określonymi warunkami.

  • Licencje wzajemne – zobowiązują użytkownika do dystrybucji zmodyfikowanego programu na takich samych warunkach jak oryginał. Takie licencje nazywane są również wirusowymi, ponieważ „infekują” oprogramowanie pochodne swoimi warunkami. Takie licencje obejmują wszystkie rodzaje licencji: GPL (General Public License), LGPL (Lesser General Public License) i AGPL (Affero General Public License).
  • Licencje permisywne – zawierają minimalne wymagania użytkownika i zezwalają na tworzenie oprogramowania własnościowego w oparciu o program oryginalny. Z drugiej strony, licencje permisywne nie pozwalają autorowi kodu źródłowego kontrolować losu zmodyfikowanej wersji oprogramowania. Licencje permisywne obejmują BSD (Berkeley Software Distribution License), MIT i Apache.

Zgodność licencji odnosi się do możliwości łączenia programów rozpowszechnianych na różnych licencjach, a także do wykorzystywania kodu z jednego programu w innym. Licencje permisywne, które Richard Stallman nazywa „nierozważnie liberalnymi”, są generalnie kompatybilne ze sobą. Jednocześnie wersje licencji GPL nie charakteryzują się taką zgodnością, co może stwarzać pewne ograniczenia dla programistów. Zrozumienie tych aspektów licencjonowania jest ważne dla efektywnego użytkowania i integracji oprogramowania.

Niezgodność licencji copyleft wynika z ich fundamentalnych zasad. GPLv2 określa, że ​​programy pochodne muszą być rozpowszechniane na licencji GPLv2, podczas gdy GPLv3 wymaga, aby programy pochodne były rozpowszechniane na licencji GPLv3. Stwarza to problem w przypadku programów pochodnych opartych na dwóch licencjach, ponieważ nie mogą one jednocześnie spełniać wymagań obu wersji. Dlatego programiści powinni uwzględnić te ograniczenia przy wyborze licencji dla swoich projektów, aby uniknąć konfliktów prawnych i zapewnić legalną dystrybucję swoich prac.

Permisywne licencje BSD i Apache 2.0 są kompatybilne, ponieważ nie narzucają ścisłych wymogów licencyjnych. Podczas korzystania z tych licencji w produkcie końcowym wystarczy określić licencje oryginalnego oprogramowania. Upraszcza to proces integracji i korzystania z oprogramowania typu open source, umożliwiając programistom swobodne dostosowywanie i dystrybuowanie swoich projektów przy jednoczesnym zachowaniu praw autorów oryginalnego kodu.

Aby określić zgodność złożonych licencji, konieczne jest dokładne przestudiowanie ich warunków. W przypadku niezgodności licencji użytkownik chcący połączyć programy powinien omówić możliwość zmiany licencji z pierwotnym twórcą. Pozwoli to uniknąć problemów prawnych i zapewni zgodność z wymogami obu licencji.

Przyjrzyjmy się teraz konkretnym licencjom, w szczególności GPL i jej pochodnym. GPL (General Public License) jest jedną z najpopularniejszych i najszerzej stosowanych licencji open source. Zapewnia ona swobodę użytkowania, modyfikowania i dystrybucji oprogramowania, zachowując jednocześnie te same prawa dla wszystkich kolejnych użytkowników.

Istnieją różne wersje GPL, z których każda wprowadza własne zmiany i wyjaśnienia. Na przykład GPLv2 i GPLv3 różnią się pod względem warunków związanych z patentami, środkami antypirackimi i wymogami dotyczącymi zgodności z innymi licencjami. Zrozumienie tych różnic jest ważne dla programistów, którzy chcą wybrać odpowiednią licencję dla swoich projektów.

Ponadto istnieją licencje pochodne, takie jak LGPL (Lesser General Public License), która zezwala na korzystanie z bibliotek objętych licencją GPL w projektach zamkniętych, co czyni ją bardziej elastyczną w zastosowaniach komercyjnych. Wybór odpowiedniej licencji nie tylko pomaga zachować zgodność z przepisami prawnymi, ale także zapewnia otwartość i dostępność oprogramowania dla społeczności.

GNU General Public License – główna licencja typu copyleft

GNU GPL (General Public License) to pierwsza wolna licencja w historii oprogramowania. Została opracowana przez Richarda Stallmana, założyciela projektu GNU i Fundacji Wolnego Oprogramowania (FSF). Na początku swojej działalności Stallman stworzył oddzielne licencje dla projektów takich jak GNU Emacs, debugger GDB i kompilatory GCC. Później uogólnił ich zasady i opracował pierwszą wersję GPL, która stała się podstawą wielu innych wolnych licencji i wywarła znaczący wpływ na rozwój oprogramowania open source. GNU GPL zapewnia użytkownikom swobodę użytkowania, modyfikowania i dystrybucji oprogramowania, co sprzyja jego rozwojowi i dystrybucji. Wolne oprogramowanie i oprogramowanie Open Source to nie to samo. Wolne oprogramowanie jest rozpowszechniane wyłącznie na licencjach wzajemnych, podczas gdy oprogramowanie open source może korzystać zarówno z licencji wzajemnych, jak i permisywnych. Aktywiści z Free Software Foundation (FSF) zajmują się etycznymi aspektami wolnego oprogramowania, podczas gdy przedstawiciele Open Source Initiative koncentrują się na modelach biznesowych, które można rozwijać w oparciu o te technologie. Zrozumienie różnic między tymi koncepcjami jest ważne dla programistów i użytkowników poszukujących odpowiedniego rozwiązania programistycznego.

Oba trendy są często określane terminem FOSS (Free and Open Source Software – Wolne i Otwarte Oprogramowanie). W poprzednich artykułach omawialiśmy, jak firmy dostosowały model FOSS do celów zarobkowych.

Nowa licencja zapewnia użytkownikom oprogramowania cztery kluczowe wolności. Te wolności obejmują możliwość korzystania z programu w dowolnym celu, studiowania i modyfikowania kodu programu, udostępniania programu innym oraz rozpowszechniania zmodyfikowanych wersji. Warunki te sprzyjają rozwojowi społeczności poprzez zwiększenie dostępności i przejrzystości technologii.

Licencja GPL (General Public License) ma na celu rozwiązywanie niezgodności technicznych między programami a ich wersjami za pomocą otwartego kodu źródłowego. Użytkownicy, którzy akceptują warunki tej licencji, mają prawo modyfikować i dostosowywać oprogramowanie, eliminując wszelkie niezgodności, które mogą powstać, wszelkimi dostępnymi środkami. Należy zauważyć, że każdy ulepszony lub zmieniony kod pozostaje otwarty i dostępny dla innych użytkowników, co sprzyja ciągłemu rozwojowi i zgodności oprogramowania.

Osiągnięcie celów ruchu wolnego oprogramowania obejmuje swobodę współpracy przy tworzeniu oprogramowania. Współpraca ta pozostaje istotna nawet po zakończeniu pracy nad nim przez autora oryginalnego programu. Użytkownicy zainteresowani dalszym rozwojem i ulepszaniem oprogramowania nadal wnoszą swój wkład, zapewniając jego rozwój i znaczenie.

Zmodyfikowany program to program, który wykorzystuje kod źródłowy oryginalnego programu lub jego fragmenty. Takie zmiany mogą obejmować dodawanie nowych funkcji, naprawianie błędów lub poprawę wydajności. Modyfikacja oprogramowania pozwala na dostosowanie go do specyficznych potrzeb użytkowników lub organizacji. Jest to ważny proces w rozwoju oprogramowania, który promuje innowacje i lepsze doświadczenia użytkownika.

Licencja GPL podkreśla, że ​​wolne oprogramowanie jest udostępniane „tak jak jest”. Oznacza to, że autor nie udziela żadnych gwarancji jakości i nie ponosi odpowiedzialności za jakiekolwiek szkody wyrządzone użytkownikowi. Ponadto jedna z klauzul licencji znacząco ogranicza komercyjne wykorzystanie wolnego oprogramowania, co jest istotne przy tworzeniu i dystrybucji oprogramowania. Użytkownicy powinni być świadomi ryzyka i ograniczeń związanych z korzystaniem z takich programów, zwłaszcza w kontekście aplikacji biznesowych.

Musisz udzielić wszystkim stronom trzecim licencji wolnej od opłat licencyjnych na wszelkie dzieła, które rozpowszechniasz lub publikujesz, w całości lub w części, zawierające Program lub jego komponenty, zgodnie z warunkami niniejszej Licencji.

Sekcja 2b licencji GNU GPL określa warunki dystrybucji utworów zależnych. Wymaga ona, aby wszelkie modyfikacje oryginalnego oprogramowania, które są rozpowszechniane, były również udostępniane na licencji GNU GPL. Chroni to prawa autorów i użytkowników, zapewniając, że wszystkie modyfikacje i ulepszenia pozostaną otwarte i dostępne publicznie. W ten sposób licencja promuje rozwój wolnego oprogramowania, umożliwiając każdemu użytkownikowi zarówno korzystanie, jak i modyfikowanie oprogramowania bez ograniczeń. Należy zauważyć, że zgodność z licencją GNU GPL jest niezbędna dla utrzymania otwartości i dostępności oprogramowania, co jest kluczowym aspektem filozofii wolnego oprogramowania.

Pierwsza wersja licencji GNU GPL jest obecnie uważana za archiwalną i nie znajduje się na liście aktywnych licencji prowadzonych przez Fundację Wolnego Oprogramowania (FSF).

W 1991 roku Richard Stallman zdał sobie sprawę, że jego inicjatywa ochrony oprogramowania i bibliotek za pomocą radykalnej licencji nie zyskała wystarczającej liczby zwolenników. W rezultacie wydał zaktualizowaną wersję GPLv2, która zniosła wymóg zapewnienia wolnego dostępu do programów. Ta licencja była ważnym krokiem w rozwoju wolnego oprogramowania i pomogła przyciągnąć więcej programistów do projektów open source.

Richard Stallman. Zdjęcie: Wikimedia Commons

Licencja GPLv2 zyskała ogromną popularność wśród dystrybutorów bibliotek oprogramowania. Została ona uzupełniona przez Powszechną Licencję Publiczną Bibliotek GNU, w której termin „Biblioteka” został później zastąpiony terminem „Mniejsza”. Zmiana ta odzwierciedla dążenie twórców oprogramowania do zapewnienia większej elastyczności w użytkowaniu i dystrybucji bibliotek, przy jednoczesnym zachowaniu podstawowych zasad wolnego oprogramowania.

Druga wersja licencji wprowadziła zasadę „wolność albo śmierć”: jeśli użytkownik nie może korzystać z czterech podstawowych wolności, oprogramowanie nie powinno być rozpowszechniane. Zasada ta podkreśla wagę zapewnienia użytkownikom wolności użytkowania, studiowania, modyfikowania i redystrybucji oprogramowania. Stanowi ona podstawę ochrony praw użytkowników i promuje rozwój oprogramowania open source, co z kolei umożliwia tworzenie rozwiązań o wyższej jakości i bezpieczniejszych.

Często oprogramowanie zawiera elementy chronione patentami, podczas gdy inne komponenty mogą być rozpowszechniane na podstawie wolnych licencji. W takich sytuacjach twórca oprogramowania jest zobowiązany zapewnić użytkownikom ochronę przed potencjalnymi pozwami patentowymi lub powstrzymać się od dystrybucji programu na podstawie licencji open source. Jest to istotne dla ochrony praw własności intelektualnej i minimalizacji ryzyka prawnego dla użytkowników końcowych.

GPLv2, czyli GNU General Public License w wersji 2, przyznaje użytkownikom szereg praw i wolności dotyczących użytkowania, dystrybucji i modyfikacji oprogramowania. Podstawowe postanowienia licencji obejmują zezwolenie na kopiowanie i dystrybucję oprogramowania, a także prawo do zmiany jego kodu. Jeśli jednak zdecydujesz się zmodyfikować oprogramowanie i je dystrybuować, jesteś zobowiązany udostępnić kod źródłowy innym użytkownikom na tych samych warunkach. Promuje to tworzenie otwartego i wolnego oprogramowania, umożliwiając społeczności udział w jego rozwoju. GPLv2 gwarantuje również użytkownikom możliwość korzystania z oprogramowania w sposób, jaki uznają za stosowny, zapewniając tym samym wysoki stopień swobody w jego użytkowaniu.

  • Uruchamiania i korzystania z programu bez ograniczeń;
  • Reprodukowania i rozpowszechniania kopii programu (w tym odpłatnie), z zachowaniem informacji o prawach autorskich, wyłączeń gwarancji i odpowiedzialności oraz dołączenia kopii licencji i kodu źródłowego do każdej kopii programu;
  • Tworzenia i rozpowszechniania zmodyfikowanych kopii programu.

Pobierając program, użytkownik automatycznie zgadza się na warunki licencji określone przez pierwotnego właściciela praw autorskich. Oznacza to, że umowa jest zawierana bezpośrednio między użytkownikiem a właścicielem praw autorskich, a nie z osobami, od których program został faktycznie pozyskany. Dlatego ważne jest, aby uważnie przeczytać warunki licencji przed pobraniem, aby uniknąć nieporozumień i zapewnić zgodność z prawami autorskimi.

GPLv2 zyskała powszechną popularność dzięki decyzji Linusa Torvaldsa, który wybrał tę licencję dla jądra systemu operacyjnego Linux. Obecnie jądro Linuksa jest nadal objęte licencją GPLv2, co ułatwia jego rozwój i adopcję w społeczności programistów. Licencja ta gwarantuje swobodę użytkowania, modyfikowania i dystrybucji oprogramowania, co czyni ją atrakcyjną dla wielu projektów open source. Przykładami projektów licencjonowanych na licencji GPLv2 są liczne znane i cenione rozwiązania programistyczne. Licencja ta pozwala użytkownikom na swobodne użytkowanie, modyfikowanie i dystrybucję oprogramowania, promując rozwój oprogramowania open source. Do godnych uwagi przykładów należą system operacyjny Linux, popularne edytory tekstu, takie jak Vim i Emacs, oraz systemy zarządzania treścią, takie jak WordPress. Te projekty pokazują, jak licencja GPLv2 promuje innowacyjność i współpracę w społeczności programistów, zapewniając użytkownikom na całym świecie dostęp do wysokiej jakości narzędzi i technologii.

  • Adium to komunikator dla systemu macOS, który może współpracować z protokołami XMPP, IRC i innymi;
  • Git to rozproszony system kontroli wersji;
  • Miranda IM to komunikator dla systemu Windows;
  • Okular to aplikacja do przeglądania dokumentów w graficznym środowisku KDE;
  • Pulse of Currencies to aplikacja na Androida, która zapewnia aktualne informacje o kursach walut w bankach Białorusi i Rosji.

W 2005 roku Richard Stallman wraz z prawnikiem FSF, Ebenem Moglenem, rozpoczął prace nad trzecią wersją licencji GPL. Głównym celem tej pracy było rozwiązanie szeregu kluczowych problemów, które pojawiły się w tamtym czasie. Licencja GPLv3 została opracowana, aby rozwiać obawy dotyczące praw użytkowników, chronić wolność oprogramowania i dostosować się do nowych warunków, takich jak patenty i technologie cyfrowe. Ta wersja licencji stanowiła ważny krok w rozwoju oprogramowania open source, dając użytkownikom więcej praw i możliwości korzystania z programów i ich modyfikowania.

  • chronić użytkowników przed pozwami patentowymi;
  • przeciwdziałać tiwoizacji;
  • uzyskać zgodność z innymi popularnymi wolnymi licencjami, takimi jak Apache 2.0 i GNU Affero.

W 2006 roku rozpoczęły się konsultacje i zatwierdzanie zmian, z udziałem FSF, Software Freedom Law Center i Free Software Foundation Europe. Linus Torvalds wyraził przekonanie, że jądro Linuksa najprawdopodobniej pozostanie na licencji GPLv2. Kategorycznie sprzeciwiał się klauzuli zakazującej tiwoizacji, ponieważ znacznie ograniczała ona wykorzystanie jądra Linuksa w różnych projektach.

Wymaganie od użytkowników publicznego udostępniania kluczy prywatnych wydaje mi się absurdalne. Wątpię, aby jądro Linuksa zostało przekonwertowane na licencję GPLv3, ponieważ nie czuję się komfortowo, zmieniając cokolwiek w swoim kodzie.

Linus Torvalds jest założycielem i głównym twórcą jądra systemu operacyjnego Linux. W 1991 roku rozpoczął pracę nad projektem, który stał się podstawą wielu dystrybucji i miał znaczący wpływ na rozwój oprogramowania open source. Torvalds stworzył Linuksa z zamiarem stworzenia wolnego i wydajnego systemu operacyjnego dostępnego dla każdego. Pod jego kierownictwem jądro Linuksa stało się jedną z najpopularniejszych platform na świecie, używaną zarówno na serwerach, jak i komputerach stacjonarnych. Wkład Linusa Torvaldsa w technologię i społeczność programistów jest nieoceniony, a jego praca nadal inspiruje nowe pokolenie programistów i inżynierów.

Eben Moglen. Zdjęcie: Eben Moglen / Flickr

Kiedy pojawił się temat licencjonowania systemu operacyjnego Solaris, Linus Torvalds zasugerował, że Linux może przejść na GPLv3, aby uniknąć nieporozumień licencyjnych. Jednak Sun, twórca Solarisa, wybrał własną licencję – Common Development and Distribution License (CDDL). Licencja ta zezwala na mieszankę otwartego i zamkniętego kodu źródłowego, ale jest niezgodna z żadną wersją GPL, co nakłada pewne ograniczenia na programistów.

Licencja GPLv3 została wydana w 2007 roku i jest obecnie najnowszą wersją Powszechnej Licencji Publicznej GNU. Fundacja Wolnego Oprogramowania (FSF) zdecydowanie zaleca korzystanie z GPLv3 dla większości pakietów oprogramowania, ponieważ zapewnia ona silniejszą ochronę użytkownikom i programistom. Ta wersja licencji ma na celu wyeliminowanie niedociągnięć poprzednich wersji i zawiera nowe warunki, które promują wolność oprogramowania i zwalczają ograniczenia narzucane przez patenty i prawa cyfrowe. Korzystanie z licencji GPLv3 pomaga stworzyć bardziej otwarte i dostępne środowisko do tworzenia oprogramowania.

Licencja pozwala stronom trzecim modyfikować program tak, aby odpowiadał potrzebom konkretnego użytkownika. Nie są one jednak zobowiązane do ujawniania kodu źródłowego swoich prywatnych modyfikacji. Jednym ze sposobów czerpania korzyści z wolnego oprogramowania jest działanie tych „stron trzecich” w imieniu użytkownika i otrzymywanie wynagrodzenia za swoją pracę. Użytkownicy mają również prawo do wykluczania dodatkowych warunków, które mogą zostać dodane przez autorów programów, oraz do wprowadzania własnych warunków do tekstu licencji. Zapewnia to elastyczność i otwiera nowe możliwości zarówno dla użytkowników, jak i programistów, przyczyniając się do rozwoju społeczności wolnego oprogramowania.

Licencja GPLv3 wprowadza nowe warunki dotyczące korzystania z praw. Zmiany te mają na celu lepszą ochronę praw użytkowników i twórców oprogramowania. Głównym celem jest zapewnienie swobody użytkowania, modyfikowania i dystrybucji oprogramowania. Licencja zawiera również postanowienia chroniące przed praktykami, które mogą ograniczać te prawa, takimi jak zarządzanie prawami cyfrowymi (DRM). Ponadto GPLv3 wprowadza jaśniejsze definicje i wymagania dotyczące zgodności z innymi licencjami, ułatwiając rozwój oprogramowania typu open source. Te innowacje pomagają stworzyć bardziej przejrzysty i sprawiedliwy ekosystem dla wszystkich uczestników.

  • Autor musi przyznać użytkownikowi prawa patentowe, jeśli jakakolwiek część programu jest nimi chroniona.
  • Dystrybutor nie może uciekać się do technicznych środków ochrony oprogramowania, które ograniczają prawa użytkownika. Na przykład, jeśli program używa kryptograficznych kluczy dostępu, użytkownik musi je uzyskać na żądanie (zakaz tivoizacji).
  • Producenci urządzeń komputerowych muszą umożliwić użytkownikom modyfikującym program uruchomienie i działanie zmodyfikowanej wersji na ich urządzeniach.

Pojawiły się nowe terminy, takie jak „propagacja” (użytkowanie) i „przekazywanie”. Korzystanie z programu bez ważnej licencji stanowi naruszenie praw autorskich. Przenoszenie oprogramowania jest dozwolone tylko wtedy, gdy spełnione są wszystkie warunki licencji. Należy pamiętać, że przestrzeganie umów licencyjnych nie tylko chroni prawa posiadaczy praw autorskich, ale także zapewnia legalność korzystania z oprogramowania.

Ważny aspekt dotyczy interakcji użytkownika z oprogramowaniem za pośrednictwem Internetu. Zgodnie z licencją GPLv3, ta metoda korzystania z programu nie jest uznawana za „przeniesienie”, dopóki nie zostanie sporządzona jego kopia. Oznacza to, że ograniczenia licencyjne nie mają zastosowania w przypadku dystrybucji oprogramowania w modelu SaaS, ponieważ w tym kontekście nie tworzy się żadnej kopii programu. Przykładami produktów korzystających z licencji GPLv3 jest wiele popularnych programów i aplikacji. Licencja ta zapewnia swobodny dostęp do kodu źródłowego, umożliwiając użytkownikom modyfikowanie i dystrybucję oprogramowania. Znane przykłady obejmują systemy operacyjne takie jak GNU/Linux, a także szereg aplikacji, w tym edytory tekstu, edytory grafiki i systemy zarządzania treścią (CMS). Co więcej, wiele bibliotek i frameworków programistycznych również korzysta z licencji GPLv3, promując tworzenie otwartego i dostępnego oprogramowania dla każdego. Korzystanie z licencji GPLv3 gwarantuje, że wszelkie zmiany wprowadzone w oprogramowaniu będą dostępne dla społeczności, co pomaga w jego ulepszaniu i rozwijaniu.

  • GNU Compiler Collection — zestaw kompilatorów dla różnych języków programowania;
  • GNU GRUB — program rozruchowy systemu operacyjnego;
  • Booktype — aplikacja do tworzenia, edycji i publikowania książek w formatach PDF, ePub, ODT i HTML;
  • Blender — profesjonalne oprogramowanie do tworzenia grafiki 3D;
  • Newscoop — system CMS napisany w języku PHP i wykorzystujący bazę danych MySQL jako magazyn danych.

GNU Lesser General Public License — licencja dla bibliotek

GNU LGPL, czyli Lesser General Public License, to uproszczona wersja licencji GPL. Pozwala ona programistom na integrację licencjonowanego kodu z oprogramowaniem zastrzeżonym w określonych przypadkach. Należy zauważyć, że programy stworzone z wykorzystaniem kodu objętego licencją LGPL nie zawsze muszą być dystrybuowane na tej samej licencji. Ten wyjątek jest szczególnie istotny w przypadku bibliotek, co czyni LGPL atrakcyjną opcją dla programistów, którzy chcą korzystać z oprogramowania open source w swoich produktach komercyjnych.

Skrót LGPL pierwotnie oznaczał Library General Public License (GPL), ponieważ licencja ta została stworzona specjalnie dla bibliotek. GPL ograniczała wykorzystanie kodu bibliotek w produktach komercyjnych, zmuszając programistów do ciągłego tworzenia podobnych rozwiązań. Obecnie istnieją dwie wersje LGPL: GNU LGPLv2.1, wydana w 1999 roku, oraz GNU LGPLv3, wprowadzona w 2007 roku. Wersje te zapewniają elastyczność w korzystaniu z bibliotek, umożliwiając ich integrację z różnymi projektami, w tym komercyjnymi, pod pewnymi warunkami.

LGPL (Lesser General Public License) definiuje dwa główne tryby korzystania z oprogramowania. Pierwszy tryb dotyczy bibliotek, które mogą być używane w aplikacjach zamkniętych lub komercyjnych bez konieczności ujawniania kodu źródłowego tych aplikacji. Drugi tryb oznacza, że ​​jeśli modyfikujesz samą bibliotekę, musisz dostarczyć kod źródłowy dla swoich modyfikacji. Gwarantuje to, że oprogramowanie może być używane i modyfikowane z zachowaniem praw jego twórców. LGPL zapewnia programistom elastyczność, pozwalając im integrować biblioteki ze swoimi projektami, jednocześnie przestrzegając warunków licencji.

  • Tryb biblioteczny – kod źródłowy i jego zmodyfikowane wersje są rozpowszechniane na warunkach, które są w dużej mierze takie same jak GPL.
  • Utwór korzystający z biblioteki to program, który działa z biblioteką, ale nie zawiera jej kodu. Nie jest on uważany za utwór pochodny biblioteki i dlatego nie jest objęty licencją GPL.

Licencjobiorca ma prawo łączyć lub linkować utwór korzystający z Biblioteki z samą Biblioteką. Spowoduje to utworzenie nowego utworu, który będzie zawierał elementy Biblioteki. To połączenie pomaga rozszerzyć funkcjonalność i użyteczność Biblioteki w różnych projektach.

Licencjobiorca ma prawo rozpowszechniać utwór na dowolnych warunkach, podczas gdy użytkownik zachowuje prawo do modyfikowania utworu w celu dostosowania go do własnych potrzeb. Użytkownik ma również możliwość rekonstrukcji diagramu strukturalnego algorytmu operacyjnego, wykorzystując kod źródłowy dzieła, w celu debugowania wprowadzonych zmian.

Artykuł 6 licencji LGPLv2 opisuje warunki dotyczące dystrybucji zmodyfikowanych wersji bibliotek. Zgodnie z tym artykułem, możesz modyfikować bibliotekę, ale musisz zapewnić dostęp do kodu źródłowego tych zmian. Oznacza to, że wszelkie zmiany wprowadzone w bibliotece muszą być dostępne dla innych użytkowników, aby mogli korzystać z Twojej wersji, modyfikować ją i rozpowszechniać. Ponadto, jeśli rozpowszechniasz zmodyfikowaną bibliotekę, musisz powiadomić użytkowników o jej modyfikacji i zapewnić im dostęp do kodu źródłowego. Przestrzeganie tych warunków pomaga zachować otwartość i kompatybilność oprogramowania, co jest jednym z głównych celów licencji LGPLv2.

Korzystając z biblioteki objętej licencją LGPL, ważne jest, aby poinformować o tym użytkowników. Musisz podać nazwę biblioteki, nazwiska jej autorów, a jeśli program wyświetla informację o prawach autorskich, również informację o prawach autorskich samej biblioteki. Do każdej kopii programu należy dołączyć kopię licencji LGPL, aby użytkownicy mogli zapoznać się z warunkami użytkowania. Zgodność z licencją nie tylko chroni prawa autorów, ale także zapewnia przejrzystość dla użytkowników.

Autor programu pochodnego, który zaakceptował warunki licencji LGPL, jest zobowiązany zezwolić zainteresowanym użytkownikom na wprowadzanie modyfikacji w bibliotece. Autor biblioteki ma prawo zmienić licencję z LGPL na GPL, ale powrót do LGPL nie będzie możliwy. Oznacza to, że podczas tworzenia utworu pochodnego należy wziąć pod uwagę warunki licencji i respektować prawo użytkowników do jego modyfikacji.

W 2007 roku opublikowano trzecią wersję licencji LGPL, która wprowadziła nowe definicje, takie jak „aplikacja” i „utwór łączony”. Pojęcia te odgrywają ważną rolę w zrozumieniu warunków użytkowania i dystrybucji oprogramowania licencjonowanego na podstawie LGPL. Aplikacja odnosi się do produktu końcowego, który korzysta z bibliotek licencjonowanych na podstawie tej licencji, podczas gdy utwór łączony obejmuje kombinację oryginalnego kodu i bibliotek. Wprowadzenie tych warunków uczyniło licencję bardziej przejrzystą i umożliwiło programistom lepsze poruszanie się w zasadach korzystania z wolnego oprogramowania.

Aplikacja to oprogramowanie, które współdziała z biblioteką w celu wykonywania różnych zadań. Takie programy mogą być używane do przetwarzania danych, zarządzania zasobami lub zapewniania funkcjonalności potrzebnych użytkownikom. Interakcja między aplikacją a biblioteką może poprawić wydajność i rozszerzyć możliwości oprogramowania, czyniąc je bardziej wydajnym i łatwiejszym w użyciu.

Utwór łączony to utwór tworzony poprzez integrację biblioteki z aplikacją. Pozwala to programistom na rozszerzenie funkcjonalności oprogramowania, poprawę jego możliwości i zwiększenie wydajności. Korzystanie z utworów kompozytowych staje się coraz bardziej popularne w rozwoju oprogramowania, ponieważ umożliwia efektywne zarządzanie kodem i upraszcza proces aktualizacji i obsługi aplikacji.

Licencjobiorca ma prawo do dystrybucji zmodyfikowanych wersji biblioteki. Pozwala to użytkownikom na dostosowanie oprogramowania do swoich potrzeb i dzielenie się ulepszeniami ze społecznością. Dystrybucja zmodyfikowanych wersji biblioteki promuje innowacyjność i rozwój projektów opartych na tej technologii. Przestrzeganie warunków licencji jest ważne, aby zapewnić poszanowanie praw autorów i transparentność korzystania z oprogramowania.

  • zgodnie z warunkami LGPL, w takim przypadku zmodyfikowana wersja biblioteki musi być niefunkcjonalna, a cel zmian musi zostać osiągnięty;
  • zgodnie z warunkami GPL – w tym przypadku zmodyfikowana wersja nie jest objęta dodatkowymi prawami przyznanymi przez LGPL.

Licencjobiorca ma prawo samodzielnie określać warunki dystrybucji utworów zależnych i kompozytowych. Jednocześnie ważne jest, aby wziąć pod uwagę wymagania określone w artykułach 3 i 4 licencji, których licencjobiorca musi przestrzegać. Wymagania te obejmują obowiązkowe powiadomienie użytkowników o tym, że utwór korzysta z biblioteki, a także wymóg utrzymywania kodu źródłowego biblioteki w otwartym dostępie. Przestrzeganie tych warunków zapewnia transparentność i poszanowanie praw wszystkich uczestników procesu.

Przykładami produktów korzystających z licencji LGPL są różne biblioteki i oprogramowanie, które umożliwiają swobodne używanie i modyfikację kodu. LGPL (Lesser General Public License) pozwala programistom na integrowanie bibliotek z aplikacjami, zachowując jednocześnie prawo do zachowania anonimowości kodu źródłowego własnych produktów.

Popularne przykłady korzystania z licencji LGPL obejmują biblioteki takie jak GTK+ do tworzenia interfejsów graficznych, OpenCV do przetwarzania obrazu i wideo oraz Freetype do pracy z tekstem i czcionkami. Narzędzia te są szeroko stosowane w projektach komercyjnych i open source, co podkreśla elastyczność i dostępność licencji LGPL dla programistów.

Korzystanie z licencji LGPL sprzyja rozwojowi społeczności, ponieważ pozwala programistom na korzystanie z istniejących rozwiązań i ich ulepszanie bez naruszania warunków licencji. To sprawia, że ​​LGPL jest ważnym narzędziem w ekosystemie wolnego oprogramowania.

  • GNOME Files to oficjalny menedżer plików dla środowiska GNOME;
  • GNU Aspell to program do sprawdzania pisowni dla systemu GNU;
  • TinyButStrong to lekki silnik szablonów interpretowanych dla PHP;
  • ZCAD to program do kreślenia 2D i modelowania 3D.

GNU Affero General Public License to licencja na usługi w chmurze.

Affero General Public License, często nazywana silniejszą wersją GPL, różni się od LGPL. AGPL została zaprojektowana z myślą o aplikacjach internetowych, aby zapewnić użytkownikom zmodyfikowanego oprogramowania udostępnianego w sieci dostęp do jego kodu źródłowego. Ta licencja zapewnia większą otwartość i swobodę dla programistów i użytkowników. Co więcej, AGPL jest w pełni kompatybilna z GPL, co pozwala na bezkonfliktowe korzystanie z obu licencji w tym samym projekcie.

Pierwsza wersja GPL, GPLv2, została wydana w 2002 roku, a druga, GPLv3, w 2007 roku. Licencja Affero wymaga, aby użytkownicy, którzy mają dostęp do zmodyfikowanego programu uruchomionego na serwerze, udostępniali dostęp do kodu źródłowego tego programu. Wymóg ten jest istotny dla zapewnienia otwartości i przejrzystości oprogramowania, zwłaszcza w kontekście aplikacji internetowych i rozwiązań chmurowych.

Głównym celem licencji AGPL jest zapobieganie ukrytemu korzystaniu z wolnego oprogramowania w Internecie. Jak wspomniano wcześniej, licencja GPL nie działa efektywnie w modelu SaaS, ponieważ użytkownicy nie mają dostępu do kodu źródłowego usługi chmurowej. Agresywna wersja GPL, AGPL, rozwiązuje ten problem. Jeśli twórca oprogramowania przestrzega warunków licencji i udostępnia użytkownikom kod źródłowy, ma on prawo do wprowadzania modyfikacji i wykorzystywania ich w swojej wersji oprogramowania. W ten sposób AGPL promuje bardziej otwarte i transparentne korzystanie z wolnego oprogramowania w chmurze.

AGPLv3 to licencja szeroko stosowana w różnych produktach programowych. Umożliwia użytkownikom modyfikowanie i dystrybucję oprogramowania, jednocześnie wymagając, aby wszystkie prace pochodne pozostały otwarte. Przykładami produktów korzystających z AGPLv3 są popularne aplikacje internetowe, takie jak MongoDB, GNU Social i Mattermost. Rozwiązania te pokazują, jak AGPLv3 wspiera rozwój społeczności i zachęca do innowacji w oprogramowaniu. Korzystanie z tej licencji pomaga programistom i użytkownikom zachować kontrolę nad kodem i zapewnia dostęp do potężnych narzędzi do tworzenia i udostępniania rozwiązań programistycznych.

  • GNUnet to pakiet oprogramowania do bezpiecznych połączeń P2P;
  • Grafana to aplikacja do analityki i interaktywnej wizualizacji danych;
  • Onlyoffice to pakiet biurowy, który zawiera internetowy edytor dokumentów, system zarządzania dokumentami, CRM, firmową sieć społecznościową i serwer poczty;
  • Nextcloud to zestaw programów klient-serwer do tworzenia i korzystania z magazynów danych.

Licencja GNU Wolnej Dokumentacji

Licencja GNU FDL, czyli Wolna Dokumentacja, to ścisła licencja typu copyleft, która pozwala użytkownikom na powielanie, dystrybucję i modyfikowanie dokumentacji technicznej i innej. Licencja ta ma na celu ochronę wolności użytkowników poprzez umożliwienie im udostępniania i dostosowywania informacji do własnych potrzeb, przy jednoczesnym zachowaniu podobnych praw dla innych. GNU FDL promuje tworzenie i rozpowszechnianie otwartej wiedzy poprzez wspieranie zasad otwartego dostępu i wolności informacji. Licencja ta jest szczególnie istotna w przypadku materiałów edukacyjnych i naukowych, gdzie ważne jest zapewnienie dostępu do wysokiej jakości informacji szerokiemu gronu odbiorców.

Licencja została opracowana dla materiałów edukacyjnych i pomocniczych towarzyszących programom komputerowym, ale jej zastosowanie znacznie się rozszerzyło. Przykładowo, teksty Wikipedii były pierwotnie publikowane wyłącznie na licencji GNU FDL. Licencja ta zezwala na komercyjne wykorzystanie utworów, co było jednym z głównych celów jej powstania – zachęcenie wydawców do finansowania rozwoju dokumentacji oprogramowania.

Pierwsza wersja GNU Free Documentation License (GNU FDL) została wydana w 1999 roku, a najnowsza wersja, GNU FDL v1.3, została wydana w 2008 roku. Ważnym celem przy opracowywaniu wersji 1.3 było umożliwienie dystrybucji artykułów Wikipedii na licencji GNU Free Documentation License (FDL). Licencja ta ma na celu ochronę wolności użytkowania i rozpowszechniania dokumentacji, co czyni ją ważną dla projektów skoncentrowanych na otwartych treściach. Licencja GNU FDL pozostaje aktualna dla wielu użytkowników i autorów dążących do swobodnej wymiany wiedzy. Podstawowym wymogiem GNU Free Documentation License (FDL) jest zapewnienie swobody użytkowania, dystrybucji i modyfikacji dokumentacji. Licencja zezwala użytkownikom na swobodne kopiowanie i dystrybucję materiałów, pod warunkiem zachowania atrybucji i przyznania tych samych praw innym osobom. Dokumentacja musi być dostępna w przyjaznym dla użytkownika formacie, który ułatwia modyfikację i adaptację. Ponadto wszelkie zmiany muszą być wyraźnie oznaczone, aby użytkownicy mogli odróżnić wersję oryginalną od poprawionej. Niniejsze warunki promują otwartość i dostępność, czyniąc GNU FDL ważnym narzędziem dla programistów i autorów pragnących dzielić się wiedzą i wspierać współpracę.

  • Wszyscy autorzy dzieła muszą być wymienieni (w tym autorzy modyfikacji);
  • Wszystkie modyfikacje dzieła muszą zostać udokumentowane;
  • Utwory pochodne muszą być objęte licencją FDL;
  • Jeśli dzieło zawiera sekcje niezmienne (zdefiniowane przez autora), wraz z wszelkimi zastrzeżeniami dotyczącymi gwarancji i odpowiedzialności dodanymi przez autora, warunki te mają zastosowanie do wszystkich utworów pochodnych;
  • Nie są dozwolone żadne techniczne środki ochrony praw autorskich.

GNU FDL spotkała się z wieloma krytykami. Jednym z głównych celów krytyki jest przepis zezwalający na włączanie sekcji niezmiennych do dokumentów objętych licencją. Przeciwnicy uważają, że jest to sprzeczne z podstawowymi zasadami GPL, co podważa zgodność FDL z tą licencją. Ponadto często pojawia się niezadowolenie z zakazu stosowania technicznych środków ochrony praw autorskich w przypadku kopii tworzonych na użytek osobisty.

Przykładami projektów korzystających z licencji GNU FDL są różnorodne dzieła z dziedziny wolnego oprogramowania i otwartych zasobów edukacyjnych. Licencja ta pozwala użytkownikom na swobodne kopiowanie, modyfikowanie i rozpowszechnianie treści, promując rozwój społeczności i dzielenie się wiedzą. Do znanych projektów korzystających z licencji GNU FDL należy Wikipedia, która zapewnia dostęp do obszernych informacji, a także różnorodnych materiałów edukacyjnych i podręczników. Korzystanie z licencji GNU FDL zapewnia ochronę prawną i wsparcie autorom, którzy chcą dzielić się swoją wiedzą z szerokim gronem odbiorców, zachowując jednocześnie prawo do jej dalszego wykorzystywania i modyfikowania.

  • Wikipedia to największa wielojęzyczna encyklopedia internetowa;
  • PlanetMath to anglojęzyczna encyklopedia matematyczna;
  • Citizendium to „bardziej autorytatywna” wersja Wikipedii, z artykułami recenzowanymi przez ekspertów;
  • Free On-Line Dictionary of Computing to encyklopedyczny słownik informatyki opracowany w 1985 roku.

Aby ułatwić Ci poruszanie się po różnorodności licencji w rodzinie GNU, stworzyliśmy tabelę podsumowującą, która pomoże Ci zrozumieć główne różnice i cechy każdej licencji. Tabela ta będzie przydatnym narzędziem dla programistów i użytkowników poszukujących odpowiedniej licencji dla swoich projektów. Będziesz mógł z łatwością zapoznać się z warunkami użytkowania, modyfikacji i dystrybucji oprogramowania, co pozwoli Ci podejmować świadome decyzje.

Zanim przejdziesz do głównego tematu, zapoznaj się z innymi interesującymi materiałami, które mogą Ci się przydać. Przeczytaj także:

  • Gdzie zwyciężyło Open Source, co jest z nim nie tak i kto go potrzebuje
  • Wyższe wykształcenie w dziedzinie IT: dlaczego nie warto rezygnować z uniwersytetu
  • Jak działa .NET i dlaczego go potrzebujesz