Ta strona jest tłumaczeniem z angielskiego.

Często zadawane pytania na temat wersji drugiej GNU GPL

Ta strona zawiera odpowiedzi na zwykle zadawane pytania o Powszechną Licencję Publiczną GNU (GPL) w wersji 2. Często zadawane pytania o bieżącej wersji GPL znajdziecie tu. O innych licencjach Fundacji Wolnego Oprogramowania możecie dowiedzieć się więcej na naszej stronie poświęconej licencjom.

Po przeczytaniu tego dokumentu możecie sprawdzić swoją wiedzę na temat licencjonowania wolnego oprogramowania rozwiązując nasz quiz (w języku angielskim).

Spis treści


Podstawowe pytania o GPL, Projekt GNU i Fundację Wolnego Oprogramowania

Ogólna orientacja w GPL

Stosowanie GPL do własnych programów

Dystrybucja programów wydanych na GPL

Wykorzystywanie programów wydanych na GPL przy pisaniu innych programów

Łączenie pracy z kodem wydanym na GPL

Pytania o naruszenia GPL


Co to znaczy „GPL”?
„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 programy stosujące GPL?
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?
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ę?
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 GPL dla programu czyni z niego oprogramowanie GNU?
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 <[email protected]>.

Co powinienem zrobić, jeśli wykryję możliwe naruszenie GPL?
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 <[email protected]>. 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?
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, by kod źródłowy zmodyfikowanej wersji został udostępniony publicznie?
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ę w tym samym komputerze mieć program objęty licencją GPL i niezwiązany z nim inny, nie-wolny program?
Tak. Zezwolenie na takie działanie zostało w GPL wyrażone wprost, w punkcie mówiącym o „zwyczajnym gromadzeniu” (mere aggregation). Choć ten zapis tylko akcentuje to, co naszym zdaniem i tak by zachodziło.
Jeśli znam kogoś, kto ma kopię programu wydanego na GPL, to czy mogę domagać się od niego, żeby dał mi kopię?
Nie. Dzięki GPL otrzymał pozwolenie na wykonywanie i rozprowadzanie kopii programu jeśli i gdy 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”? Czy to znaczy, że każdy na świecie może dostać źródła dowolnego programu na GPL, wszystko jedno jakiego?

Jeśli zdecydujecie się udostępniać kod źródłowy przez ofertę pisemną, każdy kto poprosi o źródło od Was ma prawo je 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 GPL powiedziano, że zmodyfikowane wersje, jeśli są publikowane, muszą być „licencjonowane … dla wszelkich stron trzecich”. Kim są te trzecie strony?
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 jestem zobowiązany do jawnego ogłoszenia praw autorskich (copyright) do własnych modyfikacji programu objętego GPL?
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ę).

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?
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 mi na sprzedaż kopii programu za pieniądze?
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 na pobieranie opłaty za pobranie programu z mojej witryny dystrybucyjnej?
Tak. Za przekazanie kopii programu (rozpowszechnianie) możesz pobierać dowolną opłatę. 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.
Czy GPL pozwala mi żądać od każdego, kto otrzyma program wniesienia opłaty i/lub powiadomienia mnie?
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.

Możecie pobierać opłatę, aby ludzie dostali kopię od Was. Nie możecie wymagać, aby ludzie Wam płacili gdy dostają kopię od kogoś innego.

Czy jeśli dystrybuuję za odpłatnością oprogramowanie na GPL, muszę je również udostępnić ogółowi bez opłat?
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ę kopie na warunkach umowy o nieujawnianiu (nondisclosure agreement)?
Nie. GPL stanowi, że każdy, kto otrzyma kopię od Ciebie ma prawo rozprowadzać dalej kopie (zmodyfikowane lub nie). Nie pozwala Wam na rozpowszechnianie prac na bardziej restrykcyjnych warunkach.

