Co to wolne oprogramowanie?

Macie pytanie o licencjach wolnego oprogramowania, na które nie znaleźliście tu odpowiedzi? Zobaczcie nasze zasoby o licencjach i, jeśli to konieczne, skontaktujcie się z FSF Compliance Lab pod adresem licensing@fsf.org.

Definicja Wolnego Oprogramowania

Definicja wolnego oprogramowania przedstawia jakie warunki muszą zostać spełnione aby konkretny program uznać za wolne oprogramowanie. Od czasu do czasu modyfikujemy tę definicję by wyjaśnić pewne subtelne kwestie. Zajrzyjcie do sekcji Historia, aby zobaczyć zmiany w definicji wolnego oprogramowania.

„Wolne oprogramowanie” [free sofware] oznacza oprogramowanie, które szanuje wolność i społeczność użytkowników. W skrócie znaczy, że wolno użytkownikom uruchamiać, powielać, badać, zmieniać i ulepszać oprogramowanie. Więc „wolne oprogramowanie” to kwestia wolności, nie ceny. By zrozumieć to pojęcie, powinniście myśleć o „wolności słowa” [angielskie „free” może znaczyć „wolny”, ale też może oznaczać „darmowy” – “free” as in “free speech,” not as in “free beer”]. Czasami nazywamy to „oprogramownie libre”, pożyczając termin z francuskiego lub hiszpańskiego, [libre software] aby podkreślić, że nie chodzi o cenę.

Walczymy o te wolności ponieważ na nie zasługujemy. Z tymi swobodami, użytkownicy (zarówno indywidualni jak i wspólnie) mają kontrolę nad programem i tym, co dla nich robi. Gdy użytkownicy nie mają kontroli nad programem, to program kontroluje użytkowników. Programista kontroluje program, a przez niego użytkowników. Ten niewolny lub „własnościowy” [ang. proprietary] program jest narzędziem niesprawiedliwej władzy.

Cztery niezbędne wolności

Program jest wolnym oprogramowaniem jeśli użytkownicy programu mają cztery niezbędne wolności:

Program jest wolnym oprogramowaniem jeśli zapewnia użytkownikom wszystkie te wolności. W przeciwnym wypadku jest niewolnym. Choć są różne sposoby rozprowadzania niewolnego oprogramowania, różniące się dystansem od w pełni wolnego, uważamy wszystkie za równie nieetyczne.

W danym przypadku te wolności muszą dotyczyć kodu, który mamy zamiar używać lub skłaniać innych by używali. Przykładowo, rozważmy program A, który w niektórych przypadkach automatycznie uruchamia program B. Jeśli chcemy rozprowadzać program A w tej formie, to oznacza, że użytkownicy będą potrzebowali B, więc trzeba sprawdzić czy zarówno A jak i B są wolnym oprogramowaniem. Jednakże, jeśli mamy zamiar zmodyfikować A aby nie używał B, tylko A musi być wolnym; B nie jest częścią zamiaru.

„Wolne oprogramowanie” nie oznacza „niekomercyjne”. Wolny program musi być dostępny do komercyjnego wykorzystywania, komercyjnego rozwijania i komercyjnego rozpowszechniania. Komercyjny rozwój wolnych programów nie jest już niczym niezwykłym; takie wolne komercyjne oprogramowanie jest bardzo ważne. Możliwe, że zapłaciliście za kopie wolnych programów, mogliście też otrzymać je bezpłatnie. Ale bez względu na to, w jaki sposób je otrzymaliście, zawsze macie wolność do kopiowania i modyfikowania programów, a nawet sprzedawania kopii.

Reszta tej strony wyjaśnia kilka szegółów decydujących czy dana wolność jest wystarczająca.

Wolność do uruchamiania programu jak chcecie, w dowolnym celu

Wolność korzystania z programu oznacza wolność dla każdej osoby czy organizacji do używania go na dowolnego rodzaju systemie komputerowym, do dowolnego typu zadań, bez wymogu kontaktowania się w związku z tym z autorem czy jakimś innym konkretnym podmiotem. W tej wolności chodzi o cele użytkownika, nie o cele autora. Jako użytkownicy macie swobodę uruchamiania programu do swoich celów, a jeśli go rozprowadzacie, przekazujecie komuś innemu, to wówczas ta osoba może swobodnie korzystać z niego do własnych celów, a wy nie macie prawa narzucać mu swoich.

Wolność aby uruchamiać program jak się chce oznacza, że nie zabrania się Wam ani nie powstrzymuje Was od uruchamiania. Nie ma to nic wspólnego z funkcjonalnością programu, ani czy będzie funkcjonował w danym środowisku, ani czy program robi to, co chcecie aby robił.

Wolność do analizowania, jak działa program i zmnieniana go aby robił co i jak potrzebujecie

