Wolne oprogramowanie to kwestia wolności użytkowników do uruchamiania, kopiowania, rozpowszechniania, analizowania, zmian i ulepszania programów. Dokładniej mówiąc, oznacza to, że użytkownikom programu przysługują cztery podstawowe wolności:
- Wolność do uruchamiania programu, w dowolnym celu (wolność 0).
- Wolność do analizowania, jak działa program, i dostosowywania go do swoich potrzeb (wolność 1). Warunkiem koniecznym jest dostęp do kodu źródłowego.
- Wolność do rozpowszechniania kopii, byście mogli pomóc innym ludziom (wolność 2).
- Wolność do udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń, dzięki czemu może z nich skorzystać cała społeczność (wolność 3). Warunkiem koniecznym jest tu dostęp do kodu źródłowego.
Oprogramowanie nazywamy wolnym, jeśli jego użytkownicy mogą skorzystać z wszystkich powyższych wolności. Zatem 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ść 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ść 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.
By wolności 1 i 3 (wolności do dokonywania zmian i publikowania poprawionych 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 (w perwersyjnej mowie praktykujących te taktyki) „bezpieczne uruchamianie” – wolność 1 staje się teoretyczną fikcją, a nie praktyczną swobodą. To nie wystarczy. Inaczej mówiąc, ta postać binarna nie jest wolnym oprogramowaniem nawet jeśli jej kod źródłowy 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ą.
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.
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ź wstecznej zmiany jej warunków, nawet wówczas, gdy nie zrobiliście niczego, co by taki krok uzasadniało, to oprogramowanie nie jest wolne.
Jednakże 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 wolności innym. Reguła ta nie jest sprzeczna z głównymi swobodami użytkowników, a raczej je chroni.
„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.
To, czy zmiana stanowi udoskonalenie, jest kwestią subiektywną. Jeśli wasza możliwość dokonywania modyfikacji jest ograniczona wyłącznie do zmian, które ktoś inny uzna za udoskonalenie, nie jest to wolność.
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 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.
W projekcie GNU używamy copyleftu by zapewnić każdemu prawną ochronę tych wolności. Ale istnieje też wolne oprogramowanie nie korzystające z copyleftu. Uważamy, że istnieją ważne powody, dla których lepiej jest stosować copyleft, ale jeśli Wasz program jest wolny, a nie objęty zasadami copyleftu, to w zasadzie w niczym to nie przeszkadza. (Więcej o zależności między „wolnym oprogramowaniu” a „programami objętymi copyleft” znajdziecie na stronie Kategorie wolnego i niewolnego oprogramowania.)
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 przepisom eksportowym jako warunek dla którejkolwiek z podstawowych wolności.
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.
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.
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.
Źródło: GNU Operating System
Tworzeniem stron internetowych zająłem się po raz pierwszy w 2003. To była prosta strona w HTMLu., w całości wykonana za pomocą edytora wizualnego. Od tamtego czasu wykonałem, bądź brałem udział w tworzeniu wielu stron. Zwykłe zainteresowanie tworzeniem stron przemieniło się w pracę, która sprawia satysfakcję. Postanowiłem więc uzupełnić swoje wykształcenie (jestem magistrem socjologii) i wejść szerzej w technologie www. Ukończyłem podyplomowe studia na kierunku "Technologie www" na Zachodniopomorskim Uniwersytecie Technologicznym. Obecnie współpracuję z kilkoma firmami w zakresie obsługi informatycznej i administracji stron www. Tworzę i administruję strony internetowe, portale wielofunkcyjne (CMS), sklepy internetowe (eCommerce), systemy do zarządzania relacjami z klientami (CRM). Przy współpracy z firmą max.pl tworzę platformy do zdalnej nauki (LMS), do zarządzania projektami (Groupware). Choć nie jestem grafikiem tworzę również grafikę dla portali oraz przygotowuję szablony do różnych aplikacji sieciowych. Dzięki bogatemu doświadczeniu w pracy z komputerami PC w środowisku Windows, prowadziłem szkolenia z zakresu elektronicznej edukacji. Wciąż rozwijam swój warsztat, a każdy trudny projekt przysparza mi nowych doświadczeń i rozwiązań na przyszłość.