Jeśli ktoś poprosi, abyście podpisali NDA [non-disclosure agreement, umowa o zachowaniu poufności – przyp. tłum.] zanim otrzymacie oprogramowanie objęte GPL, którego właścicielem praw autorskich jest FSF, proszę nam natychmiast dać znać pisząc na adres [email protected].

Jeśli naruszenie obejmuje kod objęty GPL, którego właścicielem praw autorskich jest ktoś inny, proszę poinformować właściciela praw autorskich, tak jak byście zrobili z jakimkolwiek innym naruszeniem GPL.

Czy GPL pozwala mi na dystrybucję zmodyfikowanej wersji lub wersji beta na warunkach umowy o nieujawnianiu?
Nie. GPL stanowi, że Wasze zmodyfikowane wersje muszą przestrzegać wszystkich wolności zawartych w GPL. Zatem każdy, kto otrzyma od Ciebie kopię Twojej wersji ma prawo rozprowadzać dalej kopie tej wersji (zmodyfikowane lub nie). Nie wolno Wam rozpowszechniać żadnej pracy na bardziej restrykcyjnych warunkach.
Czy GPL pozwala mi na rozwijanie zmodyfikowanej wersji w ramach umowy o nieujawnianiu?
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?
Z pewnością uzyskasz 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.
Dlaczego GPL wymaga dołączania kopii GPL do każdego egzemplarza programu?
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.

A co jeśli dzieło jest niewiele dłuższe niż sama licencja?
Jeśli pojedynczy program jest tak krótki, można zamiast GNU GPL równie dobrze użyć prostej licencji zezwalającej na wszystko.
Czy dla zaoszczędzenia miejsca mogę pominąć preambułę GPL lub wskazówki, jak stosować tę licencję do własnych programów?
Preambuła i wskazówki są integralnymi częściami GNU GPL i nie wolno ich pomijać. Faktycznie 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 5000 znaków, mniej niż 1/3 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 to oznacza, że dwie licencje są „zgodne”?
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ć obu licencji, to są niezgodne.

W przypadku niektórych licencji, sposób, w jaki wykonywane łączone są programy 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.

Licencje nie muszą być kompatybilne, aby po prostu zainstalować dwa osobne programy na tym samym systemie, ponieważ to nie czyni z nich jednego programu.

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

GPL zezwala na takie połączenie pod warunkiem, że wynik zostanie wydany na warunkach GNU GPL. Inna licencja jest zgodna z GPL jeśli zezwala także na to.

Czy mogę pisać wolne oprogramowanie korzystające z bibliotek, które nie są wolne?
Jeśli to zrobisz, to Twój 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óć 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.

Jakie kwestie prawne pojawią się, jeśli z oprogramowaniem GPL zastosuję biblioteki niezgodne z GPL?
Jeśli biblioteki, które dołączasz zalicza się do poniższego wyjątku wymienionego w GPL:

However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.1

to nie musisz robić niczego specjalnego, żeby ich używać; wymóg dystrybucji kodu źródłowego całego programu nie obejmuje tych bibliotek, nawet jeśli rozprowadzasz skonsolidowaną wersję wykonywalną, która je zawiera. Zatem, jeżeli biblioteki, których potrzebujesz są dostarczane z głównymi składowymi prawnie zastrzeżonego systemu operacyjnego, to według GPL ludzie mogą konsolidować z nimi Twój program bez żadnych warunków.

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, całkowicie poza GPL. Informacja o prawach autorskich i nota licencyjna zezwalające na konsolidację z programem FOO:

Copyright (C) rrrr <nazwa posiadacza praw autorskich>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses/>.2

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.3

In addition, 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 code included in the standard release of DEF under the XYZ license (or modified versions of such code, with unchanged license). 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.4

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.5

Powinieneś umieścić ten tekst w każdym pliku, którego dotyczy wyjątek.

