GNU General Public License (kraticeGNU GPL i samoGPL) je vjerojatno najpoznatija i najšire korištenalicenca zaslobodan softver, koju je originalno kreiraoRichard Stallman za projektGNU, a o kojoj se danas brineFree software foundation (FSF). GPL je napisan tako da sačuva slobode korisnika softvera: pravo na korištenje u bilo koju svrhu, pravo na izradu kopija i pravo na proučavanje, mijenjanje i redistribuciju modificiranog programa.[1] GNU GPL je,copyleft licenca, što znači da zahtjeva da sav softver koji nastane kao modifikacija ovog softvera, također garantira iste slobode (tj. bude distribuiran pod istom licencom), a za razliku od srodneLGPL licence, to se odnosi i na onaj softver koji se koristi u sprezi s njime.
Prva verzija izdana je u siječnju 1989., uvela je dva važna ograničenja: Softver pod ovom licencom ne može se kombinirati sa softverom pod ostalim, manje slobodnim licencama (za razliku odLGPL-a) i drugo, program ne može distribuirati samo u binarnom formatu, već distributor mora pružiti pristup čitljivom izvornom kodu. Prije GPL verzije 2, Linux je koristio ovu verziju licence. Danas većina softvera koristi GPL2 i GPL3.
Glavna promjena u verziji 2 je, po Stallmanu, stavka 7 "sloboda ili smrt", koja kaže da ako zakon zabrani distribucijuizvornog koda uz izvršnu datoteku, program se uopće ne može distribuirati.[2] Ovu licencu koristi npr. Linux, jezgra operativnog sustavaGNU/Linux, ali i mnogi programi za Linux.
GPL verzija 3, najnovija je GPL licenca koja je nastala 2005, između ostalog iz potrebe ta sprečavanje "tivoizacije" - slučaj gdje proizvođač nekoghardwarea daje slobodno softver za njega, ali u isto vrijeme onemogućava učitavanje promjenjenog softvera u taj hardware (naziv tivoizacija dolazi od imena tvrtke TiVo).[3]Linus Torvalds, izvorni autorLinuxa usprotivio se ovome, rekavši da je to pravo proizvođača hardvera. Važno je napomenuti da ni samaLinux jezgra, nije prešla na GPL3 zbog navodnih mana iste.[4] Unatoč tome, koristi ju sve više projekata slobodnog softvera za operacijski sustav GNU/Linux — dakle korisnički i sistemski software izvan jezgre sustava uključujuči i softverGNU projekta - kao i projekti za druge operacijske sustave.