To tłumaczenie może nie uwzględniać zmian od 2023-02-24 dokonanych w oryginale angielskim.

Możecie podejrzeć zmiany. Aby zapoznać się z informacjami dotyczącymi utrzymywania tłumaczeń tego artykułu, proszę odwiedzić stronę tłumaczeń.

Często zadawane pytania na temat licencji GNU

Spis treści


Podstawowe pytania o Projekcie GNU, Fundacj wolnego oprogramowania (FSF), i ich licencji

Ogólna orientacja w licencjach GPL

Stosowanie GPL do własnych programów

Dystrybucja programów wydanych na warunkach GPL

Wykorzystywanie programów wydanych na licencjach GNU przy pisaniu innych programów

Łączenie pracy z kodem wydanym na GPL

Pytania o naruszenia licencji GNU


Co oznacza skrót „GPL”? (#WhatDoesGPLStandFor)

„GPL” oznacza „General Public License”, „Powszechna Licencja Publiczna”. Najbardziej rozpowszechnioną licencją tego rodzaju jest Powszechna Licencja Publiczna GNU, lub krótko: GNU GPL. Można to potem skracać do „GPL”, gdy wiadomo, że chodzi o GNU GPL.

Czy wolne oprogramowanie oznacza użycie GPL? (#DoesFreeSoftwareMeanUsingTheGPL)

Niekoniecznie — istnieje wiele innych licencji wolnego oprogramowania. Mamy niepełną ich listę. Każda z licencji, która zapewnia użytkownikowi pewne szczególne wolności jest licencją wolnego oprogramowania.

Dlaczego powinienem stosować GNU GPL, a nie inne licencje wolnego oprogramowania? (#WhyUseGPL)

Korzystanie z GNU GPL wymaga, by wszystkie wydane ulepszone wersje były wolnym oprogramowaniem. To znaczy, że unikasz ryzyka konieczności konkurowania z prawnie zastrzeżoną zmienioną wersją swojej własnej pracy. Jednakże, w pewnych specjalnych okolicznościach, może być lepsze użycie licencji zezwalającej na więcej.

Czy wszystkie programy GNU stosują GNU GPL jako swoją licencję? (#DoesAllGNUSoftwareUseTheGNUGPLAsItsLicense)

Większość pakietów programowych GNU stosuje GNU GPL, ale jest kilka programów GNU (i części programów), które korzystają z mniej rygorystycznych licencji, jak Lesser GPL. Kiedy się to dzieje, jest kwestią strategii.

Czy użycie licencji GPL dla programu robi z tego programu oprogramowanie GNU? (#DoesUsingTheGPLForAProgramMakeItGNUSoftware)

Każdy może opublikować program na warunkach GNU GPL, ale to nie robi z tego programu pakietu GNU.

Uczynienie programu pakietem programowym GNU oznacza jawny wkład do Projektu GNU. Dzieje się tak wtedy, gdy konstruktorzy programu i Projekt GNU się na to zgodzą. Jeśli jesteś zainteresowany wniesieniem programu do Projektu GNU, napisz prosimy do <maintainers@gnu.org>.

Co mam zrobić jeśli odkryję przypuszczalne naruszenie GPL? (#ReportingViolation)

Powinieneś to zgłosić. Po pierwsze, możliwie najlepiej sprawdź ten fakt. Następnie powiadom wydawcę lub posiadacza praw autorskich danego programu, wydanego na GPL. Jeśli jest to Free Software Foundation, pisz na adres <license-violation@gnu.org>. W przeciwnym razie, możliwe, że opiekun programu jest posiadaczem praw autorskich albo też może wskazać Ci, jak się z tą osobą skontaktować, więc zgłoś to jemu.

Dlaczego GPL pozwala użytkownikom na publikację własnych zmodyfikowanych wersji? (#WhyDoesTheGPLPermitUsersToPublishTheirModifiedVersions)

Decydującym aspektem wolnych programów jest swoboda współpracy użytkowników. Pozwolenie użytkownikom, którzy chcą pomagać innym, na dzielenie się własnymi poprawkami błędów i udoskonaleniami jest absolutnie kluczowe.

Niektórzy proponowali alternatywy dla GPL, które wymagały aby zmienione wersje przechodziły przez pierwotnego autora. W praktyce, póki dbałby on o potrzeby konserwacji programu, mogłoby to działać dobrze. Jednak jeśli autor przestaje, mniej czy bardziej, zajmować się konserwacją, by robić coś innego, lub gdy nie zwraca uwagi na wszystkie potrzeby użytkowników, ten plan zawodzi. Pomijając problemy praktyczne, taka metoda nie pozwala użytkownikom na wzajemną pomoc.

Czasem proponuje się kontrolę nad zmodyfikowanymi wersjami jako środek zapobiegający kłopotliwemu pomieszaniu między rozmaitymi wersjami utworzonymi przez użytkowników. Wedle naszego doświadczenia, to pomieszanie nie stanowi większego kłopotu. Wiele wersji Emacsa wykonano poza Projektem GNU, ale użytkownicy potrafią je odróżnić. GPL wymaga umieszczania w wersji nazwiska producenta, by odróżnić ją od innych wersji i chronić reputację pozostałych opiekunów.

Czy GPL wymaga, aby kod źródłowy zmodyfikowanych wersji został opublikowany dla publiczności? (#GPLRequireSourcePostedPublic)

GPL nie wymaga rozpowszechniania zmodyfikowanego przez Ciebie programu. Wolno Ci wprowadzać zmiany i korzystać z nich prywatnie, w ogóle bez ich wydawania. Odnosi się to także do organizacji (łącznie z firmami); organizacja może utworzyć zmienioną wersję i używać jej wewnętrznie nigdy nie wydając tej wersji na zewnątrz.

Ale jeśli w jakiś sposób publicznie wypuszczasz zmienioną wersję, GPL wymaga byś udostępnił użytkownikom programu zmodyfikowany kod źródłowy, na warunkach GPL.

Tak więc, GPL zezwala na pewne sposoby rozpowszechniania zmienionego programu, a na inne nie, ale decyzja o samym wypuszczeniu należy do Ciebie.

Czy mogę mieć program na warunkach GPL i niepowiązany program na tym samym komputerze? (#GPLAndNonfreeOnSameMachine)

Tak.

Jeśli znam kogoś, kto ma kopię programu wydanego na GPL, to czy mogę domagać się od niego, żeby dał mi kopię? (#CanIDemandACopy)

Nie. Dzięki GPL otrzymał pozwolenie na wykonywanie i rozprowadzanie kopii programu jeśli i gdy ta osoba zechce to robić. Ale ma on też prawo nie rozprowadzać programu, jeśli tak woli.

Co oznacza „pisemna oferta ważna dla każdej strony trzeciej” [written offer valid for any third party] w przypadku GPLv2? Czy to znaczy, że każdy na świecie może dostać źródła dowolnego programu na GPL, obojętnie co? (#WhatDoesWrittenOfferValid)

Jeśli zdecydujesz się rozprowadzać kod źródłowy przez pisemną ofertę, to każdy, kto Cię poprosi o kod źródłowy ma prawo go otrzymać.

Jeśli komercyjnie rozpowszechniasz pliki binarne bez towarzyszącego kodu źródłowego, GPL stanowi, że musisz złożyć pisemną ofertę dostarczenia kodu źródłowego później. Kiedy użytkownicy niekomercyjnie redystrybuują otrzymane od Ciebie binaria, muszą przekazać wraz z nimi kopię tej pisemnej oferty. To znaczy, że ludzie, którzy nie uzyskali binariów wprost od Ciebie, mimo to mogą otrzymać kopie kodów źródłowych, zgodnie z ofertą.

Wymagamy, żeby oferta była ważna dla każdej strony trzeciej, po to, by osoby, które otrzymały binaria pośrednio mogły w ten sposób zażądać kodu źródłowego od Ciebie.

W GPLv2 powiedziano, że zmodyfikowane wersje, jeśli są publikowane, muszą być „licencjonowane… dla wszelkich stron trzecich” [licensed … to all third parties]. Kim są te strony trzecie? (#TheGPLSaysModifiedVersions)

Sekcja 2 mówi, że zmienione wersje, które rozpowszechniasz muszą być licencjonowane dla wszelkich stron trzecich na warunkach GPL. „Wszelkie strony trzecie” oznacza dosłownie każdego — ale nie wymaga to, byś musiał mieć z nimi fizycznie do czynienia. Oznacza tylko, że mają od Ciebie licencję, na GPL, dla Twojej wersji.

Czy muszę zadeklarować prawa autorskie do moich modyfikacji w programie objętym GPL? (#RequiredToClaimCopyright)

Nie jesteś zobowiązany do zgłaszania praw autorskich do własnych zmian. Jednak w większości krajów [także w Polsce] domyślnie dzieje się to automatycznie, więc jeśli nie chcesz, by dzieło było objęte prawami autorskimi, powinieneś jawnie uczynić swoje zmiany dobrem publicznym (wydać je jako public domain).

Niezależnie od tego, czy będziesz sobie rościł prawa autorskie do własnych zmian czy nie, musisz wydać zmodyfikowaną wersję, jako całość, na GPL (jeżeli w ogóle wydasz zmodyfikowaną przez siebie wersję).

Co GPL mówi o tłumaczeniu jakiegoś kodu do innego języka programowania? (#TranslateCode)

Zgodnie z prawem autorskim tłumaczenie pracy jest uważane za rodzaj modyfikacji. W związku z tym, co GPL mówi o zmodyfikowanych wersjach stosuje się również do tłumaczeń. Tłumaczenie jest objęte prawami autorskimi oryginalnego programu.

Jeśli program posiada wolną licencję, to licencja daje pozwolenie na jej tłumaczenie. Jak możesz używać i licencjonować ten program jest określony przez tę licencję. Jeśli oryginalny program jest licencjonowany w niektórych wersjach GNU GPL, program ten musi być objęty tym samymi wersjami GNU GPL.

Jeśli program łączy w sobie kod należący do domeny publicznej (public domain) z kodem objętym GPL, to czy mogę wziąć tę część, która jest dobrem publicznym i korzystać z niej tak jak z kodu z domeny publicznej? (#CombinePublicDomainWithGPL)

Możesz to zrobić, jeśli potrafisz odróżnić, która z części jest dobrem publicznym i oddzielić ją od reszty. Jeśli kod został przez jego konstruktora umieszczony w domenie publicznej, to pozostaje dobrem publicznym bez względu na to, gdzie się znajduje.

Czy GPL pozwala na sprzedaż kopii programu dla pieniędzy? (#DoesTheGPLAllowMoney)

Tak, GPL pozwala na to wszystkim. Prawo do sprzedaży kopii jest częścią definicji wolnego oprogramowania. Z wyjątkiem jednej, specyficznej sytuacji nie ma żadnych ograniczeń co opłat, jakie zechcesz pobierać. (Tym wyjątkiem jest wymagana w GPL pisemna oferta dostarczenia źródeł, jaka musi być dołączona do oprogramowania, jeśli jest ono rozprowadzane w postaci samych binariów).

Czy GPL pozwala mi pobierać opłatę za pobieranie programu z mojego miejsca dystrybucji? (#DoesTheGPLAllowDownloadFee)

Tak. Za przekazanie kopii programu (rozpowszechnianie) możesz pobierać dowolną opłatę. Pod GPLv2 jeżeli binaria rozpowszechniasz udostępniając pliki do ściągnięcia, musisz zapewnić „równoważny dostęp” do pobierania źródeł — zatem opłata za ściągnięcie źródeł nie może być większa niż opłata za ściągnięcie binariów. Jeśli binaria są rozprowadzane na warunkach GPLv3 to musisz udostępnić równoważny dostęp do kodu źródłowego w ten sam sposób i w tym samym miejscu bez pobierania dodatkowych opłat.

Czy GPL pozwala mi żądać od każdego, kto otrzyma program wniesienia opłaty i/lub powiadomienia mnie? (#DoesTheGPLAllowRequireFee)

Nie. W rzeczywistości, taki wymóg spowodowałby, że program nie byłby wolny. Jeśli ludzie muszą płacić za otrzymanie kopii programu lub jeśli muszą specjalnie kogoś powiadamiać, to program nie jest wolny. Zobacz definicję wolnego oprogramowania.

GPL jest licencją wolnego oprogramowania i dlatego zezwala ludziom na wykorzystywanie, a nawet redystrybucję oprogramowania bez obowiązku płacenia za to komukolwiek.

Natomiast możesz prosić o opłatę, aby otrzymać kopię od Ciebie. Nie możesz wymagać, aby ludzie płacili gdy otrzymują kopię od kogoś innego.

Jeśli rozprowadzam oprogramowanie GPL za opłatą, czy muszę również udostępnić go publicznie bezpłatnie? (#DoesTheGPLRequireAvailabilityToPublic)

Nie. Jednakże, jeśli ktoś uiścił opłatę i otrzymał od Ciebie kopię, GPL daje mu swobodę przekazania jej ogółowi, za opłatą lub bez niej. Na przykład, ktoś mógłby Ci zapłacić, po czym umieścić swoją kopię na serwerze internetowym, udostępniając ogółowi.

Czy GPL pozwala mi na dystrybucję kopii w ramach umowy o nieujawnieniu? (#DoesTheGPLAllowNDA)

Nie. GPL stanowi, że każdy, kto otrzyma od Ciebie kopię Twojej wersji ma prawo rozprowadzać dalej kopie tej wersji (zmodyfikowane lub nie). Nie pozwala na rozpowszechnianie prac na bardziej restrykcyjnych warunkach.

Jeśli ktoś poprosi o podpisanie umowy o nieujawnianiu w zamian za program objęty GPL, którego właścicielem praw autorskich jest FSF, poinformuj nas natychmiast license-violation@fsf.org.

Jeśli wykroczenie dotyczy się kodu objętego GPL, do którego ktoś inny posiada prawa autorskie, prosimy jego poinformować tak, jak przy każdym innym wykroczeniu przeciwko GPL.

Czy GPL pozwala mi na rozpowszechnianie zmodyfikowanej wersji lub wersji beta w ramach umowy o nieujawnianiu? (#DoesTheGPLAllowModNDA)

Nie. GPL stanowi, że każdy, kto otrzyma od Ciebie kopię Twojej wersji ma prawa wymienione w GPL. Więc każdy, kto otrzyma kopię Twojej wersji programu ma prawo rozprowadzać dalej kopie tej wersji (zmodyfikowane lub nie). GPL nie pozwala na rozpowszechnianie prac na bardziej restrykcyjnych warunkach.

Czy GPL umożliwia opracowanie zmodyfikowanej wersji w ramach umowy o nieujawnieniu? (#DevelopChangesUnderNDA)

Tak. Na przykład, możesz przyjąć umowę na wykonanie zmian wvprogramie i zgodzić się na niewypuszczanie swoich zmian póki klient się na to nie zgodzi. Jest to dozwolone, gdyż w tym przypadku żaden objęty GPL kod nie jest rozprowadzany na zasadach zakazujących ujawniania.

Możesz także przekazać klientowi swoje modyfikacje na zasadach GPL, ale przystać na warunek nieudostępniania ich komu innemu, chyba że za jego zgodą. Również w tym przypadku żaden kod objęty GPL nie jest rozprowadzany z zakazem ujawniania czy innymi dodatkowymi ograniczeniami.

GPL dałaby Twojemu klientowi prawo do redystrybucji zmienionej przez Ciebie wersji. W rozpatrywanej sytuacji zapewne zdecyduje się z niego nie skorzystać, ale ma prawo.

Chcę uznania za moją pracę. Chcę, żeby ludzie wiedzieli, co napisałem. Czy praca będzie mi nadal przypisywana jeśli stosuję GPL? (#IWantCredit)

Z pewnością możesz uzyskać należne uznanie dla swojej pracy. Częścią procesu wypuszczania programu na warunkach GPL jest napisanie informacji o prawach autorskich w twoim własnym imieniu (zakładając, że jesteś posiadaczem praw autorskich). GPL żąda, by wszystkie kopie były opatrzone odpowiednią informacją o prawach autorskich.

Czy GPL pozwala mi dodać warunki, które wymagałyby cytowania lub publikacji w dokumentach badawczych, które wykorzystują oprogramowanie GPL lub jego wyjście? (#RequireCitation)

Nie jest to dozwolone pod względem warunków GPL. Choć uznajemy, że właściwy cytat jest ważną częścią publikacji akademickich, cytat nie może być dodany jako dodatkowy wymóg GPL. Wymaganie cytowań w pracach badawczych, które wykorzystywały oprogramowanie GPL wykracza poza to, co byłoby akceptowalnym dodatkowym wymogiem w sekcji 7(b) GPLv3, a tym samym byłoby uważane za dodatkowe ograniczenie w sekcji 7 z GPL. Prawo prawa autorskie nie pozwala na umieszczenie takiego wymogu na dane wyjściowe, niezależnie od tego, czy jest on licencjonowany pod warunkiem GPL lub innych licencji.

Dlaczego GPL wymaga dołączania kopii GPL do każdego egzemplarza programu? (#WhyMustIInclude)

Dołączanie kopii licencji do dzieła jest istotne, gdyż dzięki temu każdy otrzymujący kopię programu może się dowiedzieć, jakie ma prawa.

Może być kuszące zamieszczanie URL-a, który wskazuje na licencję, zamiast samej licencji. Ale nie możesz być pewien, że za pięć czy dziesięć lat ten odnośnik będzie nadal prawidłowy. Za dwadzieścia lat mogą już nie istnieć URL-e w postaci jaką znamy dzisiaj.

Jedyną metodą upewnienia się, że, pomimo wszelkich zmian, jakie zajdą w sieci, ludzie, którzy mają kopie programu będą mogli przeczytać licencję, jest dołączenie jej kopii do programu.

Czy to wystarczy, by umieścić kopię GNU GPL w moim repozytorium? (#LicenseCopyOnly)

Okazuje się, że kopia GNU GPL w pliku w repozytorium nie świadczy o tym, że kod w tym samym repozytorium może być użyty na warunkach GNU GPL. Bez takiego oświadczenia nie jest całkowicie jasne, że licencja mają zastosowanie do jakiegokolwiek konkretnego pliku źródłowego. Wyraźne oświadczenie wyeliminuje wszystkie wątpliwości.

Plik zawierający tylko licencję, bez oświadczenia, że niektóre inne pliki są objęte tą licencją, przypomina plik zawierający tylko podrutynę, która nigdy nie została wezwana z innego pliku. Podobieństwo nie jest doskonałe: prawnicy i sądy mogą rozumować, że musiałeś umieścić tam kopię GNU GPL, ponieważ chcesz na tych warunkach licencjonować kod. Mogą też dojść do przeciwnego wniosku. Dlaczego pozostawiać wątpliwości?

Oświadczenie to powinno być w każdym pliku źródłowym. Wyraźne oświadczenie w pliku README jest prawnie wystarczające tak długo, jak to towarzyszy kodu, ale jest łatwo aby się rozdzieliły. Dlaczego ryzykować niepewności o licencji kodu?

To nie ma nic wspólnego z specyfiką GNU GPL. To jest prawdziwe dla każdej wolnej licencji.

Dlaczego powinniśmy umieszczać informację o licencji w każdym pliku źródłowym? (#NoticeInSourceFile)

Należy umieścić informację na początku każdego pliku źródłowego, stwierdzając, że posiada ona licencję, aby uniknąć ryzyka odłączenia kodu od licencji. Jeśli README w repozytorium podaje, że plik źródłowy jest na warunkach GNU GPL, co się stanie, jeśli ktoś kopiuje plik źródłowy do innego programu? Inny kontekst nie pokaże jaka jest licencja tego pliku. Może wyglądać jakoby miał inną licencję, lub żadną licencję (co by oznaczało niewolny kod).

Dodawanie notki o prawach autorskich i licencji na rozpoczęcie każdego pliku źródłowego jest łatwe i sprawia, że takie zamieszanie jest mało prawdopodobne.

To nie ma nic wspólnego z specyfiką GNU GPL. To jest prawdziwe dla każdej wolnej licencji.

Co, jeśli praca nie jest długa? (#WhatIfWorkIsShort)

Jeśli cały pakiet zawiera bardzo mało kodu ndash; my używamy progu 300 linijek – możecie równie dobrze korzystać z luźnej licencji, nie licencji copyleft, jak GNU GPL. (Chyba że kod jest wyjątkowo ważny.) My sugerujemy Apache License 2.0 w takich przypadkach.

Czy dla zaoszczędzenia miejsca mogę pominąć preambułę GPL lub wskazówki, jak stosować tę licencję do własnych programów? (#GPLOmitPreamble)

Preambuła i wskazówki są integralnymi częściami GNU GPL i nie wolno ich pomijać. Konkretnie GPL [jako tekst] jest objęta prawem autorskim, a jej licencja zezwala wyłącznie na dosłowne kopiowanie całości GPL. (Można wykorzystać warunki prawne z GPL do skonstruowania innej licencji, ale nie będzie to GNU GPL.)

Preambuła i wskazówki dodają około 1000 słów, mniej niż 1/5 całkowitej wielkości GPL. Nie powodują znaczącej procentowo zmiany w rozmiarze pakietu oprogramowania, chyba że sam pakiet jest całkiem mały. W takim wypadku, zamiast stosować GPL możesz równie dobrze skorzystać z jakiejś prostej, zezwalającej na wszystko licencji.

Co oznacza, że dwie licencje są „kompatybilne”? (#WhatIsCompatible)

Chcąc połączyć dwa programy (lub ich znaczne części) w większą pracę, musisz mieć zezwolenie na użycie w ten sposób obu programów. Jeśli licencje obu programów na to pozwalają, to są one zgodne. Jeśli nie da się jednocześnie spełnić wymagań obu licencji, to są niezgodne.

W przypadku niektórych licencji, sposób, w jaki programy są łączone może wpływać na to, czy są one zgodne. Może być, na przykład, dopuszczalna wspólna konsolidacja dwu modułów, ale nie być dozwolone połączenie ich kodu w jednym module.

Jeśli chcecie jedynie zainstalować dwa niezależne programy na tym samym komputerze, nie jest konieczne aby ich licencje były kompatybilne gdyż to nie łączy ich w większy program.

Co oznacza, że licencja jest „kompatybilna z GPL?” (#WhatDoesCompatMean)

To znaczy, że ta licencja i GNU GPL są zgodne: możesz łączyć kod wypuszczony na tej licencji z kodem wydanym na GNU GPL w jeden większy program.

Wszystkie wersje GNU GPL zezwalają na takie połączenie prywatnie. Także pozwalają rozpowszechnianie takich połączeń pod warunkiem, że wynik zostanie wydany na warunkach GNU GPL. Inna licencja jest zgodna z GPL jeśli także zezwala na to.

GPLv3 jest kompatybilne z większą liczbą licencji niż GPLv2. Ona pozwala łączyć z kodem, który ma pewne dodatkowe ograniczenia, których nie ma samo GPLv3. Część 7 bardziej szczegółowo to objaśnia i wymienia które dodatkowe ograniczenia są zezwolone.

Czy mogę napisać wolne oprogramowanie, które korzysta z niewolnych bibliotek? (#FSWithNFLibs)

Jeśli to zrobicie, to Wasz program nie będzie w pełni użyteczny w wolnym środowisku. Jeżeli twemu programowi do wykonania pewnego zadania konieczna jest biblioteka, która nie jest wolna, to nie może on wykonać tego zadania w Wolnym Świecie. Jeśli do tego, by w ogóle się uruchomić zależy od biblioteki, która nie jest wolna, nie może być częścią wolnego systemu operacyjnego, takiego jak GNU. Jest całkowicie poza granicami Wolnego Świata.

Więc zastanów się, prosimy: czy możesz znaleźć sposób wykonania zadania bez użycia tej biblioteki? Czy możesz napisać wolny zastępnik tej biblioteki?

Jeśli program jest już napisany z wykorzystaniem biblioteki, która nie jest wolna, być może jest już za późno na zmianę decyzji. Równie dobrze możesz wypuścić program, jaki jest, zamiast nie wypuszczać go wcale. Wspomnij jednak, prosimy, w pliku README, że wadą jest potrzeba użycia biblioteki, która nie jest wolna, i zasugeruj pracę nad zmianą programu tak, aby wykonywał to samo zadanie bez niej. Prosimy, podpowiadaj każdemu, kto zastanawia się nad zaangażowaniem się w poważniejszą pracę nad tym programem, żeby najpierw uwolnił go od zależności od niewolnej biblioteki.

Zwróćcie uwagę, że łączenie niektórych niewolnych bibliotek z Wolnym Oprogramowaniem objętym GPL może rodzić również problemy prawne. Więcej szczegółów na ten temat znajdziesz w odpowiedzi na pytanie o programy GPL z bibliotekami niezgodnymi z GPL.

Czy można łączyć program GPL z zastrzeżoną biblioteką systemu? (#SystemLibraryException)

Obie wersje GPL mają wyjątek do copyleft, nazywany wyjątkiem biblioteki systemowej [„system library exception”]. Jeśli biblioteki niekompatybilne z GPL spełniają kryteria biblioteki systemowej to nie musisz niczego nadzwyczajnego robić aby je używać. Wymaganie rozpowszechniania kodu źródłowego dla całego programu nie dotyczy tych bibliotek, nawet jeśli rozpowszechniacie plik wykonywalny zawierający je.

Kryterium tego, co jest uważane za „bibliotekę systemową” jest odmienne w różnych wersjach GPL. GPLv3 bezpośrednio definiuje „biblioteki systemowe” w części 1. aby je wyłączyć z definicji „odpowiadającego źródła.” GPLv2 wymienia następujący wyjątek pod koniec części 3.:

Jakie kwestie prawne pojawiły się, jeśli korzystam z bibliotek niekompatybilnych z GPL? (#GPLIncompatibleLibs)

Jeśli chcesz, by Twój program był konsolidowany z bibliotekami, które nie spełniają tego wyjątku, powinieneś dodać własny wyjątek. Poniżej są dwie przykładowe notki, które możesz użyć do tego - jedna dla GPLv3, a druga dla GPLv3. W obu przypadkach powinniście umieścić ten tekst w każdym pliku, dla którego dajecie to zezwolenie.

Tylko posiadacz praw autorskich programu może legalnie wypuścić swój program na tych warunkach. Jeśli to Wy napisaliście program sami to, zakładając że Wasz pracodawca lub uczelnia nie ma praw autorskich, to Wy jesteście posiadaczami praw autorskich, i to Wy możecie autoryzować wyjątek. Ale, jeśli chcecie używać części innych programów objętych GPL napisanych przez innych autorów, nie możecie autoryzować wyjątku za nich. Musicie zdobyć zgodę właścicieli praw autorskich do tych programów.

Gdy inni modyfikują program, nie muszą dołączać tego wyjątku do swojego kodu - to ich wybór czy to zrobią.

Jeśli biblioteki, z jakimi zamierzasz połączyć program, nie są wolne, przeczytaj, prosimy, część o pisaniu wolnego oprogramowania korzystającego z bibliotek, które nie są wolne.

Jeśli używacie GPLv3, możecie to osiągnąć przez dodatkowe przyzwolenie pod sekcją 7. Następujące oznajmienie to osiągnie. Powinniście zamienić tekst w nawiasach tekstem odpowiadającym Waszemu programowi. Jeśli nie każdy może rozprowadzać kod źródłowy do bibliotek, z którymi macie zamiar konsolidować powinniście usunąć tekst w klamrach. W przeciwnym wypadku, usuńcie same klamry.

Copyright (C) [rrrr] [nazwa posiadacza praw autorskich]

Niniejszy program jest wolnym oprogramowaniem; możesz go rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według wersji 3 tej Licencji lub (według Twojego wyboru) którejś z późniejszych wersji.

Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji sięgnij do Powszechnej Licencji Publicznej GNU.

Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie – odwiedź <https://www.gnu.org/licenses>.

Dodatkowe zezwolenie do GNU GPL wersja 3. część 7

If you modify this Program, or any covered work, by linking or combining it with [name of library] (or a modified version of that library), containing parts covered by the terms of [name of library's license], the licensors of this Program grant you additional permission to convey the resulting work. {Corresponding Source for a non-source form of such a combination shall include the source code for the parts of [name of library] used as well as that of the covered work.}
Jeśli modyfikujecie ten Program, lub jakiekolwiek objęte dzieło, przez linkowanie lub łączenie z [nazwa biblioteki] (lub zmodyfikowana wersja tej biblioteki), zawierająca części objęte licencją [nazwa licencji biblioteki], wydający koncesje na Program dodatkowo zezwalają Wam na przekazanie wynikającego dzieła. {Źródło dla wersji nie-źródłowej takiej kombinacji będzie zawierało zarówno źródło użytych części [nazwa biblioteki] jak i objętego dzieła.}

Jeśli używacie GPLv2, możecie to osiągnąć przez dodanie wyjątku do licencji. Następujące oznajmienie to osiągnie. Powinniście zamienić tekst w nawiasach tekstem odpowiadającym Waszemu programowi. Jeśli nie każdy może rozprowadzać kod źródłowy do bibliotek, z którymi macie zamiar konsolidować powinniście usunąć tekst w klamrach. W przeciwnym wypadku, usuńcie same klamry.

Copyright (C) [rrrr] [nazwa posiadacza praw autorskich]

Niniejszy program jest wolnym oprogramowaniem; możesz go rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według wersji 2 tej Licencji lub (według Twojego wyboru) którejś z późniejszych wersji.

Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji sięgnij do Powszechnej Licencji Publicznej GNU.

Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie – odwiedź <https://www.gnu.org/licenses>.

Konsolidacja statyczna lub dynamiczna [nazwa Waszego programu] z innymi modułami jest tworzeniem pracy złożonej, opartej na [nazwa Waszego programu]. Dlatego warunki Powszechnej Licencji Publicznej GNU obowiązują w stosunku do całości tak powstałej kombinacji.

Dodatkowo, w ramach wyjątku specjalnego, posiadacz praw autorskich do [nazwa Waszego programu] udziela zezwolenia na konsolidację [nazwa Waszego programu] z wolnymi programami lub bibliotekami wydanymi na licencji GNU LGPL oraz z kodem zawartym w standardowym wydaniu [nazwa biblioteki] na licencji [nazwa licencji biblioteki] (lub ze zmodyfikowanymi wersjami tej biblioteki na niezmienionej licencji). Możesz kopiować i dystrybuować tak powstały system przestrzegając warunków GNU GPL dla [nazwa Waszego programu] oraz odpowiednich licencji dla reszty kodu, (pod warunkiem, że dołączysz kod źródłowy tego kodu w przypadkach, kiedy w GNU GPL wymaga się dystrybucji kodu źródłowego, i we wskazany w niej sposób).

Zauważ, że osoby, które utworzą zmodyfikowane wersje [nazwa Waszego programu], nie są zobowiązane przyznawać do nich niniejszego wyjątku; zależy to wyłącznie od nich. W Powszechnej Licencji Publicznej GNU pozwala się na wydawanie wersji bez tego wyjątku; niniejszy wyjątek umożliwia także wydanie takiej zmodyfikowanej wersji, w której zostanie zachowany.

Jak mam otrzymać prawa autorskie do swojego programu, aby wydać go na warunkach GPL? (#HowIGetCopyright)

Zgodnie z Konwencją Berneńską, wszystko co się napisze jest automatycznie objęte prawami autorskimi od momentu utrwalenia dzieła. Nie musisz więc niczego robić, by „uzyskać” prawa autorskie do tego, co napisałeś — pod warunkiem, że nikt inny nie może sobie rościć praw własności do Twojej pracy.

Jednak w USA zarejestrowanie praw autorskich jest bardzo dobrym pomysłem. Daje większą siłę przebicia w postępowaniu z naruszającymi je w USA.

Przypadek, gdy ktoś inny może prawdopodobnie rościć sobie pretensje do praw autorskich zachodzi, gdy jesteś pracownikiem lub studentem. Wówczas pracodawca lub szkoła może twierdzić, że wykonałeś pracę dla nich i że prawa autorskie do nich należą. Czy ich roszczenia są słuszne czy nie zależy od okoliczności takich jak miejscowe prawo, Twoja umowa o pracę i rodzaj pracy, jaką wykonujesz. W przypadku jakichkolwiek możliwych wątpliwości najlepiej poradzić się prawnika.

Jeżeli sądzisz, że pracodawca lub szkoła mogłaby mieć takie roszczenia, możesz rozwiązać bezspornie problem uzyskując zrzeczenie się praw autorskich podpisane przez odpowiednio upoważnionego urzędnika firmy czy szkoły. (Twój bezpośredni szef czy nauczyciel zwykle NIE jest upoważniony do podpisywania takich dokumentów).

Co jeśli moja szkoła lub uczelnia zechce włączyć mój program do swego własnego produktu oprogramowania prawnie zastrzeżonego? (#WhatIfSchool)

Obecnie wiele uniwersytetów próbuje zwiększyć swoje fundusze ograniczając dostęp do wiedzy i informacji, które opracowują, w efekcie zachowując się niewiele inaczej niż przedsiębiorstwa komercyjne. (Zobacz „The Kept University”, Atlantic Monthly, marzec 2000, gdzie zamieszczono ogólne omówienie tego problemu i jego skutków).

Jeśli widzisz jakąkolwiek możliwość, że Twoja szkoła mogłaby odmówić pozwolenia na wypuszczenie Twojego programu jako wolnego oprogramowania, najlepiej podnieść tę kwestię na możliwie najwcześniejszym etapie. Im bliżej do użytecznego działania programu, tym większą może odczuwać pokusę administracja, by Ci go zabrać i ukończyć go bez Ciebie. Na wczesnym etapie masz dużo większy wpływ.

Dlatego też zalecamy, byś zwrócił się do nich wtedy gdy program jest tylko w połowie gotowy, mówiąc, „Jeśli zgodzicie się na wypuszczenie go jako wolnego oprogramowania, skończę go”. Nie traktuj tego jak blef. Aby wygrać musisz mieć odwagę powiedzieć: „mój program będzie wolny albo nigdy się nie narodzi”.

Czy mogę otrzymać instrukcję krok-po-kroku jak stosować GPL do mojego programu? (#CouldYouHelpApplyGPL)

Zobacz stronę z instrukcjami GPL.

Słyszałem, że ktoś ma kopię programu wydanego na GPL, ale z inną licencją. Czy to możliwe? (#HeardOtherLicense)

GNU GPL nie zezwala użytkownikom na dołączanie innych licencji do programu. Jednak posiadacz praw autorskich może wypuścić program pod kilkoma różnymi licencjami równolegle. Jedną z nich może być GNU GPL.

Ta licencja, która jest dołączona do Waszej kopii, zakładając, że została tam umieszczona przez posiadacza praw autorskich i że uzyskałeś kopię zgodnie z prawem, jest licencją mającą zastosowanie do Waszej kopii.

Chciałbym wydać napisany przez siebie program na GNU GPL, ale chciałbym wykorzystać ten sam kod w programach, które nie będą wolne. (#ReleaseUnderGPLAndNF)

Wypuszczenie programu, który nie jest wolny jest zawsze skażone etycznie, ale z punktu widzenia prawa nie ma przeszkód, byś to zrobił. Jeśli masz prawa autorskie do kodu, możesz wypuszczać go kilkakrotnie na rozmaitych różniących się niewyłącznych licencjach.

Czy deweloper programu objętego GPL jest nią związany? Czy jego działania mogą kiedykolwiek naruszać GPL? (#DeveloperViolate)

Mówiąc ściśle, GPL jest licencją na użytkowanie, dystrybucję i zmianę programu, którą jego konstruktor udziela innym. Sam nie jest nią związany, więc bez względu na to, co zrobi, nie jest to „naruszenie” GPL.

Jednak, jeśli uczyni coś, co naruszałoby GPL, gdyby zrobił to ktoś inny, z pewnością straci reputację w społeczności.

Czy deweloper programu, który wypuścił go na GPL może później licencjonować go innej stronie na zasadzie wyłączności? (#CanDeveloperThirdParty)

Nie, gdyż społeczeństwo ma już prawo do używania programu na zasadach GPL, a nie może ono zostać odwołane.

Czy mogę korzystać z edytorów objętych GPL jak GNU Emacs do pisania programów, które nie są wolne? Czy do ich kompilacji mogę wykorzystywać narzędzia objęte GPL, takie jak GCC? (#CanIUseGPLToolsForNF)

Tak, gdyż prawa autorskie związane z edytorami czy narzędziami nie obejmują kodu, który piszesz. Zgodnie z prawem, korzystanie z nich nie nakłada żadnych ograniczeń na licencję, jakiej zechcesz użyć dla swojego kodu.

Niektóre z programów z powodów technicznych kopiują części samych siebie na wyjście — na przykład, Bison do generowanego pliku wynikowego kopiuje standardowy program analizy składni. W takich przypadkach, skopiowany na wyjście tekst jest objęty tą samą licencją, która obejmuje kod źródłowy. Z kolei część wyjścia, która pochodzi od wejścia programu dziedziczy status prawny wejścia.

Tak się składa, że Bison może być używany do budowania programów, które nie są wolne. Jest tak dlatego, że zdecydowaliśmy jawnie zezwolić na użycie bez ograniczeń standardowego programu analizy składni z Bisona w generowanych przezeń plikach wyjściowych. Podjęliśmy tę decyzję, ponieważ są inne narzędzia porównywalne z Bisonem, które już pozwalały na ich zastosowanie do programów, które nie są wolne.

Czy mam prawa „dozwolonego użytku” w korzystaniu z kodu źródłowego programu objętego GPL? (#GPLFairUse)

Tak, masz. „Dozwolony użytek” [fair use] to użytek, który jest dopuszczalny bez żadnych specjalnych zezwoleń. Ponieważ nie potrzebujesz zezwolenia autorów na takie użytkowanie, możesz z niego korzystać bez względu na to, co o tym powiedzieli autorzy — w licencji czy gdzieś indziej, czy będzie to GNU GPL czy jakakolwiek inna licencja wolnego oprogramowania.

Zauważ jednak, że nie ma ogólnie przyjętej na świecie zasady dozwolonego użytku; jakie rodzaje wykorzystywania są uważane za „dozwolone” zależy od konkretnego kraju.

Czy rząd USA może wydać program na warunkach GNU GPL? (#GPLUSGov)

Jeśli program jest pisany przez pracownika rządu USA jako część pracy, jest w domenie publicznej – nie podlega prawu autorskiemu. Ponieważ GNU GPL bazuje się na prawach autorskich, taki program nie może być wydany na zasadach GNU GPL. (Nadal jest to wolne oprogramowanie, bo program w domenie publicznej jest wolny.)

Natomiast gdy rząd USA zleca innej organizacji napisanie programu, to jest sytuacja całkiem odmienna. Kontrakt może wymagać aby oprogramowanie było wydane na zasadach GNU GPL. (Program GNU Ada był w ten sposób rozwinięty.) Albo kontrakt może przepisać prawa autorskie na rząd USA, który potem może go wydać na licencji GNU GPL.

Czy rząd USA może wydać ulepszenia do programu objętego GPL? (#GPLUSGovSGovAddd)

Tak. Jeśli ulepszenia są napisane przez pracowników rządu USA jako część pracy, ich ulepszenia są automatycznie w domenie publicznej. Natomiast ulepszony program, jako całość, jest nadal objęty GNU GPL. Nie ma tu sprzeczności.

Jeśli rząd USA zleci to innej organizacji, ulepszenia same w sobie mogą być objęte GPL.

Czy GPL ma różne wymagania dla statycznych a dynamicznych modułów współdziałających z objętym dziełem? (#GPLStaticVsDynamic)

Nie. Konsolidacja statyczna lub dynamiczna dzieła objętego GPL z innymi modułami jest tworzeniem pracy złożonej, opartej na dziele GPL. Dlatego warunki Powszechnej Licencji Publicznej GNU obowiązują w stosunku do całości tak powstałej kombinacji. Zobaczcie też Jakie są problemy prawne jeśli użyję biblioteki nie kompatybilne z GPL wraz z oprogramowaniem na warunkach GPL?

Czy LGPL ma różne wymagania dla statycznych a dynamicznych modułów działających wraz z objętym dziełem? (#LGPLStaticVsDynamic)

W celu sprostaniu wymogom z LGPL (każdej ocalałej wersji: v2, v2.1 lub v3):

(1) Jeśli statycznie łączcie się z biblioteką LGPL, musicie również dostarczyć swoją aplikację w formacie obiektowym (niekoniecznie źródłowym), więc użytkownik ma szansę na modyfikację biblioteki i ponowne połączenie aplikacji.

(2) Jeśli dynamicznie łączcie z biblioteką na warunkach LGPL już obecną na komputerze użytkownika, nie musicie przekazać źródła biblioteki. Z drugiej strony, jeśli sami przekazujecie plik wykonywalny biblioteki na warunkach LGPL wraz z Waszą aplikacją, obojętnie czy powiązana statycznie lub dynamicznie, musicie również przekazać źródło biblioteki, w jednym z sposobów, dla których LGPL dostarcza.

Czy jest jakiś sposób, w jaki mogę objąć wyniki uzyskiwane z mojego programu warunkami GPL? Na przykład, jeśli program służy do opracowywania projektów sprzętu, to czy mogę wymagać, by te projekty musiały być wolne? (#GPLOutput)

Ogólnie rzecz biorąc jest to prawnie niemożliwe. Prawo autorskie nie daje Ci prawa głosu co do tego, w jaki sposób ktoś wykorzysta wyniki uzyskane przez niego ze swoich danych przy użyciu Twojego programu. Jeśli użytkownik korzysta z Twojego programu do wprowadzania i przetwarzania własnych danych, to prawa autorskie do wyniku należą do niego, nie do Ciebie. Ogólniej: gdy program przekształca otrzymane dane wejściowe w jakąś inną postać, to status prawny wyniku jest taki sam, jak wejścia, z którego go utworzono.

Zatem jedyna sytuacja, w której możesz mieć coś do powiedzenia, co do użycia wyników, zachodzi wówczas, gdy w znaczne części wyniku skopiowane są (mniej czy bardziej dokładnie) z tekstu Twojego programu. Na przykład, część wyniku generowanego przez program Bison (zobacz wyżej) byłaby objęta przez GNU GPL, gdybyśmy nie zrobili wyjątku w tym konkretnego przypadku.

Mógłbyś sztucznie spowodować, by program kopiował pewien tekst do generowanego wyjścia, nawet gdyby nie było do tego żadnego technicznego powodu. Jednak, jeśli tak skopiowany tekst nie miałby praktycznego znaczenia, użytkownik po prostu usunąłby go z uzyskanego wyniku i wykorzystał tylko resztę. W ten sposób nie musiałby przestrzegać warunków redystrybucji skopiowanego tekstu.

W jakich przypadkach wynik wyjściowy z program GPL jest również objęty GPL? (#WhatCaseIsOutputGPL)

Wyjście programu zwykle nie jest objęty prawami autorskimi kodem programu. Licencja kodu programu nie stosuje się do danych wyjściowych, czy wyślecie je w plik, czy zrobicie zrzut, lub film.

Wyjątkiem jest jeśli program wyświetla pełny ekranu tekstu i/lub sztuki, które pochodzą z programu. Wtedy prawa autorskie do tego tekstu i/lub sztuki obejmują wyjście. Programy, które emitują dźwięki, takie jak gry komputerowe, również należą do tego wyjątku.

Jeśli sztuka/muzyka jest na warunkach GPL, to GPL stosuje się, gdy robisz kopię bez względu na to, jak to robisz. Jednakże, dozwolony użytek może nadal obowiązywać.

Miejsce na uwadze, że niektóre programy, zwłaszcza gry wideo, mogą mieć grafikę/audio, która jest licencjonowana inaczej niż gra GPL. W takich przypadkach licencja na grafikę/audio dyktuje warunki, w których może pojawić się wideo lub streamowanie. Zobaczcie też: Czy mogę użyć GPL dla czegoś innego niż oprogramowanie?

Jeśli dołożę moduł do programu objętego GPL, to czy muszę użyć GPL jako licencji dla swojego modułu? (#GPLModuleLicense)

W GPL stwierdza się, że cały połączony program musi być wydany na warunkach GPL. Zatem Twój moduł musi być dostępny do wykorzystania na GPL.

Możecie jednak udzielić dodatkowego zezwolenia na użycie swojego kodu. Możecie, jeśli chcesz, wypuścić moduł na licencji swobodniejszej niż GPL, ale z nią zgodnej. Na stronie z listą licencji znajduje się częściowy wykaz licencji zgodnych z GPL.

Czy jeśli bibliotekę wydano na warunkach GPL (nie LGPL), to znaczy, że każdy program, który jej używa musi być objęty GPL lub licencją kompatybilną z GPL? (#IfLibraryIsGPL)

Tak, gdyż podczas działania program łączy się z biblioteką, czyli warunki GPL odnoszą się do całej kombinacji. Moduły, który łączą się z biblioteką mogą być na różnych licencjach kompatybilnych z GPL, ale dzieło jako całość musi być objęta licencją GPL. Zobaczcie także: Co to znaczy, że licencja jest “kompatybilna z GPL”?

Czy jeśli interpreter jakiegoś języka programowania jest wydany na GPL, to programy napisane do interpretowania przez niego muszą być na licencji zgodnej z GPL? (#IfInterpreterIsGPL)

Jeśli ten interpreter tylko interpretuje język, to nie muszą. Interpretowany program to, dla interpretera, tylko dane — licencje wolnegooprogramowania, jak GPL, oparte na systemie praw autorskich, nie mogą ograniczać Cię w tym, z jakimi danych używasz interpretera. Możesz uruchamiać dla dowolnych danych (interpretowanego programu), w jaki zechcesz sposób, i nie istnieją żadne wymagania dotyczące licencjonowania tych danych na rzecz kogokolwiek.

Jednakże, gdy interpreter jest rozszerzony tak, by udostępniać „powiązania” z innymi mechanizmami wspomagającymi (często, choć niekoniecznie, z bibliotekami), interpretowany program, praktycznie rzecz biorąc, jest połączony z mechanizmami, z jakich korzysta za pośrednictwem tych powiązań. Stąd też, jeśli mechanizmy wydano na GPL, to interpretowany program, który ich używa, musi być wydany w sposób zgodny z GPL. Przykładem takiego mechanizmu wiązania jest JNI, czyli Java Native Interface: biblioteki, do których sięga się tą metodą, są dynamicznie łączone z programami Javy, które je wywołują. Biblioteki te są łączone również z interpreterem. Jeśli interpreter został skonsolidowany statycznie z tymi bibliotekami lub jeśli zaprojektowano go do łączenia dynamicznego z tymi konkretnymi bibliotekami, to również on powinien zostać wydany w sposób zgodny z wymogami GPL.

Innym podobnym i bardzo często spotykanym przypadkiem jest dostarczanie wraz z interpreterem bibliotek, które same są interpretowane. Na przykład, Perl rozprowadzany jest z wieloma modułami perlowymi, a implementacje Javy z wieloma klasami Javy. Te biblioteki i programy, które je wywołują są zawsze dynamicznie łączone.

Wskutek tego, jeśli zdecydowałeś się na użycie w swoim programie wydanych na GPL modułów Perla czy klas Javy, musisz wydać go zgodnie z GPL, bez względu na to jakiej licencji użyto dla interpretera Perla czy Javy, przez który będzie wykonywany.

Piszę w Microsoft Visual C++ (lub Visual Basic) aplikację do Windows i chcę ją wydać na GPL. Czy zgodnie z GPL dozwolone jest dynamiczne łączenie programu z biblioteką wykonawczą (run-time) Visual C++ (lub Visual Basic)? (#WindowsRuntimeAndGPL)

Tak, GPL na to zezwala gdyż ta biblioteka wykonawcza zwykle jest dostarczana z kompilatorem lub interpreterem, którego używasz. Te biblioteki są „System Libraries” według GPLv3 i nie musicie martwić się dołączaniem ich kodu do kodu programu. GPLv2 ma podobny wyjątek w Sekcji 3.

Nie można rozprowadzać tych bibliotek w postaci DLL wraz z programem. Aby zapobiec dystrybutorom pozbawionym skrupułów prób korzystania z wyjątku biblioteki systemowej jako luki prawnej, GPL stanowi, że biblioteki mogą kwalifikować się jako biblioteki systemowe, tak długo, jak nie są rozprowadzane wraz z programem. Jeśli rozprowadzasz pliki DLL z programem, nie mogą być one uprawnione do tego wyjątku; wtedy jedynym sposobem sprostać wymogom GPL byłoby dostarczyć kod źródłowy, którego nie jesteście w stanie zrobić.

Jest możliwe pisać wolne programy, które działają tylko w środowisku Windows, ale nie jest to dobrym pomysłem. Te programy byłyby „w okowach” Windowsa i nie przyczyniały się do Wolnego Świata.

Dlaczego oryginalna licencja BSD jest niekompatybilna z GPL? (#OrigBSD)

Ponieważ nakłada pewne specyficzne wymaganie, którego nie ma w GPL. Konkretnie, chodzi o wymóg związany z reklamowaniem programu [wymaga się zamieszczenia podziękowań w ogłoszeniach lub dokumentacji związanej z pakietem]. Sekcja 6 GPLv2 stanowi:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.
Na korzystanie przez odbiorcę z udzielonych w niniejszej Licencji praw nie możesz narzucać już dalszych ograniczeń.

GPLv3 ma podobną klauzulę w sekcji 10. Klauzula ogłoszeniowa stanowi takie właśnie dalsze ograniczenie, zatem jest niezgodna z GPL.

Poprawiona licencja BSD nie zawiera klauzuli ogłoszeniowej, co rozwiązuje problem.

Kiedy program i jego wtyczki byłyby uważane za jeden wspólny program? (#GPLPlugins)

To zależy od tego jak główny program wywołuje wtyczki. Jeśli używa fork i exec, aby je wywołać, a potem w intymny sposób dzieli się skomplikowanymi strukturami danych, lub przesyła tam i z powrotem skomplikowane struktury danych, to staje się jednym programem. Główny program, który używa fork i exec, aby wywołać wtyczki a nie otwiera intymnych kanałów komunikacji oznacza, że wtyczki pozostają odrębnym programem.

Jeśli główny program dynamicznie dołącza wtyczki, wykonują one wzajemne wywołania funkcyjne i mają wspólne struktury danych, to uważamy, że tworzą one jeden łączony program, który musi być traktowany jako rozszerzenie zarówno programu głównego, jak i wtyczek. Jeśli główny program dynamicznie łączy wtyczki, ale komunikacja między nimi jest ograniczona do wywołania funkcji „main” we wtyczce z jakimiś parametrami i czekając na wynik, to jest przypadek na granicy.

Używanie współdzielonej pamięci aby komunikować za pomocą złożonych struktur danych jest równoważne z łączeniem dynamicznym.

Jeśli piszę wtyczki do użytkowania z programem GPL, jakie mam narzucone wymagania co do licencji na której mogę rozprowadzać moje wtyczki? (#GPLAndPlugins)

Proszę zobaczcie pytanie aby się dowiedzieć kiedy wtyczka i główny program są uważane za jeden łączony program, a kiedy są uważane za oddzielne dzieła.

Jeśli główny program i wtyczki są łączonym programem to znaczy, że musicie wydać wtyczkę na warunkach GPL lub wolnej licencji kompatybilnej z GPL, oraz rozprowadzić ją z kodem źródłowym w sposób kompatybilny z GPL. Główny program, który jest oddzielny od wtyczek nie narzuca wymagań na wtyczki.

Czy możemy zastosować GPL, gdy piszemy wtyczki do niewolnego programu? (#GPLPluginsInNF)

Proszę zobaczcie pytanie aby się dowiedzieć kiedy wtyczka i główny program są uważane za jeden łączony program, a kiedy są uważane za oddzielne dzieła.

Jeśli tworzą one jeden program, to znaczy, że połączenie objętej GPL wtyczki z niewolnym programem głównym naruszałoby GPL. Możecie jednak rozwiązać ten problem prawny, dodając do licencji swojej wtyczki wyjątek, zezwalający na łączenie wtyczki z konkretnym programem głównym, mimo że nie jest on wolny.

Zobaczcie także odpowiedź na pytanie Czy mogę pisać wolne oprogramowanie korzystające z bibliotek, które nie są wolne?

Czy mogę wydać niewolny program, który jest zaprojektowany, aby załadować wtyczki objęte GPL? (#NFUseGPLPlugins)

Proszę zobaczcie pytanie aby się dowiedzieć kiedy wtyczka i główny program są uważane za jeden łączony program, a kiedy są uważane za oddzielne dzieła.

Jeżeli tworzą one jeden program, to program główny musi zostać wydany na warunkach GPL lub na licencji wolnego oprogramowania zgodnej z GPL, a przy rozprowadzaniu programu do użytku z tymi wtyczkami muszą być przestrzegane warunki GPL.

Jeśli jednak wtyczki są odrębnymi programami, licencja wtyczki nie stawia żadnych wymagań co do głównego programu.

Zobaczcie także odpowiedź na pytanie Czy mogę pisać wolne oprogramowanie korzystające z bibliotek, które nie są wolne?

Macie program na warunkach GPL, który chciałbym połączyć ze swoim kodem i zbudować program prawnie zastrzeżony. Czy z tego, że łączę z waszym programem wynika, że muszę wydać swój program na warunkach GPL? (#LinkingWithGPL)

Nie całkiem. Musisz wydać swój program na licencji kompatybilnej z GPL (a precyzyjniej kompatybilnej z jedną lub więcej wersji GPL dopuszczalnych przez kod, z którym łączysz). Twoja kombinacja staje się dostępna na tych wersjach GPL.

Jeśli tak, to czy istnieje możliwość uzyskania licencji waszego programu na warunkach Lesser GPL? (#SwitchToLGPL)

Możesz zapytać, ale większość autorów nie ustąpi i odmówi. Ideą GPL jest: jeśli chcesz włączyć nasz kod do swojego programu, to Twój program musi także być wolny. Sądzimy, że będzie na Ciebie naciskać, byś wypuścił program w sposób, który uczyni go częścią naszej społeczności.

Zawsze masz zgodne z prawem wyjście: nie korzystać z naszego kodu.

Czy rozprowadzając niewolny sterownik, który ma się łączyć z jądrem Linux narusza GPL?(#NonfreeDriverKernelLinux)

Linuks [ang. the kernel in the GNU/Linux operating system] jest dystrybuowany na warunkach GNU GPL w wersji 2. Czy rozprowadzając niewolny sterownik, który ma się łączyć z jądrem Linux narusza GPL?

Tak, jest to naruszenie, ponieważ tworzy to jedno większe dzieło. Fakt, że użytkownik musi sam połączyć pionki razem nic nie zmienia.

Każdy współautor Linuksa, który posiada prawa autorskie w znacznej części kodu, może wyegzekwować GPL i zachęcamy każdego z nich do podjęcia działań przeciwko rozprowadzającym niewolne sterowniki do Linuksa.

Jak mogę pozwolić na łączenie własnościowych modułów z moją biblioteką objętą GPL tylko przez kontrolowany interfejs? (#LinkingOverControlledInterface)

Do informacji licencyjnej każdego pliku pakietu, po fragmencie mówiącym o tym, że plik jest rozprowadzany na warunkach GNU GPL, powinieneś dodać tekst:

Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
Konsolidacja statyczna lub dynamiczna ABC z innymi modułami jest tworzeniem pracy złożonej, opartej na ABC. Dlatego warunki Powszechnej Licencji Publicznej GNU obowiązują w stosunku do całości tak powstałej kombinacji.

As a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with independent modules that communicate with ABC solely through the ABCDEF interface. You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code and provided that you do not modify the ABCDEF interface.
W ramach wyjątku specjalnego, posiadacze praw autorskich do ABC udzielają zezwolenia na konsolidację programu ABC z wolnymi programami lub bibliotekami wydanymi na licencji GNU LGPL oraz z niezależnymi modułami, które komunikują się z ABC wyłącznie przez interfejs ABCDEF. Możecie kopiować i dystrybuować tak powstały system przestrzegając warunków GNU GPL dla ABC oraz odpowiednich licencji dla reszty kodu, pod warunkiem, że dołączacie kod źródłowy tamtego kodu w przypadkach, kiedy w GNU GPL wymaga się dystrybucji kodu źródłowego, oraz że nie zmienicie interfejsu ABCDEF.

Note that people who make modified versions of ABC are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception. If you modify the ABCDEF interface, this exception does not apply to your modified version of ABC, and you must remove this exception when you distribute your modified version.
Zauważcie, że osoby, które utworzą zmodyfikowane wersje ABC, nie są zobowiązane przyznawać do nich niniejszego wyjątku; zależy to wyłącznie od nich. W Powszechnej Licencji Publicznej GNU pozwala się na wydawanie wersji bez tego wyjątku; niniejszy wyjątek umożliwia także wydanie takiej zmodyfikowanej wersji, w której zostanie zachowany. Jeśli zmodyfikujecie interfejs ABCDEF, ten wyjątek nie dotyczy Waszej zmodyfikowanej wersji ABC i musicie usunąć ten wyjątek gdy rozprowadzanie Waszą zmodyfikowaną wersję.

This exception is an additional permission under section 7 of the GNU General Public License, version 3 (“GPLv3”)
Wyjątek ten jest dodatkową zgodą w rozumieniu sekcji 7 GNU General Public License, wersją 3 (“GPLv3”)

Wyjątek umożliwia połączenie się z różnymi licencjonowanymi modułami pod określonym interfejsem („ ABCDEF”), podczas gdy użytkownicy nadal otrzymują kod źródłowy, jako normalnie by otrzymywali na zasadach GPL.

Tylko posiadacz praw autorskich programu może legalnie zezwalać na ten wyjątek. Jeśli to Wy napisaliście cały program sami to, zakładając że Wasz pracodawca lub uczelnia nie ma praw autorskich, to Wy jesteście posiadaczami praw autorskich, i to Wy możecie autoryzować wyjątek. Ale, jeśli chcecie używać części innych programów objętych GPL napisanych przez innych autorów, nie możecie autoryzować wyjątku za nich. Musicie zdobyć zgodę właścicieli praw autorskich do tych programów.

Napisałem aplikację, która łączy wiele różnych komponentów mających różne licencje. Jestem zdezorientowany jakie wymogi licencyjne dotyczą mojego programu? Czy moglibyście mi powiedzieć, z jakich licencji mogę skorzystać? (#ManyDifferentLicenses)

By móc odpowiedzieć, musielibyśmy zobaczyć listę wszystkich komponentów wykorzystanych w twoim programie, ich licencje i krótkie (kilka zdań na każdy składnik powinno wystarczyć) opisy sposobu, w jaki Twoja biblioteka korzysta z danego składnika. Oto dwa przykłady:

  • Mój program, by działać, musi być skonsolidowany z biblioteką FOO, dostępną na Lesser GPL.
  • Mój program funkcją systemową (za pomocą wiersza poleceń, który zrobiłem) uruchamia program BAR, który jest licencjonowany na „GPL, ze specjalnym wyjątkiem zezwalającym na łączenie z QUUX”.
Czym się różni „agregowanie” od innych rodzajów „wersji zmodyfikowanych”? (#MereAggregation)

Zwyczajne zgromadzenie [aggregate] jest to kilka odrębnych programów rozprowadzanych razem na tym samym CD-ROM-ie lub innym medium. GPL zezwala na tworzenie i rozprowadzanie zgromadzenia, nawet jeśli licencje innych programów są niewolne lub niekompatybilne z GPL. Jedynym warunkiem jest to, że nie możecie wydać zgromadzenia na licencji, która by zabraniała praw, które każda indywidualna licencja nadaje.

Gdzie jest granica między dwoma programami a jednym składającym się z dwóch części? To kwestia prawna dotąd nie zdecydowania na drodze sądowej. My uważamy że kryterium powinno uwzględniać zarówno metodę komunikacji (exec, potoki, rpc, funkcje wywołane we wspólnej przestrzeni adresowej, itd.) jak i semantyka komunikacji (jakiego rodzaju dane są wymieniane).

Jeśli moduły są zawarte w tym samym pliku wykonywalnym, bez wątpienia są połączone w jeden program. Jeśli są zaprojektowane do działania we wzajemnym połączeniu we wspólnej przestrzeni adresowej, to niemal na pewno oznacza połączenie w jeden program.

W przeciwieństwie do tego, potoki, gniazda i argumenty wiersza poleceń to mechanizmy komunikacyjne normalnie używane między dwoma odrębnymi programami. Jeśli jednak semantyka tej komunikacji jest wystarczająco zażyła, występuje wymiana złożonych wewnętrznych struktur danych, to to również może być podstawą do uważania tych dwu części za połączone w większy program.

Gdy dochodzi do ustalenia, czy dwa kawałki oprogramowania tworzą pojedynczą pracę, czy to że kod jest w jednym lub więcej pojemników ma jakikolwiek efekt? (#AggregateContainers)

Nie. Analiza czy jest to pojedyncza praca czy agregat jest niezmieniona przez zaangażowanie pojemników.

Dlaczego FSF wymaga od wnoszących swój wkład do programów, do których prawa autorskie ma FSF, przekazania praw autorskich na rzecz FSF? Czy jeśli mam prawa autorskie do programu na GPL, też powinienem to zrobić? Jeśli tak, to w jaki sposób? (#AssignCopyright)

Nasi prawnicy powiedzieli, że aby być w najlepszej sytuacji występując przed sądem przeciw naruszaniu GPL, powinniśmy starać się utrzymać jak najprostszy status praw autorskich do programu. Robimy to prosząc każdego, kto wnosi swój wkład, by albo przekazał prawa autorskie do niego na rzecz FSF, albo zrzekł się praw autorskich.

Osoby prywatne prosimy również o uzyskanie od pracodawców (jeśli ich mają) pisemnego zrzeczenia się praw autorskich. Dzięki temu możemy być pewni, że pracodawcy Ci nie będą sobie rościć pretensji do przekazanych prac.

Oczywiście, jeśli wszyscy współpracownicy udostępnili swój kod jako public domain, to nie ma takiego prawa autorskiego, za pomocą którego można byłoby narzucić GPL. Dlatego zachęcamy ludzi do przypisywania praw autorskich do dużego wkładu w kod, a przekazywania jako public domain tylko niewielkich zmian.

Jeśli chcesz podjąć wysiłek egzekwowania GPL w przypadku własnego programu, zapewne byłoby dobrze, gdybyś przestrzegał podobnej polityki. Jeśli potrzebujesz więcej informacji, skontaktuj się, prosimy, z <licensing@gnu.org>.

Czy mogę modyfikować GPL i utworzyć zmodyfikowaną licencję? (#ModifyGPL)

Jest możliwe stworzenia zmodyfikowanych wersji GPL, ale ma kilka konsekwencji.

Możesz legalnie wykorzystać warunki GPL (zmienione lub nie) w innej licencji, pod warunkiem, że nazwiesz swoją licencję inaczej i nie zamieścisz w niej preambuły zaczerpniętej z GPL, oraz zmienisz końcową instrukcję stosowania licencji na tyle, żeby była wyraźnie inaczej sformułowana i nie wzmiankowała GNU (choć faktyczna procedura w niej opisana może być podobna).

Jeśli w zmodyfikowanej licencji chciałbyś użyć naszej preambuły, napisz, prosimy do <licensing@gnu.org> o zezwolenie. Przed jego udzieleniem będziemy chcieli zapoznać się z faktycznymi wymaganiami tej licencji, żeby sprawdzić, czy je aprobujemy.

Mimo że nie będziemy zgłaszać prawnych sprzeciwów wobec licencji, którą utworzysz w opisany sposób, mamy nadzieję, że dobrze się zastanowisz i nie zrobisz tego. Tak zmieniona licencja jest niemal na pewno niezgodna z GNU GPL, co blokuje przydatną możliwość łączenia modułów. Samo mnożenie się różnych licencji wolnego oprogramowania jest już uciążliwe.

Zamiast modyfikować GPL, skorzystajcie z mechanizmu wyjątku oferowanego przez GPL w wersji 3.

Jeśli skorzystam z oprogramowania uzyskanego na warunkach GNU GPL, to czy wolno mi zmienić oryginalny kod w nowy program, a następnie rozpowszechniać i sprzedawać taki nowy program komercyjnie? (#GPLCommercially)

Wolno Ci sprzedawać kopie zmodyfikowanego programu komercyjnie, ale tylko na warunkach GNU GPL. Zatem, na przykład, musisz udostępnić kod źródłowy użytkownikom programu, tak jak to opisano w GPL i zezwolić im na redystrybucję i modyfikacje, jak opisano w GPL.

Spełnienie tych wymagań jest warunkiem włączenia do własnego programu kodu objętego GPL, który otrzymałeś.

Czy możemy używać GPL dla czegoś innego niż oprogramowania? (#GPLOtherThanSoftware)

Możesz zastosować GPL do dowolnego rodzaju dzieła, dopóki jasne jest, co stanowi „kod źródłowy” tego dzieła. GPL definiuje go jako preferowaną postać dzieła do dokonywania w nim zmian.

Jednak dla dokumentacji i podręczników, czy bardziej ogólnie wszelkiego rodzaju pracy, której celem jest nauczanie jakiegoś tematu, zalecamy użycie raczej GFDL niż GPL.

Jak działa LGPL w Javie? (#LGPLJava)

Szczegóły wyjaśniono w tym artykule. Działa tak, jak to zaprojektowano, zamierzono, zgodnie z oczekiwaniami.

Rozważmy taką sytuację: 1) X wypuszcza V1 projektu na GPL; 2) Y przyczynia się do rozwoju V2, wprowadzając zmiany i nowy kod oparty na V1; 3) X chce zmienić licencję V2 na inną niż GPL. Czy X potrzebuje na to pozwolenia ze strony Y? (#Consider)

Tak. Y musiał wypuścić swoją wersję na GNU GPL, wskutek oparcia jej na wersji V1 wydanej przez X. Nic nie wymagało od Y wyrażania zgody na inną licencję na jego kod. A zatem, X musi uzyskać zezwolenie Y przed wypuszczeniem tego kodu na innej licencji.

Chciałbym połączyć oprogramowanie na warunkach GPL we własnym systemie własnościowym. Nie ma zgody na użycie tego oprogramowania, z wyjątkiem tego, co GPL daje. Czy mogę to zrobić? (#GPLInProprietarySystem)

Nie możesz wcielić oprogramowania objętego GPL do systemu prawnie zastrzeżonego. Celem GPL jest przyznanie każdemu wolności kopiowania, redystrybucji, rozumienia i modyfikacji programu. Gdybyś mógł włączyć oprogramowanie objęte GPL do systemu, który nie jest wolny, to w efekcie programy objęte GPL także przestałyby być wolne.

System włączający program na GPL jest rozszerzoną wersją tego programu. GPL stanowi, że wszelkie rozszerzone wersje programu muszą być wydane na GPL, jeśli mają być w ogóle wydane. Jest tak z dwu powodów: aby zapewnić, że użytkownicy, którzy otrzymują oprogramowanie, otrzymują też wolność, którą powinni mieć, oraz by zachęcić ludzi do zwracania ulepszeń, które poczynili.

Jednakże, w wielu przypadkach możesz rozpowszechniać oprogramowanie objęte GPL razem z prawnie zastrzeżonym systemem. Chcąc to zrobić w sposób ważny, musisz zapewnić, by programy wolne i nie będące wolnymi komunikowały się ze sobą na dystans, by nie były połączone w sposób, który faktycznie czyniłby z nich jeden program.

Różnica pomiędzy tym a „wcielaniem” programów objętych GPL jest częściowo kwestią treści, a częściowo formy. Część dotycząca treści jest taka: jeśli dwa programy są połączone w taki sposób, że stają się faktycznie dwoma częściami jednego programu, to nie możesz traktować ich jako dwu osobnych programów. A zatem GPL musi obejmować całość.

Jeśli oba programy pozostają dobrze odseparowane, jak kompilator i jądro, czy jak edytor i powłoka, to możesz traktować je jako dwa odrębne programy — ale musisz to robić poprawnie. Kwestia dotyczy właśnie formy: jak opisujesz to, co robisz. Dlaczego zwracamy na to uwagę? Ponieważ chcemy mieć pewność, że użytkownicy jasno rozumieją wolny status umieszczonego w kolekcji oprogramowania objętego GPL.

Jeśli ktoś rozpowszechniałby programy objęte GPL nazywając je „częścią” systemu, o którym wiadomo, że jest częściowo prawnie zastrzeżony, użytkownicy mogliby być niepewni swoich praw dotyczących oprogramowania objętego GPL. Jednak jeśli będą wiedzieć, że to, co otrzymali to wolny program plus inny program, obok siebie, ich prawa będą jasne.

Chcę połączyć oprogramowanie objęte GPL z moim systemem własnościowym. Czy mogę to zrobić za pomocą „opakowania”, które byłoby na przyzwalającej licencji kompatybilnej z GPL (na przykład licencji X11) i by pośredniczyło między częścią objętą GPL a częścią własnościową? (#GPLWrapper)

Nie. Licencja X11 jest kompatybilna z GPL, więc możecie dodać moduł objęty licnecją X11 do programu objętego GPL. Ale jeśli chcielibyście oba wcielić w jeden większy program, ta całość by obejmowała część objętą GPL i musiałaby jako całość być objęta GNU GPL.

To że moduł własnościowy A komunikuje z modułem GPL C tylko przez moduł X11 B jest bez znaczenia; co ma znaczenie jest fakt, że moduł C jest wcielony w całość.

Gdzie mogę dowiedzieć się więcej o GCC Runtime Library Exception? (#LibGCCException)

Wyjątek GCC Runtime Library obejmuje libgcc, libstdc++, libfortran, libgomp, libdecnumber i inne biblioteki załączane do GCC. Celem wyjątku jest zezwolenie na rozpowszechnianie programów kompilowanych za pomocą GCC na dowolnych warunkach, nawet jeśli części tych bibliotek znajdą się w programie podczas kompilacji. Aby się dowiedzieć więcej, przeczytajcie FAQ o wyjątku do GCC Runtime Library.

Chciałbym zmodyfikować programy objęte GPL i linkować je z bibliotekami przenośności z Money Guzzler Inc. Nie mogę rozpowszechniać kodu źródłowego tych bibliotek, więc każdy użytkownik, który chciałby zmienić te wersje, musiałby osobno uzyskać biblioteki. Dlaczego GPL na to nie pozwala? (#MoneyGuzzlerInc)

Są dwa powody. Pierwszy, ogólny, jeśli pozwolilibyśmy firmie A na zrobienie prawnie zastrzeżonego pliku, a firmie B na dystrybucję oprogramowania objętego GPL połączonego z tym plikiem, to konsekwencją byłaby dziura w GPL, przez którą wjechałaby ciężarówka. Byłoby to wystawienie carte blanche dla odmawiania kodu źródłowego do wszelkiego rodzaju zmian i rozszerzeń programów objętych GPL.

Zapewnienie wszystkim użytkownikom dostępu do kodu źródłowego jest jednym z naszych głównych celów, zatem ten skutek jest bez wątpienia czymś, czego chcielibyśmy uniknąć.

A wracając do konkretów: wersje programów skonsolidowane z bibliotekami Money Guzzler nie byłyby naprawdę wolnym oprogramowaniem w sposób, w jaki rozumiemy ten termin. Nie byłyby dostarczane z pełnym kodem źródłowym, który umożliwia użytkownikom zmianę i rekompilację programu.

Jeśli licencja modułu Q zawiera wymaganie niezgodne z GPL, ale ma ono zastosowanie tylko do sytuacji, gdy rozprowadzany jest sam moduł Q, a nie gdy Q jest włączony w większy program, to czy licencja ta jest zgodna z GPL? Czy mogę połączyć lub skonsolidować Q z programem objętym GPL? (#GPLIncompatibleAlone)

Jeśli program P wydano na GPL, oznacza to, że *każda dowolna jego część* może być wykorzystywana na warunkach GPL. Jeśli integrujesz moduł Q i wydajesz połączony program P+Q na GPL, oznacza to, że każda jego część może być używana na warunkach GPL. Jedną z części P+Q jest Q. Zatem wydanie P+Q na GPL oznacza, że Q może być wykorzystywana na warunkach GPL. Innymi słowy, użytkownik, który otrzymał P+Q objęte GPL, może usunąć P i pozostawić tylko Q, nadal na GPL.

Jeżeli licencja modułu Q pozwala na takie działanie, wówczas jest zgodna z GPL. W przeciwnym razie — nie jest zgodna.

Jeśli w licencji Q jednoznacznie zapisano, że gdy rozprowadzasz samo Q, to musisz zrobić pewne rzeczy (które nie są zgodne z GPL), to nie pozwala ona na dystrybucję Q na GPL. Z czego wynika, że na GPL nie można także wydać P+Q. Nie można więc skonsolidować lub połączyć P z Q.

Czy mogę wydać zmodyfikowaną wersję programu na zasadach GPL jedynie w postaci binarnej? (#ModifiedJustBinary)

Nie. Sednem GPL jest to, że wszystkie zmodyfikowane wersje muszą być wolnym oprogramowaniem, co w szczególności oznacza, że kod źródłowy zmienionej wersji powinien być dostępny dla użytkowników.

Pobrałem z sieci tylko binaria. Czy jeśli rozprowadzam kopie, to muszę pobrać źródła i je też rozprowadzać? (#UnchangedJustBinary)

Tak. Ogólna reguła brzmi: jeśli rozprowadzasz binaria, to musisz rozprowadzać również odpowiadający im kompletny kod źródłowy. Wyjątek, dla sytuacji, w której otrzymałeś pisemną ofertę na kod źródłowy, dotyczy bardzo niewielkiej liczby przypadków.

Chcę rozprowadzać binaria na nośniku fizycznym, ale bez towarzyszących źródeł. Czy mogę zapewniać dostęp do źródeł przez FTP? (#DistributeWithSourceOnInternet)

Wersja 3 GPL na to zezwala; zobaczcie szczegóły w opcji 6(b). W GPL 2 możecie, oczywiście, oferować źródło przez FTP i większość użytkowników z tego skorzysta. Natomiast, jeśli którykolwiek użytkownik wolałby otrzymać źródło fizycznie pocztą, jesteście zobowiązani dostarczyć.

Jeśli rozprowadzacie binaria przez FTP to powinniście rozprowadzać źródło przez FTP.

Znajomy dostał objęty GPL kod binarny z ofertą dostarczenia źródeł i zrobił mi kopię. Czy mogę sam wykorzystać ofertę, żeby otrzymać źródła? (#RedistributedBinariesGetSource)

Tak, możesz. Oferta musi być ważna dla każdego, kto ma kopie binariów, do których ją dołączono. Dlatego w GPL stwierdza się, że Twój znajomy musi razem z kopią plików binarnych przekazać Ci kopię oferty — żebyś mógł z niej skorzystać.

Czy mogę umieścić binaria na serwerze internetowym a źródło na innej witrynie? (#SourceAndBinaryOnDifferentSites)

Tak. Sekcja 6(d) zezwala na to. Musicie dostarczyć szczegółowych instrukcji, które umożliwiają pobrania źródła i musicie się upewnić, że źródło pozostanie dostępne tak długo jak rozprowadzacie binaria.

Chciałbym rozpowszechniać poszerzoną wersję programu objętego GPL w postaci binarnej. Czy wystarczy rozpowszechniać źródła oryginalnej wersji? (#DistributeExtendedBinary)

Nie, musicie dostarczyć kod źródłowy odpowiadający binarnemu. Odpowiadające binariom źródła oznaczają źródła, z których użytkownicy mogą ponownie zbudować te same binaria.

Częścią idei wolnego oprogramowania jest to, iż użytkownicy powinni mieć dostęp do kodu źródłowego programów, które używają. Używający Waszej wersji powinni mieć dostęp do kodu źródłowego Waszej wersji.

Jednym z głównych celów GPL jest zbudowanie Wolnego Świata dzięki zagwarantowaniu, że udoskonalenia wolnego programu same są wolne. Jeśli wypuszczacie udoskonaloną wersję programu objętego GPL, musicie wypuścić na GPL udoskonalony kod źródłowy.

Chcę rozprowadzać binaria, ale dystrybucja pełnych źródeł jest niewygodna. Czy byłoby w porządku, gdybym razem binariami dawał użytkownikom pliki różnic w stosunku do „standardowej” wersji? (#DistributingSourceIsInconvenient)

To prośba o dobrych intencjach, ale ta metoda zapewniania źródeł w rzeczywistości nie spełnia wymogów.

Użytkownik, który zechce kodu źródłowego za rok może wówczas nie być w stanie uzyskać właściwej wersji podstawowej z innego miejsca. Na serwerze prowadzącym standardową dystrybucję może wtedy znajdować się już nowsza wersja, a te same pliki różnicowe prawdopodobnie nie będą do niej pasowały.

Tak więc z binariami powinieneś dostarczyć pełne źródła, nie tylko pliki różnic.

Czy wolno mi udostępnić binaria w sieci na serwerze, ale wysyłać źródła tylko tym, którzy ich zażądają? (#AnonFTPAndSendSources)

Jeśli chcecie rozpowszechniać binaria za pośrednictwem serwera w sieci, musicie rozpowszechniać przez sieć i źródła. Najłatwiej byłoby na tym samym serwerze, ale może być na innym jeśli dostarczycie instrukcje jak pobrać. Może być także przez system kontroli wersji. Niezależnie od tego jak zrobicie, powinno być równie łatwo zdobyć źródła jak binaria. To jest opisane w sekcji 6(d) GPLv3.

Kod źródłowy, który dostarczasz musi dokładnie odpowiadać binariom. W szczególności, musisz upewnić się, że są to źródła tej samej wersji programu — nie wersji starszej ani nowszej.

Jak można upewnić się, że każdy użytkownik, który pobiera binaria, również otrzyma źródło? (#HowCanIMakeSureEachDownloadGetsSource)

Nie musisz się upewniać. Jeśli tylko udostępniłeś źródła i binaria, tak że użytkownicy widzą, co jest dostępne i mogą wziąć, czego potrzebują, to zrobiłeś już to, czego się od Ciebie wymaga. Czy ściągać źródła czy nie zależy od użytkownika.

Intencją naszych wymagań dotyczących redystrybutorów jest zapewnienie użytkownikom możliwości uzyskania kodu źródłowego, a nie zmuszanie ich do ściągania kodu nawet jeśli go nie chcą.

Czy GPL wymaga ode mnie dostarczenia kodu źródłowego, który może być skonstruowany w celu dopasowania do dokładnego hasha binariów, które rozprowadzam? (#MustSourceBuildToMatchExactHashOfBinary)

Wszystkie źródła odpowiadające źródłom oznacza źródła z których binaria są zrobione, a nie sugeruje, że narzędzia są w stanie stworzyć binaria, które mają identyczny hash, co binaria, które rozprowadzasz. W niektórych przypadkach byłoby (prawie) niemożliwe zbudowanie binariów ze źródła aby miały identyczny hash. Na przykład system może umieszczać znaczki czasowe w binariach, lub program mógł być zbudowany za pomocą innego (jeszcze nie wydanego) kompilatora.

Na witrynie internetowej firmy działa zmodyfikowana wersja programu wydanego na GPL. Czy według GPL firma musi wypuścić źródła tej swojej zmienionej wersji? (#UnreleasedMods)

GPL zezwala każdemu na wykonanie zmodyfikowanej wersji i korzystanie z niej bez konieczności przekazywania innym. Działania tej firmy są szczególnym przypadkiem takiej sytuacji. Dlatego firma nie musi wypuszczać zmodyfikowanych źródeł. Sytuacja jest odmienna jeśli zmodyfikowany program jest wydany na warunkach GNU Affero GPL.

Proszę porównać to do sytuacji, w której strona internetowa zawiera lub ma odnośniki do oddzielnych programów na warunkach GPL, które są rozprowadzane do użytkownika, gdy odwiedzają stronę internetową (często pisane w języku JavaScript, ale też i w innych językach). W tej sytuacji kod źródłowy programów, które są rozprowadzane musi być dostarczony użytkownikom, bo tego wymaga GPL.

Na witrynie internetowej firmy działa zmodyfikowana wersja programu wydanego na zasadach GNU Affero GPL (AGPL). Czy według AGPL firma musi wypuścić źródła tej swojej zmienionej wersji? (#UnreleasedModsAGPL)

GNU Affero GPL wymaga, aby zmodyfikowane wersje oprogramowania oferują wszystkim użytkownikom interakcje z komputerową siecią możliwość uzyskania źródła. W związku z tym, co firma działa pod tym wpływem, firma musi wydać zmodyfikowany kod źródłowy.

Czy wykonanie i używanie wielu kopii programu wewnątrz jednej instytucji lub firmy jest „rozprowadzaniem”? (#InternalDistribution)

Nie, w takim przypadku instytucja po prostu wykonuje kopie dla siebie. Skutkiem tego, firma lub inny podmiot może opracować i zainstalować zmodyfikowaną wersję własnymi siłami, bez udzielania personelowi zezwolenia na wydawanie takiej zmienionej wersji osobom z zewnątrz.

Jednak kiedy przekazuje kopie innej instytucji, firmie, organizacji czy osobom prywatnym, wówczas mamy do czynienia z rozprowadzaniem. W szczególności, rozprowadzaniem jest rozdawanie kopii wykonawcom kontraktu do użytku poza firmą.

Czy jeśli ktoś ukradnie CD z pewną wersją programu objętego GPL, to czy GPL daje mu prawo do redystrybucji tej wersji? (#StolenCopy)

Jeśli ta wersja była już gdzieś indziej wypuszczona, to złodziej zapewne ma prawo do robienia kopii i dalszego rozprowadzania ich na zasadach GPL, ale jeśli zostanie uwięziony za kradzież, będzie musiał poczekać do uwolnienia zanim z niego skorzysta.

Jeżeli wersji, o której mowa, nie publikowano a firma uważa ją za swoją tajemnicę handlową, to upublicznienie może, zależnie od innych okoliczności, stanowić naruszenie prawa o tajemnicy handlowej. GPL tego nie zmienia. Gdyby firma próbowała wydać swoją wersję i nadal traktować ją jak tajemnicę handlową, naruszałaby GPL, ale jeśli jej nie wydała, takie naruszenie nie nastąpiło.

Co, jeśli firma mi przekazuje kopię prac objętych GPL innych programistów w tajemnicy handlowej? (#TradeSecretRelease)

Firma narusza warunki GPL i musi zaprzestać dystrybucji tego programu. Należy zwrócić uwagę, że ten przypadek różni się od opisanego powyżej przypadku kradzieży; wykradziona z firmy kopia nie jest przez nią rozprowadzana celowo, więc wtedy firma nie narusza GPL.

Co, jeśli przedsiębiorstwo rozprowadza kopię swojego dzieła jako tajemnica handlowa? (#TradeSecreteRelease2)

Jeśli rozprowadzany program nie zawiera pracy nikogo innego, która byłaby objęta GPL, to firma nie narusza GPL (zobaczcie „Czy deweloper programu objętego GPL jest objęty warunkami GPL?” aby się dowiedzieć więcej). Ale firma wygłasza dwie sprzeczne rzeczy o tym, co możecie robić z tym programem: to, że możecie rozpowszechniać i to że nie. Miałoby sens zażądać wyjaśnienia warunków używania programu zanim zaakceptujecie kopię.

Dlaczego niektóre biblioteki GNU zostały wydane pod zwykłym GPL, a nie na zasadach Lesser GPL? (#WhySomeGPLAndNotLGPL)

Zastosowanie Lesser GPL do którejkolwiek konkretnej biblioteki to dla wolnego oprogramowania wycofywanie się. Oznacza, że częściowo porzucamy usiłowania obrony wolności użytkowników i niektóre z wymagań dotyczących dzielenia się tym, co zbudowano na oprogramowaniu objętym GPL. Same w sobie, są to zmiany na gorsze.

Czasami lokalny odwrót jest dobrą taktyką. Czasem, stosując LGPL do jakiejś biblioteki może prowadzić do szerszego jej użytkowania, a zatem do większych możliwości jej usprawniania, szerszego wspomagania wolnego oprogramowania, i tak dalej. Jeśli to zachodzi w znacznym natężeniu, może być dobre dla wolnego oprogramowania. Ale w jak dużym stopniu wystąpi? Możemy tylko spekulować.

Byłoby miło wypróbować na chwilę GPL dla każdej biblioteki, zobaczyć czy to pomaga, i zmienić z powrotem na GPL jeśli LGPL nie pomoże. Jednak coś takiego jest niewykonalne. Kiedy już zastosowalibyśmy LGPL do konkretnej biblioteki, odwrócenie zmiany byłoby trudne.

Dlatego też o tym, jakiej licencji użyć dla każdej z bibliotek decydujemy w zależności od konkretnego przypadku. Można zapoznać się z obszernym wyjaśnieniem, w jaki sposób rozstrzygamy tę kwestię.

Użycie pewnego programu GNU na GPL nie pasuje do naszego zamierzenia zbudowania oprogramowania prawnie zastrzeżonego. Zrobicie dla nas wyjątek? To oznaczałby więcej użytkowników tego programu. (#WillYouMakeAnException)

Przykro mi, nie robimy takich wyjątków. To nie byłoby słuszne.

Maksymalizacja liczby użytkowników nie jest naszym celem. Właściwie, usiłujemy dać decydujące wolności możliwie wielu użytkownikom. Na ogół projekty programów prawnie zastrzeżonych raczej przeszkadzają niż pomagają sprawie wolności.

Niekiedy zdarza się, że czynimy wyjątki licencyjne, by wesprzeć projekt rozwijający wolne oprogramowanie na licencji innej niż GPL. Jednak musimy mieć przedstawione dobre uzasadnienie tego, dlaczego poparłoby to sprawę wolnego oprogramowania.

Czasami zmieniamy też warunki dystrybucji pakietu, gdy jasno wygląda to na słuszny sposób przysłużenia się sprawie wolnego oprogramowania, lecz jesteśmy przy tym bardzo ostrożni i będziesz nam musiał przedstawić bardzo przekonujące powody.

Dlaczego programy powinny ogłaszać „Version 3 GPL lub jakakolwiek późniejsza wersja”? (#VersionThreeOrLater)

Od czasu do czasu, w odstępach lat, zmieniamy GPL — czasem po to, by ją uściślić, czasem by zezwolić na pewne rodzaje wykorzystywania, które nie były uprzednio dozwolone, a czasami żeby zacieśnić wymagania. (Ostatnie dwie zmiany to w 1991 a potem w 2007). Użycie tego „wskaźnika pośredniego” w każdym programie umożliwia nam przy aktualizacji GPL zmianę warunków rozpowszechniania dla całego zbioru oprogramowania GNU.

Gdyby w każdym programie brakowało tego pośredniego wskazania, bylibyśmy zmuszeni szczegółowo przedyskutowywać zmiany GPL z licznymi posiadaczami praw autorskich, co byłoby właściwie niemożliwe. W praktyce, szanse uzyskania jednolitych warunków rozpowszechniania dla oprogramowania GNU byłyby zerowe.

Załóżmy, że w programie napisano „GPL w wersji 3 lub dowolnej późniejszej” i została wydana nowa wersja GPL. Jeśli ta nowa wersja daje dodatkowe uprawnienie, to będzie ono natychmiast dostępne dla wszystkich użytkowników programu. Ale jeśli w nowej wersji GPL jest jakieś bardziej rygorystyczne wymaganie, to nie ograniczy ono użytkowania aktualnej wersji programu, gdyż nadal można z niego korzystać na warunkach GPL wersji 3. Kiedy program zawiera klauzulę „GPL w wersji 3 lub dowolnej późniejszej”, użytkownicy będą zawsze mogli go użyć, a nawet zmienić, zgodnie z warunkami GPL w wersji 3 — nawet po udostępnieniu późniejszych wersji GPL.

Jeśli mocniejsze wymaganie w nowej wersji GPL nie musi być przestrzegane, to jaki z niego pożytek? Od momentu wydania wersji 4 GPL, autorzy większości programów objętych GPL będą wypuszczać kolejne wersje swoich programów podając „GPL w wersji 4 lub dowolnej późniejszej”. Wówczas, dla następnych wersji programu, użytkownicy będą musieli przestrzegać mocniejszych wymagań z GPL wersji 4.

Jednakże autorzy nie są zobligowani, by tak postąpić. Jeśli wolą, mogą nadal zezwalać na korzystanie z poprzedniej wersji GPL.

Czy jest to dobry pomysł na użycie licencji mówiącej, że program może być użyty tylko w ostatniej wersji GNU GPL? (#OnlyLatestVersion)

Powodem, że nie powinno się robić tego, jest że może ono doprowadzić do wycofania się automatycznie kilku zezwoleń, które użytkownicy wcześniej posiadali.

Załóżmy, że program został wydany w 2000 roku pod tytułem „najnowsza wersja GPL”. W owym czasie ludzie mogli używać go pod GPLv2. Dzień, w którym opublikowano GPLv3 w 2007 r., wszyscy zostaliby nagle zmuszeni do używania go na warunkach GPLv3.

Niektórzy użytkownicy mogli nie wiedzieć o wersji 3 – ale byliby zmuszeni do jej używania. Mogli oni przypadkiem naruszać licencję programu, tylko dlatego że nie dostali odpowiedniej wiadomości wiadomości. Jest to zły sposób traktowania ludzi.

Uważamy, że jest to złe aby odbierać już uzyskane zezwolenia, z wyjątkiem przypadków naruszenia. Jeżeli wolność może zostać odwołana, to nie jest to naprawdę wolność. Więc jeśli otrzymasz kopię programu zgodnie z jedną wersją licencji, powinniście zawsze mieć prawa przyznane przez tę wersję licencji. Wydawanie na zasadach „wersja GPL  N lub jakakolwiek późniejsza wersja” utrzymuje tę zasadę.

Dlaczego nie używacie GPL dla podręczników? (#WhyNotGPLForManuals)

Zastosowanie GPL do podręczników jest możliwe, ale lepsza jest dla nich Licencja GNU Wolnej Dokumentacji, GNU Free Documentation License (GFDL).

GPL zaprojektowano do programów: zawiera wiele skomplikowanych klauzul o decydującym znaczeniu w przypadku programów, ale które byłyby nieporęczne, zawikłane i zbędne w przypadku książki czy podręcznika. Na przykład, każdy wydający książkę w postaci papierowej musiałby albo do każdego wydrukowanego egzemplarza dołączać możliwy do odczytania przez urządzenia cyfrowe „kod źródłowy” książki, albo dołączać pisemną ofertę przesłania „kodu źródłowego” później.

Z drugiej strony, GFDL zawiera klauzule, które pomagają wydawcom wolnych podręczników zarabiać na sprzedaży kopii — na przykład odnoszące się do tekstów na okładce. Specjalne zasady dotyczące części z Adnotacjami umożliwiają stosowanie GFDL do oficjalnych standardów. Zezwalają na tworzenie zmienionych wersji, które jednak nie mogą być oznakowane jako „standard”.

Używając GFDL, zezwalamy na zmiany w tekście podręcznika dotyczącym spraw technicznych. Możliwość dokonywania takich zmian jest ważna, ponieważ ci, którzy zmieniają program powinni zmienić dokumentację, aby była zgodna. Swoboda dokonywania zmian w tekście technicznym to imperatyw moralny.

Nasze podręczniki zawierają także części wyrażające nasze stanowisko polityczne na temat wolnego oprogramowania. Oznaczamy je jako „niezmienne”, dzięki czemu nie mogą być zmieniane ani usuwane. GFDL zawiera odpowiednie postanowienia dla takich „sekcji niezmiennych”.

Jak GPL stosuje się do czcionek? (#FontException)

Licencjonowanie fontów jest złożoną kwestią, która wymaga gruntownego rozważenia. Niżej podany wyjątek licencyjny jest eksperymentalny, ale zaaprobowany do ogólnego zastosowania. będziemy wdzięczni za sugestie na ten temat — prosimy przeczytać ten esej wyjaśniający [po angielsku] a pytania kierować na adres licensing@gnu.org.

Do informacji licencyjnej każdego pliku pakietu (na ile to możliwe), po fragmencie mówiącym o tym, że plik jest rozprowadzany na warunkach GNU GPL, powinieneś dodać tekst:

As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
W ramach specjalnego wyjątku, jeśli tworzysz dokument, który korzysta z tego fontu i osadzasz ten font lub jego niezmienione części w dokumencie, to sam font nie powoduje objęcia powstałego dokumentu Powszechną Licencją Publiczną GNU. Wyjątek ten nie unieważnia jednakże innych powodów, dla których dokument może być objęty Powszechną Licencją Publiczną GNU. Jeżeli zmodyfikujesz ten font, możesz rozszerzyć niniejszy wyjątek na swoją wersję fontu, ale nie masz takiego obowiązku. Jeśli nie tego chcesz, usuń niniejsze oświadczenie ze swojej wersji.

Piszę system zarządzania witryną WWW (przez niektórych nazywany „systemem zarządzania treścią”) lub jakąś inną aplikację generującą z szablonów strony internetowe. Jakiej licencji powinienem użyć dla tych szablonów? (#WMS)

Szablony są tak drobną rzeczą, że nie warto ich obejmować licencją typu copyleft. Zazwyczaj zastosowanie licencji copyleft do pomniejszych prac jest nieszkodliwe, ale szablony są przypadkiem szczególnym, ponieważ są łączone z danymi dostarczonymi przez użytkowników, a rozpowszechniane jest powstałe połączenie. Dlatego zalecamy licencjonowanie szablonów na prostych liberalnych warunkach.

Niektóre szablony wywołują funkcje JavaScriptu. Skoro kod w języku JavaScript jest często niebanalny, to warto go objąć licencją typu copyleft. Ponieważ szablony będą połączone z danymi pochodzącymi od użytkowników, niewykluczone, że połączenie szablon + dane użytkownika + JavaScript zostałoby według prawa autorskiego uznane za pojedyncze dzieło. Trzeba wykreślić granicę pomiędzy danym kodem JavaScriptu (objętym warunkami typu copyleft), a kodem użytkownika (zwykle udostępnianym na warunkach niezgodnych z warunkami copyleft).

Schemat powyższej zawartości

Oto wyjątek licencyjny dla kodu JavaScript, dzięki któremu można to uzyskać:

As a special exception to GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes. In addition, the copyright holders of this code give you permission to combine this code with free software libraries that are released under the GNU LGPL. You may copy and distribute such a system following the terms of the GNU GPL for this code and the LGPL for the libraries. If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
W ramach specjalnego wyjątku w GPL, każdy plik HTML, który tylko wywołuje funkcje z tego kodu, i w tym celu dołącza go przez wskazanie, powinien być z punktu widzenia prawa autorskiego uważany za odrębne dzieło. Dodatkowo posiadacze praw autorskich do tego kodu udzielają zezwolenia na łączenie go z bibliotekami wolnego oprogramowania wydanymi na licencji GNU LGPL. Możesz kopiować i dystrybuować tak powstały system przestrzegając warunków GNU GPL dla tego kodu oraz LGPL dla bibliotek. Jeśli zmodyfikujesz ten kod, możesz rozszerzyć niniejszy wyjątek na swoją wersję kodu, ale nie masz takiego obowiązku. Jeśli nie tego chcesz, usuń niniejsze oświadczenie ze swojej wersji.

Czy mogę wydać program na zasadach GPL, który stworzyłem używając niewolnych narzędzi? (#NonFreeTools)

Z punktu widzenia licencji kodu źródłowego zwykle nie robi różnicy których programów używacie do edycji kodu źródłowego, do kompilacji, do badania, czy do nagrania.

Jednakże jeśli łączycie niewolne biblioteki z kodem źródłowym, stwarza to problem z którym musicie się uporać. Nie powstrzymuje to wydania kodu źródłowego na zasadach GPL, ale jeśli biblioteki nie wchodzą w wyjątek „biblioteki systemowej” to powinniście załączyć wyraźny wyjątek dający zezwolenie na łączenie. Wpis FAQ o używaniu bibliotek niekompatybilnych z GPL ma więcej informacji o tym jak to zrobić.

Czy istnieją tłumaczenia GPL na inne języki? (#GPLTranslations)

Przydatne byłoby mieć tłumaczenia GPL na języki inne niż angielski. Ludzie nawet napisali tłumaczenia i przesłali je nam. Ale nie ośmieliliśmy się zatwierdzić ich jako oficjalnie ważne. Niesie to za sobą ryzyko tak wielkie, że nie odważymy się go zaakceptować.

Dokument prawny do pewnego stopnia przypomina program. Tłumaczenie go jest jak przełożenie programu z jednego języka i systemu operacyjnego na inny. Potrafi to zrobić tylko prawnik bardzo dobrze znający oba języki, a nawet wówczas istnieje ryzyku wprowadzenia błędu.

Jeśli mielibyśmy zatwierdzić, oficjalnie, jakieś tłumaczenie GPL, dalibyśmy każdemu uprawnienie do zrobienia czegokolwiek, na co pozwalałoby tłumaczenie. Jeśli byłoby całkowicie wierne, to świetnie. Ale jeśli byłby w nim błąd, to skutki mogłyby być katastrofą nie do naprawienia.

Jeśli jakiś program ma błąd, możemy wypuścić nową wersję, i ostatecznie stara mniej czy bardziej zniknie. Jednak kiedy już damy komuś zezwolenie na działanie zgodnie z jakimś konkretnym tłumaczeniem, nie mamy żadnych możliwości odwołania tego pozwolenia jeśli później znajdziemy w nim błąd.

Pomocni ludzie czasem oferują się, że zrobią dla nas tłumaczenie. Gdyby kłopot polegał na znalezieniu kogoś, kto miałby to zrobić, to byłby rozwiązany. Jednak faktycznym problemem jest ryzyko błędu, a propozycja wykonania prac nie oddala tego ryzyka. W żaden sposób nie moglibyśmy zatwierdzić tłumaczenia napisanego przez kogoś, kto nie jest prawnikiem.

Z tego powodu, na razie, nie zatwierdzamy tłumaczeń GPL jako ogólnie ważnych i wiążących. Natomiast robimy dwie rzeczy:

  • Kierowanie ludzi do nieoficjalnych tłumaczeń. To znaczy, że pozwalamy na pisanie tłumaczeń GPL, ale nie zatwierdzamy ich jako prawnie ważnych i wiążących.

    Tłumaczenie niezatwierdzone nie ma mocy prawnej i powinno to być w nim stwierdzone wprost. Powinno być oznaczone jak niżej:

    This translation of the GPL is informal, and not officially approved by the Free Software Foundation as valid. To be completely sure of what is permitted, refer the original GPL (in English).
    To tłumaczenie GPL jest nieformalne i nie jest oficjalnie zatwierdzone przez Free Software Foundation jako wiążące. Pełną pewność, co do tego, co jest dozwolone, uzyskasz odwołując się do oryginalnej GPL (w języku angielskim).

    Ale niezatwierdzone tłumaczenie może służyć jako wskazówka, co do rozumienia angielskiej GPL. Dla wielu użytkowników to wystarcza.

    Jednakże firmy korzystające z oprogramowania GNU w działalności komercyjnej i osoby publicznie rozpowszechniające je przez ftp powinny sprawdzić prawdziwą angielską GPL, by upewnić się, na co pozwala.

  • Publikowanie tłumaczeń ważnych tylko w jednym kraju.

    Rozważamy pomysł publikacji tłumaczeń, które byłyby oficjalnie ważne tylko w jednym kraju. W ten sposób, jeśli popełniono by pomyłkę, byłaby ograniczona do jednego kraju, a szkoda nie byłaby nazbyt wielka.

    Mimo to, nadal do wykonania tłumaczenia potrzebne będą spore umiejętności i wysiłek ze strony życzliwego i uzdolnionego prawnika, więc nie możemy obiecać żadnych takich tłumaczeń w najbliższym czasie.

Jeśli interpreter pewnego języka programowania ma licencję, która jest niezgodna z GPL, to czy mogę na nim uruchamiać programy objęte GPL? (#InterpreterIncompat)

Jeśli ten interpreter tylko interpretuje język, to tak. Interpretowany program to, dla interpretera, tylko dane — GPL nie nakłada ograniczeń na narzędzia, jakimi przetwarza się program.

Jednakże, gdy interpreter jest rozszerzony tak, by udostępniać „powiązania” z innymi mechanizmami wspomagającymi (często, choć niekoniecznie, z bibliotekami), interpretowany program praktycznie rzecz biorąc jest łączony z mechanizmami, z jakich korzysta za pośrednictwem tych powiązań. Przykładem takiego mechanizmu jest JNI, czyli Java Native Interface: biblioteki, do których sięga się tą metodą, są dynamicznie konsolidowane z programami Javy, które je wywołują.

Zatem jeśli te mechanizmy wspomagające są wydane na licencji niezgodnej z GPL, to sytuacja jest taka, jak w przypadku każdego innego sposobu połączenia z biblioteką niezgodną z GPL. Skąd wynika, że:

  1. Jeśli napiszesz kod i wydasz go na GPL, możesz ustanowić jawny wyjątek zezwalający na łączenie go z danym mechanizmem niezgodnym z GPL.
  2. Jeśli napiszesz i wydasz na GPL program, a zaprojektowałeś go specjalnie do pracy z tymi mechanizmami, ludzie mogą uważać to za niejawny wyjątek zezwalający im na łączenie z tymi mechanizmami. Jednak jeśli tak właśnie zamierzałeś, lepiej powiedzieć to wprost.
  3. Nie możesz wziąć cudzego kodu objętego GPL i użyć go w opisany sposób, czy dodać do niego takiego wyjątku. Mogą go dodać tylko posiadacze praw autorskich do kodu.
Kto ma moc wymuszenia warunków GPL? (#WhoHasThePower)

Ponieważ GPL jest licencją praw autorskich, prawnie upoważnieni do egzekwowania przestrzegania GPL są posiadacze praw autorskich do danego oprogramowania. Jeśli zauważycie naruszenie GPL, powinniście poinformować autorów programu, o który chodzi. Albo są oni posiadaczami praw autorskich albo pozostają z nimi w kontakcie. Dowiedzcie się więcej na temat zgłaszania naruszeń GPL.

Jeśli w języku obiektowym, takim jak Java, korzystam bez modyfikacji z klasy, która jest objęta GPL, a utworzę jej podklasę, to w jaki sposób GPL wpływa na powstały większy program? (#OOPLang)

Utworzenie podklasy to wykonanie pracy pochodnej. Dlatego warunki GPL będą dotyczyć całości programu, w którym utworzono podklasę klasy objętej GPL.

Czy jeśli przeniosę swój program na platformę GNU/Linux, to znaczy że muszę wydać go jako wolne oprogramowanie na GPL czy jakiejś innej licencji wolnego oprogramowania? (#PortProgramToGPL)

Ogólnie rzecz biorąc, odpowiedź brzmi: nie – nie jest to prawnie wymagane. W konkretnym przypadku odpowiedź zależy od tego, z jakich bibliotek chcecie skorzystać i jakie są ich licencje. Większość bibliotek systemowych używa albo GNU Lesser GPL, albo GNU GPL z dodanym wyjątkiem zezwalającym na łączenie tej biblioteki z czymkolwiek. Tych bibliotek można używać w programach, które nie są wolne; jednak Lesser GPL zawiera pewne wymagania, których musisz przestrzegać.

Część bibliotek wydana jest na samej licencji GNU GPL — by z nich korzystać musisz użyć licencji zgodnej z GPL. Zwykle są to jednak biblioteki bardziej specjalizowane i podobnych nie miałeś na poprzedniej platformie, więc zapewne nie będziesz ich chciał ich użyć przy zwykłym przeniesieniu programu.

Oczywiście, Twoje oprogramowanie nie jest wkładem na rzecz naszej społeczności jeśli nie jest wolne, a ludzie ceniący sobie wolność odmówią używania go. Będą go używać tylko ci, którzy decydują się na rezygnację ze swej wolności, co znaczy, że skutkiem tego będzie ono funkcjonować jako pokusa, by ludzie porzucili wolność.

Jeśli masz nadzieję pewnego dnia spojrzeć wstecz na swoją karierę i mieć poczucie, że przyczyniłeś się do rozwoju dobrego i wolnego społeczeństwa, powinieneś swe programy uczynić wolnymi.

Właśnie dowiedziałem się, że pewna firma ma kopię programu objętego GPL, a żeby go dostać trzeba zapłacić. Czy nie naruszają GPL nie udostępniając go w Internecie? (#CompanyGPLCostsMoney)

Nie. GPL nie wymaga, by ktokolwiek do dystrybucji używał Internetu. Nie wymaga też, by ktokolwiek indywidualnie redystrybuował program. A nawet (poza jednym specjalnym przypadkiem), jeśli ktoś czasem zdecyduje się na redystrybucję danego programu, GPL nie stwierdza, że musi przekazać kopię konkretnie Tobie, czy jakiejkolwiek innej konkretnej osobie.

Wymaganie jest inne: musi on mieć swobodę przekazania Ci kopii jeśli tego zechce. Po tym, gdy posiadacz praw autorskich przekaże kopię programu komuś innemu, ten ktoś może potem przekazać go Tobie czy komukolwiek innemu, jak uważa za stosowne.

Czy mogę wydać program na licencji stanowiącej, że można rozpowszechniać jego zmodyfikowane wersje na GPL, ale samego oryginału nie można rozpowszechniać na GPL? (#ReleaseNotOriginal)

Nie. Taka licencja byłaby wewnętrznie sprzeczna. Przyjrzyjmy się, jakie implikacje pociąga za sobą dla mnie jako użytkownika.

Załóżmy, że zaczynam od oryginalnej wersji (nazwijmy ją wersją A), dokładam trochę kodu (powiedzmy, 1000 wierszy) i wypuszczam taką zmodyfikowaną wersję (nazwijmy ją B) na GPL. Według GPL każdy może ponownie zmienić wersję B i wypuścić wynik na warunkach GPL. Zatem ja sam (czy ktokolwiek inny) mogę usunąć te 1000 wierszy, tworząc wersję C, która będzie mieć ten sam kod, co wersja A, ale będzie objęta GPL.

Mógłbyś usiłować zablokować tę drogę, pisząc wprost w licencji, że nie wolno mi, przez usunięcie wierszy z wersji B, odtworzyć niczego identycznego z wersją A na warunkach GPL. Wówczas jednak będzie to oznaczać, że nie mogę w pełni wykorzystywać wersji B w każdy sposób, na jaki zezwala GPL. Inaczej mówiąc, tak utworzona licencja w rzeczywistości nie pozwalałaby użytkownikowi na wypuszczanie zmienionych wersji, takich jak B, na GPL.

Czy przekazanie kopii firmie, w której ma się udziały większościowe i którą się kontroluje, przedsiębiorstwu zależnemu, stanowi rozprowadzanie? (#DistributeSubsidiary)

Kwestia, czy przekazanie kopii do (lub od) firmy zależnej stanowi „rozprowadzanie”, powinna być rozstrzygana w każdym z przypadków na podstawie przepisów prawa autorskiego stosownej jurysdykcji. GPL nie może być i nie jest nadrzędna w stosunku do lokalnego prawa. Przepisy obowiązujące w USA są w tym punkcie nie całkiem jasne, ale wydaje się, że nie uznają takiego przypadku za rozprowadzanie.

Jeśli w jakimś państwie uważa się to za rozprowadzanie i spółka zależna musi uzyskać prawo do redystrybuowania danego programu, to i tak nie ma praktycznej różnicy. Spółka zależna jest kontrolowana przez macierzystą — z prawami czy bez, nie będzie redystrybuować programu, póki jej firma macierzysta o tym nie zdecyduje.

Czy instalatory programów mogą prosić o kliknięcie wyrażające zgodę na akceptację GPL? Jeśli dostanę jakieś programy na GPL, to czy muszę się na coś zgadzać? (#ClickThrough)

W niektórych systemach pakietów dystrybucyjnych oprogramowania występuje etap instalacji, na którym wymaga się od użytkownika kliknięcia lub w jakiś inny sposób wyrażenia akceptacji warunków GPL. Nie jest to ani wymagane, ani zakazane. Z kliknięciem, czy bez niego, reguły GPL pozostają takie same.

Samo wyrażenie zgody na GPL nie nakłada na Ciebie żadnych zobowiązań. Nie musisz się na nic zgadzać, jeśli chcesz tylko używać programu, który wydano na licencji GNU GPL. Obowiązki masz wyłącznie wtedy, kiedy modyfikujesz lub rozprowadzasz taki program. Jeśli naprawdę przeszkadza Ci akceptowanie GPL kliknięciem, nic nie stoi na przeszkodzie, możesz zhakować program, żeby pomijał ten krok.

Chcę zapakować oprogramowanie GPL za pomocą jakiegoś instalatora. Czy instalator musi mieć licencję kompatybilną z GPL? (#GPLCompatInstaller)

Nie. Instalator a pliki, które instaluje to są osobne dzieła. Przez to warunki GPL nie dotyczą programu do instalacji.

Niektórzy dystrybutorzy oprogramowania na warunkach GPL wymagają ode mnie w swoich EULA lub w ramach procesu pobrania do „zagwarantowania” że jestem zlokalizowany w Stanach Zjednoczonych lub zamierzam rozpowszechniać oprogramowanie w zgodności z odpowiednimi przepisami dotyczącymi kontroli eksportu. Dlaczego robią to i jest to naruszenie zobowiązań dystrybutorów względem GPL? (#ExportWarranties)

Nie jest to naruszenie GPL. Większość z nich to komercyjne przedsiębiorstwa sprzedające bezpłatne dystrybucje oprogramowania i powiązane usługi, które starają się zmniejszyć własne ryzyko prawne, nie kontrolować Waszego zachowania. Prawo kontroli eksportowej w Stanach Zjednoczonych może sprawiać, że będą odpowiedzialni jeśli świadomie eksportują oprogramowanie do niektórych krajów lub jeśli świadomie dają oprogramowanie do podmiotów, które dokonają taki eksport. Prosząc o te twierdzenia od swoich klientów i innych, do których rozprowadzają oprogramowanie, chronią się na wypadek gdyby władze zapytały o wiedzę o tym, gdzie oprogramowanie zostało rozprowadzone. Nie ograniczają tego, co możesz robić z oprogramowaniem, zapobiegając jedynie temu, że zostaną obwinieni za to, co potem robicie. Ponieważ nie umieszczają dodatkowych ograniczeń do oprogramowania, nie naruszają one sekcji 10 z GPLv3 ani sekcji 6 GPLv2.

FSF sprzeciwia się zastosowaniu amerykańskich przepisów dotyczących kontroli eksportu względem wolnego oprogramowania. Nie tylko takie prawa są niezgodne z ogólnym celem wolności oprogramowania, ale też nie mogą one osiągnąć pożądanego celu rządu, ponieważ wolne oprogramowanie jest obecnie i powinno być dostępne ze stron w prawie każdym kraju, w tym w krajach, które nie posiadają przepisów dotyczących kontroli eksportu i nie biorą udziału w amerykańskich embargach. Naszym zdaniem, w związku z tym że żaden rząd nie został pozbawiony wolnego oprogramowania przez amerykańskie przepisy dotyczące kontroli eksportu, a żadni obywatele żadnego kraju nie powinni zostać pozbawieni wolnego oprogramowania, niezależnie od polityki ich rządu. Kopie wszystkich programów objętych GPL publikowanych przez FSF mogą być uzyskane od nas bez deklaracji miejsca zamieszkania czy zamiarów. Jednocześnie FSF rozumie pragnienie dystrybutorów komercyjnych znajdujących się w Stanach Zjednoczonych, aby przestrzegać prawa amerykańskie. Mają prawo wyboru, komu udostępniają kopie wolnego oprogramowania; sprawowanie tego prawa nie naruszają GPL, chyba że dodaliby ograniczenia poza tymi dozwolonymi przez GPL.

Czy mogę używać oprogramowanie objęte GPL na urządzeniu, które przestanie działać jeśli klienci przestaną płacić za prenumeratę? (#SubscriptionFee)

Nie. W tym przypadku warunek płacenia prenumeraty ogranicza użytkownikowi prawo do uruchamiania programu. To jest dodatkowy wymóg niedozwolony przez licencję GPL.

Jak dokonać aktualizacji z (L)GPLv2 do (L)GPLv3. (#v3HowToUpgrade)

Po pierwsze załącz nową wersję licencji w pakiecie. Jeśli używacie LGPLv3 to upewnijcie się że są to kopie i GPLv3 i LGPLv3 ponieważ LGPLv3 teraz istnieje jako zestaw dodatkowych zezwoleń nałożonych na GPLv3.

Po drugie, zamień wszystkie ogłoszenia o licencji v2 (zwykle w pierwszych wierszach każdego pliku) z nowym tekstem sugerowanym na stronie GNU licenses howto. To jest barziej przyszłościowe ponieważ już nie zawiera fizycznego adresu FSF.

Oczywiście jakikolwiek inny tekst opisujący program (typu plik README), który miał wzmiankę o licencji pakietu, też powinien zostać odpowiednio zaktualizowany.

W jaki sposób GPLv3 ułatwia dystrybucję przez BitTorrent? (#BitTorrent)

Ponieważ GPLv2 zostało napisane zanim dystrybucja oprogramowania przez peer-to-peer, jest trudno spełnić wymagania jeśli w ten sposób rozprowadzacie kod. Najlepszym sposobem aby upewnić się, że spełniacie warunki na rozprowadzanie oprogramowania GPLv2 przez BitTorrent byłoby, aby cały kod źródłowy był w tym samym torencie, co jest kosztowne.

GPLv3 rozwiązuje ten problem na dwa sposoby. Po pierwsze osoby, które pobierają ten torent a przy okazji wysyłają dane innym nic nie muszą robić. To wynika z części 9, która mówi „Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance [of the license].” [Poboczne rozprowadzanie objętego dzieła w trakcie pobierania, jako efekt uboczny w wyniku używania przesyłu peer-to-peer, nie wymaga przyjęcia licencji.]

Po drugie, część 6(e) licencji GPLv3 daje dystrybutorom – tym, którzy celowo seedują torenty – jasny sposób, aby dostarczyć źródło, podając gdzie jest dostępny na publicznym serwerze sieciowym. To zapewnia, że każdy kto chce otrzymać źródło jest w stanie, a nie jest zbyt uciążliwe dla dystrybutora.

Co to jest tivoizacja? W jaki sposób GPLv3 jej zapobiega? (#Tivoization)

Niektóre urządzenia używają wolne oprogramowanie które można by aktualizować, ale zostały zaprojektowany aby użytkownicy nie mogli modyfikować oprogramowania. Jest wiele sposobów, aby to zrobić; przykładowo sprzęt sprawdza sumę kontrolną oprogramowania i się wyłącza jeśli nie jest podpisana. Ci producenci spełniają wymogi GPLv2 bo dostarczają Wam kod źródłowy, ale nadal nie macie wolności modyfikować używanego oprogramowania. Tę praktykę nazywamy tivoization.

Gdy ludzie rozprowadzają Produkty Dla Użytkowników, które zawierają oprogramowanie na warunkach GPLv3, część 6 wymaga aby dostarczyli informacje potrzebne, aby modyfikować to oprogramowanie. Produkty Dla Użytkowników [User Products] to termin zdefiniowany w licencji. Przykłady to przenośne odtwarzacze muzyki, sprzęt do nagrywania wideo, oraz sprzęt bezpieczeństwa domowego.

Czy GPLv3 zabrania DRM? (#DRMProhibited)

Nie robi tego; możecie używać kod na warunkach GPLv3 aby rozwinąć jakąkolwiek technologię DRM chcecie. Jednakże jeśli to zrobicie, część 3 mówi, że system nie będzie się liczył jako efektywna ochrona technologiczna [effective technological „protection” measure], co oznacza że jeśli ktoś złamie DRM, będzie mógł także rozprowadzać swoje oprogramowanie, bez ograniczeń DMCA i tym podobnych praw.

Jak zwykle, licencja GNU GPL nie ogranicza co ludzie robią z oprogramowaniem, a jedynie ogranicza ograniczanie innych.

Czy możemy używać GPL jako licencji do sprzętu? (#GPLHardware)

Jakiekolwiek dzieła, które podlegają prawom autorskim, mogą mieć jako licencję GPL. Można użyć GPLv3 jako licencji przedmiotów objętymi prawami podobnymi do autorskich, jak maski półprzewodnikowe. Przykładowo, możecie wydać rysunek techniczny sprzętu lub obwodu na warunkach GPL.

W wielu sytuacjach, prawa autorskie nie obejmują fabrykacji sprzętu z rysunku. W tych sytuacjach wasza licencja na rysunku nie ma wpływu na wytwarzaniu czy sprzedaży sprzętu, bez względu na licencję, którą użyjecie. W przypadku gdy prawa autorskie obejmują wytwarzanie sprzętu, na przykład z maskami IC, GPL sobie z tym radzi.

Używam kryptografii aby podpisywać swój kod i zapewniać o autentyczności. Czy to prawda, że GPLv3 wymusza na mnie oddania prywatnych kluczy, za pomocą których podpisuje kod? (#GiveUpKeys)

Nie. Musisz oddać prywatne klucze podpisu jedynie jeśli przekazaliście oprogramowanie GPL w Produkcie Dla Użytkowników, a sprzęt sprawdza klucz zanim działa. W tym konkretnym przypadku musielibyście każdemu kto jest właścicielem sprzętu, na żądanie, podać klucz do podpisywania i instalowania zmodyfikowanego oprogramowania, aby sprzęt działał. Jeśli każda sztuka sprzętu ma inny klucz, to każdemu użytkownikowi musicie dać tylko klucz do jego sprzętu.

Czy GPLv3 wymaga aby głosujący mogli zmienić oprogramowanie w maszynach do głosowania? (#v3VotingMachine)

Nie. Firmy rozprowadzające sprzęt zawierający oprogramowanie na zasadach GPLv3 muszą dostarczyć kod źródłowy i informacje instalacyjne tym, którzy mają kopię plików wykonywalnych. Osoba głosująca, która używa maszynę do głosowania (podobnie jak dowolny inny elektrioniczny kiosk) nie wchodzi w jej posiadanie, nawet tymczasowo, więc głosujący nie staje się posiadaczem plików wykonywalnych w niej zawartych.

Zwróćcie uwagę jednak, że głosowanie to bardzo wyjątkowy przypadek. Tylko dlatego, że oprogramowanie w komputerze jest wolne, nie znaczy że można temu komputerowi zaufać w sprawie wyborów. Myślimy, że komputerom nie można wierzyć w sprawie głosowania. Głosowanie powinno się odbywać na kartkach papieru.

Czy GPLv3 posiada „klauzulę o odwecie patentowym” [patent retaliation clause]? (#v3PatentRetaliation)

W pewnym sensie, tak. Część 10 zabrania pozwy sądowe na bazie patentów tym, którzy przekazują oprogramowanie, przeciwko innym odbiorcóm. Jeśli ktoś by to mimo wszystko zrobił, część 8 objaśnia jak utraciliby swoją licencję i wszelkie powiązane licencje patentowe.

Czy mogę używać fragmenty kodu źródłowego objętego GPL w dokumentacji, która jest objęta licencją niekompatybilną z GPL? (#SourceCodeInDocumentation)

Jeśli fragmenty są na tyle małe, że możesz je użyć na zasadach dozwolonego użytku [ang. fair use], to tak. W przeciwnym przypadku, nie.

Początek sekcji 6 GPLv3 stanowi, że mogę przekazać dzieło w postaci binarnej „na zasadach w sekcjach 4 i 5” pod warunkiem, że także spełniam warunki sekcji 6. Co to znaczy? (#v3Under4and5)

To znaczy, że wszystkie zezwolenia i warunki, które pozwalają Wam na przekaz kodu źródłowego też dotyczą gdy przekazujecie kod wykonawczy: możecie pobierać opłatę, musicie zachować oznaczenia praw autorskich, itd.

Nasza firma posiada wiele patentów. Przez lata przyłączaliśmy się do projektów, których kod był rozprowadzany na warunkach „GPL w wersji 2 lub dowolnej późniejszej”, a projekt w całości był na tej samej licencji. Jeśli użytkownik zdecyduje użyć kod projektu (w tym nasz wkład) na zasadach GPLv3, czy automatycznie przekazaliśmy licencję na nasze patenty jak w przypadku GPLv3? (#v2OrLaterPatentLicense)

Nie. Gdy przekazujecie oprogramowanie na warunkach GPL, musicie przestrzegać warunków jednej konkretnej wersji licencji. Gdy to robicie, ta wersja licencji narzuca jakie macie obowiązki. Jeśli użytkownicy mogą wybrać późniejsze wersje licencji GPL, to jest ich dodatkowe prawo – nie wymaga to od Was, abyście wypełniali także warunki tej późniejszej wersji GPL.

Nie bierzcie tego za przyzwolenie na grożenie społeczeństwu swoimi patentami. W wielu krajach rozprowadzanie oprogramowania na warunkach GPLv2 daje odbiorcom domniemaną licencję patentową, aby mogli wykonywać swoje prawa na warunkach GPL. Nawet gdyby tego nie robiło, jeśli ktoś agresywnie egzekwowałby patenty, zostałby ogłoszony wrogiem społeczności i będziemy się bronić przed takim atakiem.

Jeśli rozprowadzam własnościowy program, który korzysta z biblioteki objętej LGPLv3, którą zmodyfikowałem, co to jest „contributor version” jeśli chodzi o zakres licencji na patenty – czy to jest wyłącznie biblioteka, czy całość? (#LGPLv3ContributorVersion)

Znaczenie „contributor version” to tylko Wasza wersja biblioteki.

Czy GPLv3 jest kompatybilny z GPLv2? (#v2v2v3Compatibility)

Nie. Niektóre wymagania zostały zmienione z GPLv2 na GPLv3, co oznacza, że dokładne wymogi GPLv2 nie są obecne w GPLv3 i odwrotnie. Na przykład warunki Terminacji GPLv3 są znacznie bardziej przyzwalające niż w przypadku GPLv2, co znaczy, że są inne niż warunki Terminacji w GPLv2.

W związku z tym, licencje są niekompatybilne: jeśli spróbujecie połączyć kod wydany na GPLv2 z kodem GPLv3, naruszylibyście część 6 GPLv2.

Jednakże jeśli kod jest wydany na warunkach GPL „wersja druga lub późniejsza” [ang. GPL version 2 or later] to byłby kompatybilny z GPLv3, bo GPLv3 jest jedną z dozwolonych opcji.

Czy GPLv2 ma wymóg na dostarczanie informacji o instalacji? (#InstInfo)

GPLv3 jawnie wymaga, aby redystrybucja zawierała pełne niezbędne „informacje o instalacji” [installation information]. GPLv2 nie używa tego terminu, ale wymaga aby dystrybucje zawierały skrypty używane do zarządzania kompilacją i instalacją pliku wykonywalnego [scripts used to control compilation and installation of the executable] z kompletnym i odpowiadającym kodem źródłowym. Obejmuje to część, ale nie wszystko, co GPLv3 nazywa „informacją o instalacji”. Wymaganie GPLv3 jest silniejsze.

Co to znaczy „wyleczyć” [cure] naruszenie GPLv3? (#Cure)

Wyleczyć naruszenie znaczy dostosować swoje zachowanie, aby spełniać wymogi licencji.

Klauzula o braku gwarancji i odrzuceniu odpowiedzialności w GPLv3 wydają się być dostosowane do prawa USA. Czy mogę dodać własne zrzeczenia? (#v3InternationalDisclaimers)

Tak. Część 7, a konkretnie 7(a), zezwala na dodawanie własnych zrzeczeń.

Mój program ma interfejs, który jest nie-wizualny. W jaki sposób mogę spełnić warunek Appropriate Legal Notices zawarty w GPLv3? (#NonvisualLegalNotices)

Musicie jedynie zapewnić, że Appropriate Legal Notices są łatwodostępne użytkownikom interfejsu. Przykładowo, jeśli interfejs jest dźwiękowy, możecie wbudować komendę, która przeczyta powiadomienia na głos.

Czy jeśli dam kopię programu objętego GPLv3 współpracownikowi w firmie, to czy to jest uważane za „przekazywanie” [conveyed] temu współpracownikowi? (#v3CoworkerConveying)

Tak długo jeśli oboje używacie oprogramowanie podczas swojej pracy w firmie, a nie prywatnie, to odpowiedź brzmi nie. Kopie należą do firmy, a nie do Ciebie czy Twojego współpracownika. To kopiowanie jest propagowanie, nie przekazywanie [conveying], bo firma nie udostępnia kopii innym.

Czy jeśli rozprowadzam program na zasadach GPLv3 to czy mogę dawać gwarancję, która staje się nieważna jeśli użytkownik zmodyfikuje program? (#v3ConditionalWarranty)

Tak. Podobnie jak sprzęt nie musi mieć gwarancji jeśli użytkownicy zmodyfikują zawarte oprogramowanie, nie jesteście zobowiązani dostarczyć gwarancji obejmującej wszystkie aktywności, których ktoś może się podjąć za pomocą oprogramowania na warunkach GPLv3.

Dlaczego zdecydowaliście się na napisanie licencji GNU Affero GPLv3 jako odrębnej licencji? (#SeparateAffero)

Wczesne brudnopisy GPLv3 zezwalały wydawcom dodawać wymagania Affero-podobne na publikację źródła w części 7. Jednakże, niektóre firmy rozwijające i polegające na wolnym oprogramowaniu uważały ten wymóg za zbyt obciążający. Chcą unikać kodu z tym wymogiem i wyraziły zaniepokojenie kosztom administracyjnym, aby sprawdzać czy kod ma ten dodatkowy wymóg. Wydając GNU Affero GPLv3 jako odrębną licencję, z prowizjami zarówno w niej i w GPLv3 aby linkować kod na warunkach tych licencji, osiągnęliśmy wszystkie nasze zamierzone cele, jednocześnie ułatwiając rozróżnienie który kod ma dodatkowy wymóg o publikacji kodu źródłowego.

Dlaczego wynaleźliście nowe terminy „propagate” [rozprowadzać] i „convey” [przekazywać] w GPLv3? (#WhyPropagateAndConvey)

Termin „rozprowadzać” [distribute] używany w GPLv2 został zapożyczony z ustaw o praw autorskich USA. Z biegiem lat dowiedzieliśmy się, że niektóre jurysdykcje używają tego samego terminu we własnych ustawach o prawach autorskich, ale nadają różne znaczenia. Wymyśliliśmy te nowe terminy, aby jasno wyrazić nasze intencje niezależnie od tego gdzie licencja będzie interpretowana. Te terminy nie są używane w żadnej ustawie na świecie dotyczącej praw autorskich, więc my dostarczamy własnej definicji bezpośredno w tekście licencji.

Chciałbym aby licencją dla mojego programu był GPL, ale jednocześnie chciałbym zaznaczyć, że nie może być używany do celów militarnych lub komercyjnych. Czy mogę to zrobić? (#NoMilitary)

Nie, bo te dwa cele są sobie sprzeczne. Licencja GNU GPL jest zaprojektowana właśnie, aby zapobiegać dodawaniu dodatkowych ograniczeń. Licencja GPLv3 pozwala na niektóre ograniczenia, w części 7, ale jakiekolwiek inne restrykcjie mogą być usunięte przez użytkowników.

Bardziej ogólnie, licencja, która ogranicza, kto może korzystać z programu lub do czego jest używany nie jest licencją wolnego oprogramowania.

Czy „przekazywać” [convey] w GPLv3 to to samo, co „rozprowadzać” [distribute] w GPLv2? (#ConveyVsDistribute)

Tak, mniej więcej. Gdy egzekwowaliśmy GPLv2 dowiedzieliśmy się, że niektóre jurysdykcje używają słowa „rozprowadzać” [distribute] w swoich ustawach o prawach autorskich, ale nadały inne znaczenia. Wymyśliliśmy nowy termin, aby jasno określić nasze intencje i uniknąć problemów z różnic w definicji.

GPLv3 używa przykład „udostępniania publicznego” jako przykład propagowania [propagation]. Co to znaczy? Czy udostępnianie to forma przekazu? (#v3MakingAvailable)

Przykładowo umieszczanie oprogramowania w sieci publicznej lub na serwerze FTP byłoby „udostępnianie publiczne”. Po tym jak to uczynicie, może minąć trochę czasu zanim ktokolwiek faktycznie dostanie oprogramowanie od Was – ale ponieważ mogłoby się to zdarzyć natychmiast, musicie także natychmiast spełnić wymagania GPL. Dlatego dodaliśmy to do definicji przekazywania [conveying].

Skoro rozprowadzanie i udostępnianie publiczności to dwie formy propagowania, które są uważane za przekazywanie [conveying] w GPLv3, jakie formy propagowania nie byłyby przekazywaniem? (#PropagationNotConveying)

Robienie kopii oprogramowania dla siebie jest główną formą propagowania [propagation], która nie jest przekazywaniem [conveying]. Robilibyście tak gdy istalujecie oprogramowanie na kilku komputerach, lub gdy robicie kopie zapasowe.

Czy używanie prelinking z bibliotekami systemu w przypadku pliku binarnego objętego GPL, aby zwiększyć wydajność, liczy się jako modyfikacja? (#Prelinking)

Nie. Prelinking jest jednym z etapów kompilacji; nie stwarza dodatkowych wymogów licencyjnych ponad te, które są spowodowane przez pozostałe aspekty kompilacji. Jeśli wolno Wam w ogóle łączyć program z bibliotekami, to także wolno robić prelinking. Jeśli rozprowadzacie prelinkowany kod wykonawcy, musicie dostosować się do warunków części 6.

Czy jeśli ktoś zainstaluje oprogramowanie objęte GPL na laptopie a potem pożyczy ten laptop koledze bez udostępniania źródła, czy naruszyli GPL? (#LaptopLoan)

Nie. W jurysdykcjach gdzie to sprawdziliśmy, tego rodzaju pożyczanie nie liczyłoby się jako przekazywanie [conveying]. Właściciel laptopu nie miałby żadnych obowiązków wynikłych z GPL.

Jeśli dwie firmy próbują objeść wymaganie dostarczania „danych instalacyjnych” [Installation Information] tak, że jedna firma wydaje podpisane oprogramowanie, a druga wydaje oprogramowanie użytkownika [User Product], które tylko uruchamia oprogramowanie podpisane przez pierwszą firmę. Czy to jest naruszenie GPLv3? (#TwoPartyTivoization)

Tak. Jeśli dwa podmioty współpracują, aby obejść wymogi GPL, mogą oba być pozwane o naruszenie praw autorskich. Definicja słowa przekazać [convey] jasno określa poczynania w wyniku których podmiot byłby odpowiedzialny za naruszenie pośrednie [secondary infringement].

Czy spełniam wymogi GPLv3 jeśli oferuję binaria na serwerze FTP a kod źródłowy przez link do repozytorium typu CVS lub Subversion? (#SourceInCVS)

To jest dozwolone tak długo jak robienie chekout kodu źródłowego nie jest uciążliwe lub ograniczone. Ktokolwiek jest w stanie pobrać Wasz kod wykonywalny powinien być w stanie zrobić check out ze systemu kontoli wersji, używając publicznie dostępnego, wolnego, klienta. Użytkownicy powinni mieć jasne i wygodne instrukcje jak otrzymać źródło dokładnie tego kodu, którego maja pliki wykonywalne – mogą niekoniecznie chcieć najnowszy niestabilny kod.

Czy ktoś, kto przekazuje oprogramowanie objęte GPLv3 w produkcie użytkownika może używać zdalnej atestacji aby uniemożliwić użytkownikowi modyfikację oprogramowania? (#RemoteAttestation)

Nie. Definicja informacji instalacyjnych, która musi być dostarczona ze źródłem gdy oprogramowanie jest przekazane w ramach produktu użytkownika jasno określa: „Informacja musi być wystarczająca, aby zapewnić, że dalsze funkcjonowanie zmodyfikowanego kodu rozruchowego nie jest zatrzymane ani zakłócone jedynie dlatego, że zostało zmienione.” [“The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.”] Jeśli urządzenie używa zdalnej atestacji w jakiś sposób, informacja instalacyjna musi dostarczyć sposóbu, aby zmodyfikowane oprogramowanie ogłaszało się jako prawowite.

Co znaczą „reguły i protokoły komunikacji przez sież” [rules and protocols for communication across the network] w GPLv3? (#RulesProtocols)

To są reguły dotyczące ruchu przesyłanego przez sieć. Przykładowo, jeśli jest limit na ilość zapytań, które można wysłać do serwera w jeden dzień, lub rozmiaru pliku który można gdzieś wysłać, Wasz dostęp do tych zasobów może być odrzucony jeśli tych ograniczeń nie przestrzegacie.

Te reguły nie dotyczą niczego niezwiązanego z danymi przeysłanymi przez sieć. Przykładowo jeśli serwer w sieci wysyła wiadomości dla użytkowników Waszego sprzętu, Wasz dostęp do sieci nie może być odrzucony jedynie dlatego, że zmodyfikowaliście oprogramowanie aby nie wyświetlało tych wiadomości.

Dystrybutorzy, którzy dostarczają dane instalacyjne [Installation Information] na zasadach GPLv3 nie są wymagani dostarczać „usług wsparcia” [support service] dla tego produktu. O jakie „usługi wsparcia” chodzi? (#SupportService)

To dotyczy usług dostarczanych przez wielu producentów sprzętu w zakresie instalowania, używania, czy rozwiązywaniu problemów z produktem. Jeśli poprawne funkcjonowanie urządzenia jest uzależnione od dostępu do usług sieciowych lub tym podobnych technologii, te powinne być nadal dostępne dla zmodyfikowanych wersji, ograniczone zgodnie z częścią 6 o dostępie do sieci.

W GPLv3 i AGPLv3, co to znaczy „pomimo innych części licencji” [notwithstanding any other provision of this License]? (#v3Notwithstanding)

To po prostu znaczy, że następujące warunki przeważają nad czymkolwiek innym w licencji, co może być z nimi sprzeczne. Przykładowo, bez tego tekstu, niektórzy mogliby twierdzić, że nie można łączyć kodu na warunkach GPLv3 z kodem na warunkach AGPLv3, bo dodatkowy warunek AGPL byłby zaklasyfikowany jako „dodatkowe ograniczenie” [further restrictions] w części 7 GPLv3. Ten tekst wyjaśnia, że nasza zamierzona interpretacja jest właściwa i możecie łączyć.

Ten tekst rozwiązuje konflikty jedynie między różnymi warunkami licencji. Gdy nie ma konfliktu między warunkami, musicie im obu sprostać. Te akapity nie dają Wam wolnej ręki w ignorowaniu reszty tekstu licencji – one jedynie wydzielają bardzo ograniczone wyjątki.

W licencji AGPLv3, gdy modyfikuję program w znaczeniu sekcji 13, jakie źródła powinienem oferować? (#AGPLv3CorrespondingSource)

Termin „odpowiadającego źródła” [Corresponding Source] jest zdefiniowany w sekcji 1 licencji i powinniście dostarczyć, co wymienia. Czyli, jeśli Wasza zmodyfikowana wersja polega na bibliotekach na warunkach innych licencji, takij jak licencja Expat lub GPLv3, odpowiadające źródło powinno także mieć te biblioteki (chyba, że to są biblioteki systemowe). Jeśli zmodyfikowaliście te biblioteki, musicie dostarczyć Wasze zmodyfikowane źródło.

Ostatnie zdanie pierwszego akapitu sekcji 13 jedynie umacnia to, co większość ludzi i tak się domyśli: mimo iż kombinacje z kodem na warunkach GPLv3 są objęte specjalnym wyjątkiem w sekcji 13, odpowiadające źródło powinno obejmować kod, który jest w ten sposób łączony z programem. To zdanie nie znaczy, że musicie dostarczyć jedynie kod który jest objęty GPLv3; ono znaczy, że taki kod nie jest wyłączony z definicji odpowiadjącego źródła.

W AGPLv3 co jest uważane za „interakcja z oprogramowaniem zdalnie przez sieć”? (#AGPLv3InteractingRemotely)

Jeśli program jest wprost zaprojektowany, aby otrzymywać polecenia od użytkowników i wysyłać odpowiedzi przez sieć, to spełnia te kryteria. Przykłady programów, które podchodzą pod tą kategorię to serwery www, serwery poczty, interaktywne aplikacje sieciowe, oraz serwery do gier sieciowych.

Jeśli program nie jest wprost zaprojektowany do interakcji z użytkownikiem przez sięc, ale jest uruchamiany w środowisku gdzie akurat tak jest, to nie podchodzi pod tą kategorię. Przykładowo, aplikacja nie musi dostarczyć źródła jedynie dlatego, że użytkownik ją uruchomił z powłoki SSH lub przez zdalną sesję X.

Jaka jest różnica między pojęciem „you” w GPLv3 a pojęciem „Legal Entity” w Apache License 2.0? (#ApacheLegalEntity)

Są w zasadzie identycznie. Definicja „podmiotu prawnego” [Legal Entity] w licencji Apache 2.0 jest bardzo standardowa w różnych dokumentach prawnych, do tego stopnia że byłoby bardzo dziwne gdyby sąd zinterpretował ten termin inaczej przy braku jasno sprecyzowanej definicji. Spodziewamy się, że sądy postąpią podobnie gdy wezmą pod uwagę GPLv3 i ropatrzą kto zalicza się jako odbiorca licencji.

Co oznacza „the Program” w kontekście GPLv3? Czy to jest każdy program kiedykolwiek wydany na zasadach GPLv3? (#v3TheProgram)

Termin „program” [the Program] oznacza jedno konkretne dzieło, którego licencją jest GPLv3 i który jest otrzymany przez konkretnego odbiorcy licencji od dystrybutora. Program to jest konkretne dzieło oprogramowania, które otrzymaliście w połączeniu z otrzymaniem licencji GPLv3, w takiej formie jak otrzymaliście.

„Program” nie może znaczyć „wszystkie dzieła kiedykolwiek wydane na warunkach GPLv3”; taka interpretacja nie miałaby sensu z paru powodów. Opublikowaliśmy analizę terminu „Program” dla tych, którzy chcieliby wiedzieć więcej.

Czy jeśli jedynie robię kopię i uruchamiam programy objęte GPL, bez rozpowszechniania ich, czego licencja ode mnie wymaga? (#NoDistributionRequirements)

Niczego. Licencja GPL nie ma żadnych warunków odnośnie tej czynności.

Jeśli oprogramowanie będące klientem sieciowym jest wydane na zasadach AGPLv3, czy musi być w stanie dostarczyć kod źródłowy serwerom, z którymi nawiązuje kontakt? (#AGPLv3ServerAsUser)

AGPLv3 wymaga, aby program oferował kod źródłowy do „wszystkich użytkowników wchodzących w interakcje z nim poprzez sieć komputerową” [all users interacting with it remotely through a computer network]. Nie ma znaczenia, czy nazywasz program „klientem” czy „serwerem”, tylko pytanie które musisz zadać jest czy nie ma oczekiwań, że człowiek będzie wchodzić w interakcje z programem zdalnie przez sieć.

Dla oprogramowania, które prowadzi serwer proxy, licencjonowany pod szyldem AGPL, jak mogę dostarczyć ofertę źródła dla użytkowników prowadzących interakcję? (#AGPLProxy)

Dla oprogramowania na serwerze proxy możesz skorzystać z oferty źródła poprzez normalną metodę dostarczania wiadomości dla użytkowników tego rodzaju proxy. Na przykład serwer Web proxy może użyć strony lądowania. Kiedy użytkownicy zaczynają używać proxy, możecie kierować ich na stronę z ofertą źródła wraz z innymi informacjami, które decydujecie się dostarczyć.

AGPL podaje, że musimy tworzyć ofertę dla „wszystkich użytkowników”. Jeśli wiesz, że użytkownik już wcześniej miał pokazaną ofertę dla aktualnej wersji oprogramowania, nie musicie powtórzyć temu użytkownikowi.

W jaki sposób licencje GNU są kompatybilne ze sobą nawzajem? (#AllCompatibility)

Różne licencje GNU są dość kompatybilne ze sobą. Jedyny przypadek kiedy nie bylibyście w stanie połączyć kod na dwóch z tych licencji to jeśli chcecie używać kod, który jest dostępny tylko na warunkach starszej wersji licencji, z kodem który jest na warunkach nowszej wersji.

Poniżej szczegółowa macierz kompatybilności różnych kombinacji licencji GNU, tworząc łatwe źródło do konkretnych przypadków. Zakłada, że ktoś napisał jakieś oprogramowanie na warunkach jednej z tych licencji, a Wy chcecie jakość połączyć tamten kod w projekt, który wydajecie (albo jako własne dzieło, albo jako modyfikację innego programu). Znajdźcie licencję swojego dzieła w kolumnie na górze tabeli, a licencję tego drugiego kodu w rzędzie po lewo. Komórka gdzie się spotkają powie Wam czy ta kombinacja jest dozwolona.

Gdy mówimy „copy code,” dokładnie to mamy na myśli: bierzecie fragment kodu z jednego źródła, z modyfikacjami lub bez, i wstawiacie do swojego programu, tworząc dzieło bazujące na tym pierwszym fragmencie kodu. „Używa biblioteki” znaczy, że nie kopiujecie żadnego kodu źródłowego bezpośrednio, a jedynie interaktujecie z nim przez linkowanie, importowanie, czy innych tego rodzaju mechanizmach, które łączą źródła razem gdy kod się kompiluje lub uruchamia.

Każde miejsce, w którym macierz podaje GPLv3, takie same oświadczenie o kompatybilności jest również prawdziwe dla AGPLv3.

Preskocz macież kompatybilności


Chcę wydać mój kod na zasadach:
Tylko GPLv2 GPLv2 lub nowszy GPLv3 lub nowszy Tylko LGPLv2.1 LGPLv2.1 lub nowszy LGPLv3 lub nowszy
Chcę kopiować kod na zasadach: Tylko GPLv2 OK OK [2] NIE OK: Kombinacja jest tylko na GPLv2 [7] OK: Kombinacja jest tylko na GPLv2 [7][2] NIE
GPLv2 lub nowszy OK [1] OK OK OK: Kombinacja jest na GPLv2 lub nowszy [7] OK: Kombinacja jest na GPLv2 lub nowszy [7] OK: Kombinacja jest na GPLv3 [8]
GPLv3 NIE OK: Kombinacja jest na GPLv3 [3] OK OK: Kombinacja jest na GPLv3 [3] OK: Kombinacja jest na GPLv3 [3] OK: Kombinacja jest na GPLv3 [8]
Tylko LGPLv2.1 OK: Przekażcie skopiowany kod na GPLv2 [7] OK: Przekażcie skopiowany kod na GPLv2 lub nowszy [7] OK: Przekażcie skopiowany kod na GPLv3 lub nowszy [7] OK OK [6] OK: Przekażcie skopiowany kod na GPLv3 [7][8]
LGPLv2.1 lub nowszy OK: Przekażcie skopiowany kod na GPLv2 [7][1] OK: Przekażcie skopiowany kod na GPLv2 lub nowszy [7] OK: Przekażcie kod na GPLv3 lub nowszy[7] OK [5] OK OK
LGPLv3 NIE OK: Kombinacja jest na GPLv3 [8][3] OK: Kombinacja jest na GPLv3 [8] OK: Kombinacja jeśli na GPLv3 [7][8] OK: Kombinacja jeśli na LGPLv3 [4] OK: Kombinacja jest na LGPLv3
Chcę użyć bibliotekę na warunkach: Tylko GPLv2 OK OK [2] NIE OK: Kombinacja jest tylko na GPLv2 [7] OK: Kombinacja jest tylko na GPLv2 [7][2] NIE
GPLv2 lub nowszy OK [1] OK OK OK: Kombinacja jest na GPLv2 lub nowszy [7] OK: Kombinacja jest na GPLv2 lub nowszy [7] OK: Kombinacja jest na GPLv3 [8]
GPLv3 NIE OK: Kombinacja jest na GPLv3 [3] OK OK: Kombinacja jest na GPLv3 [3] OK: Kombinacja jest na GPLv3 [3] OK: Kombinacja jest na GPLv3 [8]
Tylko LGPLv2.1 OK OK OK OK OK OK
LGPLv2.1 lub nowszy OK OK OK OK OK OK
LGPLv3 NIE OK: Kombinacja jest na GPLv3 [9] OK OK OK OK

Przeskocz przypisy

1: W tym przypadku musicie przestrzegać zasad GPLv2 gdy łączycie kod. Nie możecie korzystać z warunków w nowszych wersjach GPL.

2: Chociaż możecie w tym przypadku wydawać swój projekt (albo Wasze oryginalne dzieło i/lub prace, które otrzymaliście i modyfikowane) na warunkach GPLv2-or-later, zauważcie, że drugi kod, który używacie musi pozostać tylko pod GPLv2. Tak długo jak Wasz projekt bazuje na tamtym kodzie, nie możecie uaktualnić licencji swojego projektu na GPLv3-or-later, a praca jako całość (które połączenie zarówno projektu, jak i drugiego kodu) może być przekazywana tylko na warunkach GPLv2.

3: Jeśli macie możliwość wydania projektu na zasadach GPLv2 lub nowszej, możecie wybrać aby wydać na zasadach GPLv3 lub nowszej – gdy to zrobicie, będziecie mogli wcielać kod wydany na zasadach GPLv3.

4: Jeśli macie możliwość wydania projektu na zasadach LGPLv2.1 lub nowszej, możecie wybrać aby wydać na zasadach LGPLv3 lub nowszej – gdy to zrobicie, będziecie mogli wcielać kod wydany na zasadach LGPLv3.

5: W tym przypadku musicie przestrzegać zasad LGPLv2.1 gdy łączycie kod. Nie możecie korzystać z warunków w nowszych wersjach LGPL.

6: Jeśli to zrobicie, to tak długo jak projekt zawiera kod na zasadach tylko LGPLv2.1, nie będziecie mogli użyć nowej licencji LGPLv3 lub nowszej.

7: LGPLv2.1 zezwala na zmianę licencji na jakąkolwiek wersję GPL od GPLv2. Jeśli możecie zmienić licencję kodu z LGPL na jakąś kompatybilną wersję GPL (jak zanotowano w tabeli), to możecie w ten sposób połączyć.

8: LGPLv3 jest GPLv3 plus dodatkowe zezwolenia, które można zignorować w tym przypadku.

9: Ponieważ GPLv2 nie pozwala na połączenie z LGPLv3, musicie przekazać projekt zgodnie z warunkami GPLv3, ponieważ ten zezwala na to połączenie.