Wyjątek ten może być prawnie upełnomocniony wyłącznie przez posiadaczy praw autorskich. Jeśli sam napisałeś cały program, to, zakładając, że ani Twój pracodawca ani szkoła nie roszczą sobie pretensji do praw autorskich, sam jesteś ich posiadaczem – zatem możesz autoryzować taki wyjątek. Jeśli jednak chciałbyś wykorzystać w swoim kodzie części innych programów objętych GPL, napisanych przez innych autorów, nie możesz za nich uprawomocnić wyjątku. Musisz uzyskać zgodę posiadaczy praw autorskich tych programów.

Gdy inne osoby modyfikują program, nie muszą robić tego samego wyjątku dla własnego kodu – wybór należy do nich.

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.

Jak mogę uzyskać prawa autorskie do swojego programu, by wydać go na GPL?
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 zechce włączyć mój program do swego własnego produktu oprogramowania prawnie zastrzeżonego?
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 moglibyście podać szczegółowe instrukcje, jak zastosować GPL do mojego programu?
Zobacz stronę z instrukcjami GPL.
Słyszałem, że ktoś ma kopię programu wydanego na GPL, ale z inną licencją. Czy to możliwe?
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 Twojej 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 Twojej 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.
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 konstruktor programu objętego GPL jest nią związany? Czy jego działania mogą kiedykolwiek naruszać GPL?
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 konstruktor programu, który wypuścił go na GPL może później licencjonować go innej stronie na zasadzie wyłączności?
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 do pisania programów, które nie są wolne? Czy do ich kompilacji mogę wykorzystywać narzędzia objęte GPL, takie jak GCC?
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.

Skoro tak, to także i 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 prawo „dozwolonego użytku” w korzystaniu z kodu źródłowego programu objętego GPL?
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 GNU GPL?
Jeśli dany program został napisany przez pracowników państwowych USA, w ramach obowiązków służbowych, to jest dobrem publicznym, public domain, co znaczy, że nie jest objęty prawem autorskim. Ponieważ GNU GPL bazuje na systemie praw autorskich, taki program nie może zostać wydany na GNU GPL. (Niemniej jednak, mimo to może być wolnym oprogramowaniem; public domain jest wolne).

Jednakże, gdy któraś z federalnych agencji rządowych USA wykonanie oprogramowania powierza zleceniobiorcom, sprawy wyglądają inaczej. Jednym z wymogów kontraktu może być wydanie programu przez wykonawcę na warunkach GNU GPL (w ten sposób opracowano GNU Adę). Albo też kontrakt może ustalać, że autorskie prawa majątkowe będą przysługiwać agencji rządowej, która potem może wydać oprogramowanie na GNU GPL.

Czy rząd USA może wydać ulepszenia do programu objętego GPL?
Tak. Jeśli usprawnienia napisali w ramach swoich obowiązków pracownicy państwowi USA, to są one dobrem publicznym. Jednakże, ulepszona wersja, jako całość, pozostaje objęta licencją GNU GPL. Taka sytuacja nie powoduje żadnych kłopotów.

Jeśli rząd USA zleca tę pracę kontrahentom, to również same ulepszenia mogą zostać objęte GPL.

Czy jest jakiś sposób, w jaki mogę objąć przez GPL wyniki, uzyskiwane z mojego programu? 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?
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 programu na GPL jest również objęty GPL?
Tylko wówczas, gdy program kopiuje do wyniku część samego siebie.
Jeśli dołożę moduł do programu objętego GPL, to czy muszę użyć GPL jako licencji dla swojego modułu?
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?

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 praca 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?
Jeśli ten interpreter tylko interpretuje język, to nie muszą. Interpretowany program to, dla interpretera, tylko dane; licencje wolnego oprogramowania, 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 w Visual Basicu) 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++ (Visual Basica)?
GPL na to pozwala, gdyż ta biblioteka wykonawcza zwykle jest dostarczana z kompilatorem lub interpreterem, którego używasz, czyli podpada pod wyjątek opisany w Sekcji 3 GPL.

Co nie oznacza, że pisanie programu, który będzie działać tylko w środowisku Windows jest dobrym pomysłem. W efekcie powstanie wolny program, lecz „w okowach” (w tym przypadku schwytany w pułapkę przez Windows, a nie Javę, ale skutek jest ten sam). (Nota historyczna: w grudniu 2006 Sun jest w trakcie wydawania platformy Java na warunkach GNU GPL.)