By wolności 1 i 3 (wolności do dokonywania zmian i publikowania zmienionych wersji) miały sens, musicie mieć dostęp do kodu źródłowego programu. Zatem dostępność kodu źródłowego jest warunkiem koniecznym wolnego oprogramowania. Zaciemniony „kod źródłowy” nie jest prawdziwym kodem źródłowym i nie liczy się jako taki.

Wolność 1 to także wolność do używania zmienionej wersji zamiast oryginału. Jeśli program jest dostarczany w produkcie zaprojektowany tak, by umożliwiał uruchamianie czyjejś zmodyfikowanej wersji lecz nie pozwala na uruchomienie waszej – praktyka znana jako „tiwoizacja” lub „zablokowanie” lub (w perwersyjnej mowie praktykujących te taktyki) „bezpieczne uruchamianie” – wolność 1 staje się pozorem, a nie czymś praktycznym. Ta postać binarna nie jest wolnym oprogramowaniem nawet jeśli kod z którego jest kompilowana jest wolny.

Jednym z ważnych sposobów modyfikowania programu jest wykorzystywanie w nim dostępnych wolnych podprogramów i modułów. Jeśli licencja programu zabrania łączenia z istniejącymi modułami na odpowiedniej licencji – na przykład kiedy wymaga, żebyście mieli prawa autorskie do każdego dodawanego przez siebie kodu – wówczas jest zbyt restrykcyjna, by uznać ją za wolną.

To, czy zmiana stanowi udoskonalenie, jest kwestią subiektywną. Jeśli wasze prawa dokonywania modyfikacji są ograniczone wyłącznie do zmian, które ktoś inny uzna za udoskonalenie, nie jest to wolny program.

Wolność do rozpowszechniania kopii: podstawowe zasady

Wolność rozpowszechniania (wolności 2 i 3) znaczy, że powinniście mieć swobodę rozpowszechniania kopii, zmodyfikowanych bądź oryginalnych, za darmo bądź pobierając opłatę za dystrybucję, wszędzie i każdemu. Wolność robienia tego wszystkiego oznacza (między innymi), że nie musicie prosić o pozwolenie ani płacić za nie.

Powinniście mieć również wolność dokonywania zmian w programie i wykorzystywania ich prywatnie w pracy czy też dla rozrywki, bez wspominania nawet, że istnieją. A jeśli już opublikujecie dokonane modyfikacje, nie powinniście być zmuszeni do powiadamiania o tym kogokolwiek, w jakikolwiek sposób.

Wolność 3 to także wolność do udostępniania Waszych zmodyfikowanych wersji jako wolne oprogramowanie. Wolna licencja może również zezwalać na udostępnianie ich na inne sposoby; inaczej mówiąc, nie musi być to licencja typu copyleft. Jednakże licencja, która wymaga by zmodyfikowane wersje były niewolne, nie kwalifikuje się jako wolna.

Wolność do redystrybucji kopii programu musi obejmować zarówno postaci binarne czy wykonywalne programu, jak i kod źródłowy, zarówno dla zmienionych, jak i niezmienionych wersji. (Rozpowszechnianie programów w postaci gotowej do uruchomienia jest konieczne dla zachowania wygody instalacji wolnych systemów operacyjnych). Nie szkodzi, jeśli nie da się utworzyć postaci binarnej czy wykonywalnej (ponieważ w niektórych językach programowania nie ma takiej możliwości), mimo to musicie mieć wolność do rozpowszechniania takich postaci, jeśli znajdziecie metodę ich utworzenia.

Copyleft

Pewne rodzaje zasad dotyczących sposobu rozpowszechniania wolnego oprogramowania są akceptowalne, pod warunkiem, że nie stoją w sprzeczności z zasadniczymi wolnościami. Na przykład, copyleft (w dużym uproszczeniu) jest zasadą, która mówi, że przy redystrybucji programu nie możecie wprowadzać ograniczeń odmawiając głównych swobód innym. Reguła ta nie jest sprzeczna z głównymi swobodami użytkowników, a raczej je chroni.

W projekcie GNU używamy copyleftu by zapewnić każdemu prawną ochronę tych czterech wolności. Uważamy, że istnieją poważne powody dla których lepiej używać copyleft. Jednakże wolne oprogramowanie nie korzystające z copyleftu także jest etyczne. Więcej o zależności między „wolnym oprogramowaniu” a „programami objętymi copyleft” znajdziecie na stronie Kategorie wolnego i niewolnego oprogramowania.

Reguły co do sczegółów tworzenia pakietu i rozprowadzania

