GNU General Public License
GNU General Public License ("GNU-hankkeen yleinen lisenssi") eli lyhennettynä GNU GPL tai pelkkä GPL on vapaiden ohjelmistojen julkaisemiseen tarkoitettu lisenssi, joka antaa kenelle tahansa oikeuden käyttää, kopioida, muuttaa ja jakaa edelleen ohjelmia ja niiden lähdekoodia. Lisäksi lisenssi takaa, että nämä vapaudet säilyvät myös GPL-koodiin pohjautuvissa muunnelluissa teoksissa ("derivative work"). Mikäli GPL-ohjelmaa tai sen muunnelmaa levitetään edelleen, lähdekoodi on julkaistava samalla lisenssillä eikä ohjelman käytölle tai levitykselle saa asettaa lisärajoituksia.
GPL-koodia ei voi levittää omisteisesti, mutta lisenssi ei estä koodin kaupallista käyttöä. Ohjelman käyttäjä tai muokkaaja saa myydä tuotteen kopioita tai muunnelmia, mahdollisesti tukipalveluilla täydennettynä, kunhan noudattaa lisenssin asettamia ehtoja. GPL-ohjelmia voidaan myös teettää rahasta, ja jos ohjelmaa ei levitetä edelleen, lähdekoodiakaan ei tarvitse julkaista. On olemassa yrityksiä, joiden liiketoiminta perustuu siihen, että ne räätälöivät ja yhdistelevät GPL-ohjelmia muiden yritysten tarpeisiin.
Tekijän näkökulmasta GPL:n käyttö koodia julkaistaessa on usein mielekästä etenkin siksi, että tällöin muiden julkaisemat parannellut versiot palautuvat alkuperäisenkin tekijän hyödynnettäviksi. Jatkokehittäjän näkökulmasta taas olemassa oleva GPL-koodikanta saattaa huomattavasti vähentää kehityskustannuksia. Parhaassa tapauksessa hyötyjiä ovat niin kehitystyötä tekevä yritys (joka pystyy GPL-koodin varaan rakentamaan tuottavaa liiketoimintaa), asiakas (joka saa edullisen, räätälöidyn lopputuotteen) kuin laaja kehittäjä- ja käyttäjäyhteisökin (joka saa lisää GPL-lähdekoodia yhteiseen käyttöön).
GPL on käytetyin vapaiden ohjelmistojen lisenssi, ja muun muassa Linux-käyttöjärjestelmät koostuvat pääosin GPL-ohjelmista. Vuonna 2001 teetetty tutkimus Red Hat Linux 7.1 -jakeluversiosta totesi, että 50 % sen sisältämien ohjelmien lähdekoodista oli GPL-lisensoitu.
GPL syntyi alun perin Richard Stallmanin perustaman GNU-projektin tarpeisiin. Ennen GPL-lisenssiä useilla GNU-projektin tuottamilla ohjelmilla oli omat, erilliset lisenssinsä, mikä oli hankalaa ja esti muun muassa koodin siirtämisen ohjelmasta toiseen. GNU tarvitsi yhden lisenssin jota voisi käyttää kaikkiin hankkeen tuottamiin ohjelmiin. GPL:n ensimmäinen versio julkaistiin vuonna 1989. Uudistettu versio 2 julkaistiin 1991 ja hyväksyttiin laajasti GNU-hankkeen ulkopuolellakin muun muassa Linus Torvaldsin todettua sen sopivan kehittämänsä Linux-ytimen lisenssiksi vuonna 1992. GPL:n versio 3 julkaistiin 29. kesäkuuta 2007. Se pyrkii vastaamaan muun muassa haasteisiin, joita ohjelmistopatentit asettavat vapaiden ohjelmistojen kehittämiselle. Etenkään kaikki Linux-ytimen kehittäjät eivät kuitenkaan ole pitäneet kolmosversioon liittyviä muutoksia tarpeellisina, joten lisenssin kakkosversiokin on yhä käytössä.
GPL:n pohjalta on kehitetty myös ehdoiltaan väljempi sisarlisenssi GNU LGPL ("GNU Lesser General Public License"), joka soveltuu etenkin ohjelmakirjastojen julkaisemiseen.
GPL suunniteltiin lisenssiksi eikä sopimukseksi. Tällä erolla on merkitystä, koska sopimuksia sitoo sopimusoikeus, kun taas lisenssejä säätelee tekijänoikeus.
Jos käyttäjä ei hyväksy GPL:n ehtoja, hänellä ei ole tekijänoikeuslain mukaan lupaa jakaa GPL-lisensoitua ohjelmaa tai siitä johdettuja töitä. Yksityisesti ohjelmaa saa kuitenkin käyttää ja muunnella miten tahansa.
GNU GPL:n ensimmäinen versio julkaistiin tammikuussa 1989. Se ehkäisi kaksi tärkeintä menetelmää, joilla ohjelmistotuottajat rajoittivat käyttäjien oikeuksia. Ensimmäinen ongelma oli, että jakelijat antoivat käyttäjille pelkän binääritiedoston, joten loppukäyttäjä saattoi ajaa ohjelmaa, mutta sen tutkiminen tai muokkaaminen oli vaikeaa tai mahdotonta. Tämän vuoksi GPL v1 asetti ehdoksi, että ohjelmaa jaettaessa tulee tarjota myös lukukelpoinen lähdekoodi samoin lisenssiehdoin.
Toinen ongelma olivat jakelijoiden lisäämät ylimääräiset rajoitteet. Sellaisia saattoi syntyä, jos jakelija lisäsi ylimääräisiä ehtoja itse lisenssiin tai yhdisti ohjelman toisten ohjelmien kanssa, joiden lisenssissä oli muita rajoituksia. Tällöin käytettiin näiden sopimusten liittoa, minkä vuoksi lopulliseen työhön olisi ilmaantunut ylimääräisiä rajoitteita. Tämän estämiseksi GPL v1 vaatii versioiden lisensoinnin kokonaan GPL:n ehtojen mukaisesti. Tällöin GPL-lisensoitu ohjelma voitiin yhdistää toisen ohjelman kanssa, jolla oli vielä vapaampi lisenssi, mutta sitä ei voitu jakaa ohjelman kanssa, jolla oli tiukempi lisenssi.
Richard Stallmanin mukaan GPLv2:n tärkein muutos oli kohta 7, jota hän kutsuu "vapaus tai kuolema" -lausekkeeksi. Tämän kohdan mukaan jakelija ei saa lainkaan jakaa GPL-ohjelmistoa, jos se olisi mahdollista ainoastaan toisten käyttäjien vapauksia rajoittamalla (esimerkiksi jos laki antaisi luvan jakaa ohjelmistoa ainoastaan binäärimuodossa).
GNU GPL:n versio 3, GPLv3, julkaistiin 29. kesäkuuta 2007. Sen keskeisimmät uudistukset tähtäsivät muunnellun koodin suorittamista rajoittavien laitteistoratkaisujen muodostaman porsaanreiän, DRM:n murtamisen kieltävän lainsäädännön sekä ohjelmistopatenttien muodostamien rajoitteiden torjumiseen.
TiVon valmistamat digitaaliset videotallentimet käyttivät Linuxiin perustuvaa käyttöjärjestelmäydintä. Linux-ydin on GPL-lisensoitu ohjelmisto, joten TiVon käyttämä versio siitä on periaatteessa muunneltavissa, mutta TiVo oli rakentanut tallentimiinsa laitteistopohjaisen eston, jota FSF nimittää "tivoisaatioksi": tallentimet eivät suorita muunneltua ohjelmistoa. GPLv3-lisensoitua ohjelmistoa käyttävä laitteistovalmistaja velvoitetaan lisenssissä asettamaan saataville ohjelmiston muunnelmien suorittamisen edellyttämä tieto (esimerkiksi tarvittavat salausavaimet).
Linus Torvalds on sanonut vastustavansa versioon 3 siirtymistä sen lisäämien käyttörajoituksien vuoksi.
DRM:n murtaminen on joidenkin maiden laeissa osittain tai kokonaan kielletty. GPLv3:n mukaan sillä lisensoitu ohjelmisto ei ole tehokas DRM-esto, eikä GPLv3-lisensoidun DRM-ohjelmiston kiertäminen näin ollen periaatteessa voi rikkoa tehokkaan DRM-eston murtamisen kieltävää lakia. DRM-estojen sisällyttämistä GPLv3-lisensoituun ohjelmistoon sinänsä lisenssi ei kiellä.
GPLv3 torjuu ohjelmistopatenttien GPL:ään kuuluville oikeuksille muodostamia uhkia kahdella tavalla. GPLv3-lisensoidun ohjelman tekijän tai muuttajan tulee sallia kaikkien ohjelman mahdollisesti sisällään pitämien, GPL:ään kuuluvia oikeuksia rajoittavien ohjelmistopatenttien käyttö. GPLv3-lisensoidun ohjelman muunnelman valmistaja, joka uhkaa ohjelmiston käyttäjiä patentteihin liittyvin oikeustoimin, menettää lisenssin suomat oikeutensa.