Dlaczego pierwotna licencja BSD jest niezgodna z GPL?
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]. GPL stanowi:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.6

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 są uważane jako jeden program?
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 form 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ć skomplikowanymi strukturami danych jest równoważne z linkowaniem dynamicznym.

Jeśli w programie wydanym na GPL używane są wtyczki (plug-ins), to jakie są dla nich wymagania licencyjne?
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 mogę zastosować GPL pisząc wtyczkę do programu, który nie jest wolny?
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.

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

Czy mogę wydać niewolny program, zaprojektowany tak, żeby ładował wtyczkę wydaną na GPL?
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, żeby mógł korzystać z wtyczek objętych GPL, musi zostać wydany na 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 wtyczki są odrębnymi programami, licencja wtyczki nie stawia żadnych wymagań co do głównego programu.

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

Macie program na 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 GPL?
Tak.
Jeśli tak, to czy istnieje możliwość uzyskania licencji waszego programu na warunkach Lesser GPL?
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.

W jaki sposób mogę zezwolić na łączenie modułów prawnie zastrzeżonych ze swoją biblioteką na GPL tylko za pośrednictwem ustalonego interfejsu?
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.3

In addition, 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.7

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.5

Wyjątek ten może być prawnie upełnomocniony wyłącznie przez posiadaczy praw autorskich. Jeśli sam napisałeś cały program, to, zakładając, że ani Twój pracodawca ani szkoła nie roszczą sobie pretensji do praw autorskich, sam jesteś ich posiadaczem – zatem możesz autoryzować taki wyjątek. Jeśli jednak chciałbyś wykorzystać w swoim kodzie części innych programów objętych GPL, napisanych przez innych autorów, nie możesz za nich uprawomocnić wyjątku. Musisz uzyskać zgodę posiadaczy praw autorskich 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ć?
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ą „zwyczajne gromadzenie” i „połączenie dwu modułów w jeden program”?
Zwyczajne zgromadzenie dwu programów oznacza umieszczenie ich obok siebie na tym samym CD-ROM-ie lub dysku twardym. Stosujemy to określenie w przypadku, gdy stanowią one odrębne programy, a nie części jednego programu. W tym przypadku, jeśli jeden z programów jest objęty GPL, nie ma to żadnego wpływu na drugi.

Połączenie dwu modułów oznacza złączenie ich tak, że tworzą pojedynczy większy program. Jeśli któraś z części jest objęta GPL, to całe połączenie musi być również wydane na GPL. Jeśli nie możesz lub nie chcesz tego zrobić, nie możesz ich połączyć.