Ustalanie reguł tworzenia pakietu ze zmienioną wersją jest dopuszczalne, jeśli tylko owe reguły w istotny sposób nie ograniczają Waszej wolności do rozpowszechniania zmodyfikowanych wersji lub tworzenia takich wersji i używania ich prywatnie. Jest dopuszczalne aby licencja wymagała zmianę nazwy modyfikowanej wersji, usunięcia logo, lub oznaczenia zmian jako Wasze. Takie wymagania są dopuszczalne tak długo jak nie są tak dokuczliwe, że uniemożliwiają jakiekolwiek zmiany; skoro i tak robicie pewne zmiany w programie, kilka dodatkowych zmian nie powinno sprawić kłopotu.

Wymagania typu „jeśli udostępniasz program w ten sposób, musisz go udostępnić także w taki sposób” również mogą być dopuszczalne, na tych samych warunkach. Przykład takiego wymagania to, że jeśli rozpowszechnicie zmienioną wersję, a poprzedni programista poprosi o jej kopię, to musicie ją przesłać. (Zwróćcie uwagę, że taka zasada nadal pozostawia wam wybór, czy w ogóle upubliczniać waszą wersję). Wymagania nakazujące udostępnienie kodu źródłowego użytkownikom upublicznionych przez Was wersji są również akceptowalne.

Specjalny przypadek zaistnieje gdy licencja wymaga zmiany nazwy według której program jest wywoływany przez inne programy. To uniemożliwia wypuszczenie Waszej zmienionej wersji aby zastąpiła oryginalną gdy tamta jest wywoływana przez inne programy. Takie wymaganie jest dopuszczalne tylko jeśli jest prosty sposób wyznaczenia aliasu aby zmodyfikowana wersja mogła być wywoływana przez alias oryginalnej.

Przepisy eksportowe

Czasami rządowe przepisy kontroli eksportu i sankcje handlowe mogą ograniczać waszą wolność rozpowszechniania kopii programu na cały świat. Wyeliminowanie czy ignorowanie tych restrykcji nie jest w mocy autorów oprogramowania, ale mogą i powinni oni odmawiać narzucania ich jako warunków stosowania programu. W ten sposób restrykcje nie będą wpływać na działania i ludzi poza zasięgiem jurysdykcji danego rządu. Co za tym idzie, licencje wolnego oprogramowania nie mogą wymagać podporządkowania się żadnym nietrywialnym przepisom eksportowym jako warunek dla korzystania z którejkolwiek z podstawowych wolności.

Wspominanie o istnieniu ograniczeń eksportu bez umieszczania ich jako jeden z warunków licencji jest dopuszczalne, ponieważ nie ogranicza to użytkowników. Jeśli przepis eksportu jest trywialny w przypadku wolnego oprogramowania, to umieszczanie go jako warunek nie jest problemem; jednakże jest to potencjalnym problemem ponieważ późniejsza zmiana w przepisach eksportu sprawią, że wymóg jest nietrywialny a oprogramowanie stanie się niewolne.

Zagadnienia prawne

Aby wszystkie te wolności nabrały rzeczywistego wymiaru, muszą być nieodwołalne tak długo, jak nie robicie niczego złego. Jeżeli autor oprogramowania ma prawo unieważnienia licencji, bądź wstecznego dodania ograniczeń do warunków, nawet wówczas, gdy nie zrobiliście niczego, co by taki krok uzasadniało, to oprogramowanie nie jest wolne.

Wolna licencja nie może wymagać zgody na warunki licencji niewolnego programu. Przykładowo, jeśli licencja wymaga abyście przestrzegali licencji „wszystkich programów, które używacie”, dla użytkownika, który używa niewolne programy by to wymagało przestrzeganie warunków tych niewolnych programów; to jest oznaką niewolnej licencji.

Jest dopuszczalne aby wolna licencja określała która jurysdykcja prawa obowiązuje, lub gdzie powinien być złożony pozew sądowy, lub jedno i drugie.

Licencje na bazie kontraktu

Większość licencji wolnego oprogramowania bazuje na prawie autorskim, a istnieją pewne granice tego, jakie wymagania można nałożyć za pomocą prawa autorskiego. Jeśli licencja oparta na przepisach prawa autorskiego respektuje prawa użytkowników tak, jak to opisano powyżej, to jest mało prawdopodobne, żeby był z nią kłopot jakiegoś innego rodzaju, którego do tej pory nie przewidzieliśmy (choć czasami się to zdarza). Jednak niektóre licencje wolnego oprogramowania bazują na umowach, a w umowach można nakładać ograniczenia w dużo szerszym zakresie. To znaczy, że istnieje wiele możliwych sposobów, w jakie taka licencja mogłaby być niedopuszczalnie restrykcyjna, niewolna.