Co stanowi o połączeniu dwu części w jeden program? Jest to kwestia prawna, o której ostatecznie zadecydują sędziowie. Uważamy, że poprawne kryterium zależy zarówno od mechanizmu komunikacji (exec, potoki, rpc, wywołania funkcyjne wewnątrz wspólnej przestrzeni adresowej, itd.), jak i od jej semantyki (jakie rodzaje informacji 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.

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?
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 i w ten sposób udostępnił go jako public domain.

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 <[email protected]>.

Czy mogę zmodyfikować GPL i utworzyć zmodyfikowaną licencję?
Możesz wykorzystać warunki GPL (mogą być zmienione) 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 GPL (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 <[email protected]> o pozwolenie. 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.

Jeśli skorzystam z kawałka oprogramowania uzyskanego na GNU GPL, to czy wolno mi zmienić oryginalny kod w nowy program, a następnie rozpowszechniać i sprzedawać taki nowy program komercyjnie?
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 mogę użyć GPL do czegoś innego niż oprogramowanie?
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 przypadku Javy?
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?
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 do swego prawnie zastrzeżonego systemu wcielić oprogramowanie objęte GPL. Czy mogę to zrobić?
Nie możesz wcielić oprogramowania objętego GPL do systemu prawnie zastrzeżonego. Celem GPL jest przyznanie każdemu wolności kopiowania, redystrybucji, rozumienia ivmodyfikacji programu. Gdybyś mógł włączyć oprogramowanie objęte GPL do systemu, który nie jest wolny, to wvefekcie tego programy te 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.

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.
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.

Chciałbym włączyć oprogramowanie objęte GPL w mój system własnościowy. Czy mogę to zrobić za pomocą „wrapper module”, który byłby na zasadach luźnej licencji kompatybilnej z GPL (takiej jak licencja X11), który pośredniczyłby między częścią objętą GPL a częścią własnościową?
Nie. Licencja X11 jest kompatybilna z GPL, więc możecie dodać moduł do programu objętego GPL, a moduł wydać na warunkach licencji X11. Ale jeśli obie rzeczy łączycie w większy program, ta całość obejmowałaby część objętą GPL, więc musielibyście całość wydać na warunkach GNU GPL.

To że moduł własnościowy A komunikuje z modułem C objętym GPL tylko przez moduł B na warunkach X11 jest nieistotne z punktu widzenia prawa. Co jest istotne to to, że moduł C jest częścią całości.

Czy wyjątek dla libstdc++ pozwala na dynamiczne łączenie?
Tak. Ten wyjątek utworzono, żeby pozwolić ludziom na używanie gcc do kompilacji programów prawnie zastrzeżonych.
Chciałbym zmodyfikować programy objęte GPL i skonsolidować 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?
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?
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ę zmodyfikowaną wersję programu objętego GPL wydać tylko w postaci binarnej?
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ć?
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 zamiast przesyłać je pocztą?
Jeśli ktoś sobie tego zażyczy, powinieneś dostarczyć kod źródłowy przesyłką pocztową, na fizycznym nośniku danych. Mile widziane jest, że oferujesz ludziom metodę skopiowania odpowiedniego kodu źródłowego za pomocą FTP, oprócz możliwości wysyłki pocztą, ale dostęp przez FTP nie wystarcza do spełnienia warunku z sekcji 3 GPL.

Kiedy użytkownik zamawia źródła, musisz się upewnić, że je otrzyma. Jeśli jakaś konkretna osoba może w dogodny sposób uzyskać od Ciebie źródła korzystając z anonimowego FTP, to świetnie – wystarczy. Jednak nie każdy użytkownik może to zrobić. Pozostali są po prostu upoważnieni do uzyskania kodu źródłowego od Ciebie. Zatem musisz być przygotowany na wysłanie im go zwykłą pocztą.

Jeśli dostęp przez FTP okaże się wystarczająco wygodny, być może nikt nie zdecyduje się na zamówienie kopii pocztą. Wówczas nigdy nie będziesz musiał ich wysyłać. Ale nie możesz tego z góry zakładać.

Oczywiście, przede wszystkim najłatwiej jest po prostu wysłać źródła razem z binariami.

Jeśli rozprowadzasz binaria przez FTP, to powinieneś przez FTP rozprowadzać źródła.

Znajomy dostał objęty GPL kod binarny z ofertą dostarczenia źródeł i zrobił mi kopię. Czy mogę wykorzystać tę ofertę, żeby otrzymać źródła?
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 swoim serwerze internetowym, a źródła w innym ośrodku internetowym?
GPL stwierdza, że musisz zaoferować dostęp do kopii kodu źródłowego „z tego samego miejsca”, to znaczy, najbliższego binariów. Jeśli jednak zawrzesz umowę z innym ośrodkiem na zapewnianie dostępności niezbędnego kodu źródłowego i umieścisz w pobliżu binariów odnośnik hipertekstowy lub odsyłacz do tego kodu, to sądzimy, że kwalifikuje się to jako „z tego samego miejsca”.

Zauważ, jednak, że nie wystarczy znaleźć jakieś miejsce, teraz akurat ma odpowiedni kod źródłowy i wskazać ludziom, by tam sięgnęli. Jutro w tym ośrodku może zostać skasowany lub po prostu zastąpiony nowszą wersją tego samego programu. Wówczas nie będziesz już spełniał wymagań GPL. Chcąc podjąć rozsądny wysiłek, by się do nich zastosować, powinieneś zawrzeć skuteczną umowę z tym ośrodkiem, i w ten sposób zapewnić, że źródła będą tam dostępne tak długo, jak długo będziesz udostępniał binaria.

Chciałbym rozpowszechniać poszerzoną wersję programu objętego GPL w postaci binarnej. Czy wystarczy rozpowszechniać źródła oryginalnej wersji?
Nie, musisz 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 Twojej wersji powinni mieć dostęp do kodu źródłowego Twojej wersji.

Głównym celem GPL jest zbudowanie Wolnego Świata dzięki zagwarantowaniu, że udoskonalenia wolnego programu same są wolne. Jeśli wypuszczasz udoskonaloną wersję programu objętego GPL, musisz 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?
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.

Chciałbym udostępnić binaria za pośrednictwem anonimowego FTP, ale wysyłać źródła tylko tym, którzy ich zażądają.

Jeśli chcecie rozpowszechniać binaria za pośrednictwem anonimowego FTP, nadal musicie dostarczać źródła w jeden ze sposobów opisanych w paragrafie 3. To nie powinno być trudne. Możecie na piśmie zaoferować kod źródłowy; paragraf 3(b) na to zezwala. Jeśli możesz znaleźć jakiś ośrodek, który rozpowszechniałby Wasz program, to z pewnością znajdziecie taki, który ma miejsce na źródła.

Obojętnie jak rozprowadzicie kod źródłowy, kod który dostarczacie musi dokładnie odpowiadać binariom. W szczególności, musicie upewnić się, że są to źródła tej samej wersji programu – nie wersji starszej ani nowszej.

Możesz udostępnić źródła i binaria na różnych maszynach, po warunkiem, że dostęp do nich jest równie łatwy, i że obok binariów pozostawisz informację, gdzie znaleźć źródła.

Jak mogę się upewnić, że użytkownik, który ściągnął binaria pobrał również źródła?
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ą.

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?
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ł.

Najistotniejsze, żeby ludzie mieli swobodę dokonywania zmian i korzystania ze zmienionych wersji prywatnie, bez konieczności ich publikowania. Jednak umieszczenie programu na komputerze służącym jako serwer, żeby ogół mógł się z nim porozumiewać, trudno uznać za „prywatny” użytek, więc w tym szczególnym przypadku uprawnione byłoby żądać wypuszczenia kodu źródłowego. Myślimy o zrobieniu czegoś podobnego w trzeciej wersji GPL, ale jeszcze nie mamy wymyślonych precyzyjnych sformułowań.

Na razie, jeśli chcecie, możecie dla programów przeznaczonych do użytku na serwerach sieciowych zastosować Affero GPL.

Czy wykonanie i używanie wielu kopii programu wewnątrz jednej instytucji lub firmy jest „rozprowadzaniem”?
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?
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 dystrybuuje mi kopie pracy innego programisty objętej GPL jako sekret handlowy?
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 firma dystrybuuje kopie własnego programu objętego GPL jako sekret handlowy?
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 wydane są na zwykłej GPL zamiast na Lesser GPL?
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ę.

Dlaczego w programach powinno się pisać „GPL w wersji 2 lub dowolnej późniejszej wersji”?
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. (Ostatnia zmiana była w 1991). 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 2 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 2. Kiedy program zawiera klauzulę „GPL w wersji 2 lub dowolnej późniejszej”, użytkownicy będą zawsze mogli go użyć, a nawet zmienić, zgodnie z warunkami GPL w wersji 2 – 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 3 GPL, autorzy większości programów objętych GPL będą wypuszczać kolejne wersje swoich programów podając „GPL w wersji 3 lub dowolnej późniejszej”. Wówczas, dla następnych wersji programu, użytkownicy będą musieli przestrzegać mocniejszych wymagań z GPL wersji 3.

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

Dlaczego nie stosujecie GPL do podręczników?
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 stosuje się GPL do fontów?
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; zerknijcie na wyjaśnienie i napiszcie na adres <[email protected]>.

Chcąc użyć takiego wyjątku, 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.8

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?

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 Javascripyt 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.9

Czy mogę program wydać na zasadzie GPL, jeśli do rozwoju użyłem niewolne narzędzia?
Jakich programów użyliście do edytowania kodu źródłowego, czy do kompilowania, czy do badania lub rejestrowania, zwykle nie ma wpływu na to jaką licencję może mieć kod źródłowy.

Jednakże jeśli połączycie niewolne biblioteki z kodem źródłowym to by sprawiało kłopot, któremu musicie sprostać. Nie wykluczy to wydania kodu na warunkach GPL, ale jeśli biblioteki nie podchodzą pod wyjątek „system library” [system library exception – przyp. tłum.] to powinniście dołączyć ogłoszenie zezwalające na użycie waszego programu z tą biblioteką. FSF może doradzić jak to zrobić.

Czy istnieją tłumaczenia GPL na inne języki?
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 to 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 podpowiedź jak zrozumieć angielski GPL. Dla wielu użytkowników to jest wystarczające.

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

  • 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?
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 jest upoważniony do egzekwowania przestrzegania GPL?

Ponieważ GPL jest licencją praw autorskich, może być egzekwowana przez posiadaczy praw autorskich do danego oprogramowania. Jeśli zauważycie naruszenie GPL, powinieneś poinformować autorów programu, o który chodzi. Albo są oni posiadaczami praw autorskich albo pozostają z nimi w kontakcie.

Dodatkowo zachęcamy używania wszystkich dostępnych metod w obrębie prawa, aby zdobyć kompletne odpowiadające źródło, bo do tego macie prawo, oraz wymuszenia pełnej zgodności z licencją GNU GPL. Przecież GNU GPL zostało wymyślone, aby wszyscy użytkownicy mieli wolne oprogramowanie.

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?
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?
Ogólnie rzecz biorąc, odpowiedź brzmi: nie – nie jest to prawnie wymagane. W konkretnym przypadku odpowiedź zależy od tego, z jakich bibliotek 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?
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?
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?

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ć?

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ć GPLowany program, żeby pomijał ten krok.

Chciałbym dołączyć do programu objętego GPL jakiś program instalacyjny. Czy ten program instalacyjny musi mieć licencję kompatybilną z GPL?

Nie. Instalator i pliki, które instaluje to są odrębne dzieła. W związku z tym warunki GPL nie dotyczą programu instalacyjnego.


Nieoficjalne tłumaczenie
  1.    Niemniej jednak, jako wyjątek specjalny, dystrybuowany (w formie źródłowej albo binarnej) kod źródłowy nie musi obejmować niczego, co jest normalnie rozprowadzane z głównymi komponentami (kompilator, jądro itd.) systemu operacyjnego, na którym pracuje część wykonywalna, o ile sam taki komponent towarzyszy tej części.
  2.    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/>.
  3.    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.
  4.    Dodatkowo, w ramach wyjątku specjalnego, posiadacz praw autorskich do ABC udziela zezwolenia na konsolidację tego programu z wolnymi programami lub bibliotekami wydanymi na licencji GNU LGPL oraz z kodem zawartym w standardowym wydaniu DEF na licencji XYZ (lub ze zmodyfikowanymi wersjami takiego kodu na niezmienionej licencji). Możesz 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łą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.
  5.    Zauważ, ż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.
  6.    Na korzystanie przez odbiorcę z udzielonych w niniejszejLicencji praw nie możesz narzucać już dalszych ograniczeń.
  7.    Dodatkowo, w ramach wyjątku specjalnego, posiadacz praw autorskich do ABC udziela zezwolenia na konsolidację tego programu 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żesz 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łą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.
  8.    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.
  9.    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.