W żaden sposób nie jesteśmy w stanie wymienić wszystkich przypadków, które byłyby dla nas nieakceptowalne. Jeśli licencja oparta na umowie ograniczałaby użytkownika w pewien niecodzienny sposób, w jaki nie mogą tego robić licencje oparte na prawie autorskim, a jaki nie został tutaj wspomniany jako uzasadniony, to będziemy musieli to przemyśleć i zapewne dojdziemy do wniosku, że nie jest wolna.

Używanie właściwych określeń gdy mowa o wolnym oprogramowaniu

Mówiąc o wolnym oprogramowaniu, najlepiej unikać określeń takich jak „rozdawać” czy „bezpłatny”, gdyż niejawnie sugerują one, że chodzi o cenę, a nie o wolność. Niektóre powszechnie używane określenia, jak „piractwo”, są wyrazem poglądów, których, mamy nadzieję, nie podzielacie. Zachęcamy do przeczytania omówienia zatytułowanego „Mylące słowa i sformułowania, których lepiej unikać”. Mamy też listę prawidłowych tłumaczeń terminu „free software” na różne języki.

Jak interpretujemy te kryteria

Na koniec, warto zauważyć, że takie kryteria, jak ustanowione w tej definicji wolnego oprogramowania, wymagają uważnego namysłu nad ich interpretacją. O tym, czy dana licencja może być zaliczona do licencji wolnego oprogramowania, rozstrzygamy w oparciu o powyższe kryteria, stwierdzając, czy jest ona z nimi zgodna zarówno duchem jak i w szczegółowym zapisie. Jeżeli licencja zawiera nadmierne ograniczenia, odrzucamy ją, nawet jeśli nie przewidzieliśmy danego problemu w podanych kryteriach. Czasami wymagania niektórych licencji wzbudzają kontrowersje, co wymaga od nas intensywnego namysłu, łącznie z dyskusją z prawnikiem, zanim będziemy mogli zdecydować, czy dany wymóg jest możliwy do przyjęcia. Kiedy wreszcie osiągniemy rozstrzygnięcie w takiej kwestii, często uaktualniamy powyższe kryteria, by wyjaśnić, dlaczego pewne licencje kwalifikują się bądź nie.

Pomoc z wolnymi licencjami

Jeśli jesteście ciekawi, czy konkretna licencja kwalifikuje się jako licencja wolnego oprogramowania, zajrzyjcie do naszej listy licencji. Jeżeli nie wymieniono tam tej, którą jesteście zainteresowani, możecie nas o nią zapytać wysyłając wiadomość na adres <licensing@gnu.org>.

Jeżeli planujecie napisanie nowej licencji, prosimy o skontaktowanie się najpierw z Free Software Foundation pisząc na powyższy adres. Mnożenie różnych licencji wolnego oprogramowania powoduje, że użytkownicy muszą poświęcać więcej czasu na ich zrozumienie; zapewne uda nam się pomóc wam w znalezieniu istniejącej już licencji wolnego oprogramowania, która spełni wasze oczekiwania.

Jeśli okaże się to niemożliwe i rzeczywiście będziecie potrzebować nowej licencji, to korzystając z naszej pomocy możecie być pewni, że będzie to faktycznie licencja wolnego oprogramowania i unikniecie różnych problemów praktycznych.

Poza oprogramowaniem

Podręczniki do oprogramowania muszą być wolne, z tego samego powodu, dla którego oprogramowanie musi być wolne, a także dlatego, że podręczniki są w istocie częścią oprogramowania.

Te same argumenty są prawdziwe także w przypadku innych rodzajów dzieł praktycznego użytku — to znaczy takich, które zawierają przydatną wiedzę, jak na przykład materiały edukacyjne i źródłowe. Wikipedia jest najbardziej znanym przykładem.

Każde dzieło może być wolne i dlatego definicja wolnego oprogramowania została poszerzona o definicję wolnych dzieł kultury dotyczącą dzieł dowolnego rodzaju.

Open Source?

Inna grupa używa terminu „open source” na oznaczenie czegoś zbliżonego (lecz nie identycznego) do „wolnego oprogramowania”. Wolimy określenie „wolne oprogramowanie”, gdyż od chwili, gdy tylko usłyszy się, o które znaczenie przymiotnika w nim chodzi, przywołuje ono na myśl wolność. Słowo „open” ani „otwarte” nigdy nie wywołują takich skojarzeń.

Historia

Od czasu do czasu zmieniamy definicję Wolnego Oprogramowania. Tutaj znajduje się lista znacznych modyfikacji wraz z odnośnikami, by zilustrować co dokładnie uległo zmianom.

Przerwy w numeracji powyżej spowodowane są tym, że dokonano wielu innych zmian, które nie miały bezpośredniego związku z definicją lub interpretacją. Przykładowo, lista nie zawiera zmian w formatowaniu, pisowni, interpunkcji, lub innych częściach strony. Kompletna historia zmian jest dostępna dostępna poprzez interfejs cvsweb.