A GNU General Public License (abreviado como GNU GPL ou GPL; en galego "Licenza pública xeral de GNU" ) é unha licenza de software libre, que garante que os usuarios finais teñen a potestade de usar, estudar, modificar e compartir o software. A licenza escribiuna Richard Stallman, da Free Software Foundation (FSF), para o proxecto GNU e para outorgarlle aos usuarios das aplicacións os dereitos que establece a definición de software libre. Agora os dereitos de autoría da licenza son da Free Software Foundation. A GPL é unha licenza copyleft, polo que os traballos derivados deben e só se poden compartir baixo as mesmas condicións da licenza. Iso é a principal diferenza coas licenzas de software libre permisivas, como son as licenzas BSD e MIT. A GPL foi a primeira licenza copyleft de uso xeral.

A familia de licenzas GPL foi historicamente o grupo de licenzas máis populares no software de código aberto e libre. Entre os principais proxectos con estas licenza están o kernel de Linux a librería de compilación de GNU (GCC). Múltiples autores afirman que a licenza GPL foi crucial para o éxito dos sistemas baseados en Linux. Esta licenza deulle a garantía de que o seu traballo beneficiaría a todos e que sempre estaría ese traballo como libre, e non só aproveitado por compañías de software que non benefician a cambio do seu uso á comunidade de desenvolvedores e usuarios.

En 2007 liberouse a terceira versión desta licenza, a GNU GPLv3, co obxectivo de resolver conflitos da segunda versión da licenza. Esa nova versión incluíu unha cláusula opcional de "calquera versión posterior" que permitise a escolla entre os termos orixinais da licenza ou calquera outros posteriores que a FSF estableza. Sendo opcional hai casos nos que esta cláusula se omite cando se establece a licenza dun software, como é, como exemplo, o caso de Linux, que está coa licenza GPLv2 mais sen incluír o de "calquera versión posterior".

Existen licenzas derivadas da GPL con outros fins específicos, como a GNU Lesser General Public License que permite o enlace dinámico do código libre a aplicacións propietarias, ou para outro tipo de material, como a GNU Free Documentation License que cobre os artigos da Wikipedia, a Open Audio License para obras musicais.

É unha licenza que segue a definición de libre da FSF, da OSI , as liñas do software libre de Debian, non permite excepción para ligazóns dentro da GPL, segue as condicións de Copyleft e non segue as condicións de Copyfree.

Historia Richard Stallman escribiu a GPL en 1989 para usala en aplicacións desenvoltas dentro do proxecto GNU. A GPL orixinal fundamentouse nunha unificación dun licenzas similares das primeiras versións de GNU Emacs (1985), o debugger de GNU e o compilador de C de GNU. Estas licenzas con declaracións semellantes as da GPL moderna mais específicas para cada aplicación. Iso facíaas incompatibles entre si malia ser o mesma licenza. O obxectivo de Stallman foi elaborar producir unha licenza que se puidese usar en calquera proxecto e que se puidese compartir código entre múltiples proxectos.

A segunda versión da licenza, a versión 2, lanzouse en 1991. Durante os 15 anos seguintes a comunidade de software libre foise decatando de eivas da licenza GPLv2 que permiten que se deixen de aplicar licenzas GPL software modificado e que teña esa versión da licenza; algo contrario á filosofía da GPL. Estes problemas casos inclúen a "TiVoitización" (do software TiVo) e que supón que se inclúe software con GPL en hardware no que se restrinxe a súa modificación nesa plataforma en concreto, a problemas similares aos da licenza Affero; e problemas de patentes entre Microsoft e distribuidores de software libre, por mor de intentos de usar patentes como arma en contra da comunidade de software libre.

A versión 3 desenvolveuse para abordar esas eivas e lanzouse o 29 de xuño de 2007.

Versión 1 A versión 1 da GNU GPL creouse e publicouse o 25 de febreiro de 1989 coa finalidade de evitar as dúas principais formas nas que os distribuidores de software limitaban a liberdade que define ao software libre. O primeiro problema era que os distribuidores tiñan a posibilidade de só publicar un único ficheiro binario, un executable que non se podería analizar e estudar.Seccións 3a e 3b da licenza.

Para evitar isto a GPLv1 inclúe a afirmación de que as copias e a súa distribución, aínda que sexa só unha parte deste, ten que levar consigo e baixo as mesmas condicións o código fonte dun xeito que se poida analizar e estudar. O segundo problema era que os distribuidores poidan engadir restricións, ben fose na licenza ou ben combinando ese software con outro software que levase asociado outras cláusulas de restricións da súa distribución. A unión de dous grupos con diferentes condicións fai que ese traballo combinado teña a maior das restricións impostas. Para evitar isto a GPLv1 afirma que as versións modificadas, en conxunto, deben ser distribuídas baixo os termos da GPLv1.Seccións 2b e 4 da licenza. Polo tanto, o software distribuído baixo os termos de GPLv1 pódense combinar con software de condicións máis permisivas, xa iso non cambia os termos nos que se pode distribuír. Porén, o software distribuído baixo a GPLv1 non se pode combinar con software distribuído de licenzas máis restritivas, xa que iso entraría en conflito coas condicións de distribución que establece a GPLv1.

Versión 2 Tal como afirmou Richard Stallman, o gran cambio da GPLv2 foi introducir a cláusula de «liberdade ou morte», como é que se lle di na súa "sección 7". Esa sección afirma que os autores con traballos baixo esta licenza só poden distribuílo con ela só se cumpren todas as obrigas da licenza, independentemente de que teña calquera outro requirimento lexislativo que cumprir. Dito doutro xeito, todas as obrigas ou dereitos da licenza non poden ser cumpridas ou consideradas por separado cando existan conflitos legais que aparezan nalgunha das súas partes. Esta disposición ten como finalidade evitar que calquera parte utilice unha reclamación por violación de patentes ou outro motivo de litixio similar para evadir o cumprimento dalgunha das obrigas e liberdades que os usuarios teñen con esta licenza.

En 1990 comezouse a ver que unha licenza menos restritiva sería estratexicamente útil para a libraría C e para outras librarías que fornecían de servizos de librarías privativas.Para ver todo o razoamento do proxecto vaiase a súa web O Proxecto GNU . Cando se publicou a versión 2 da licenza GPL (GPLv2) lanzouse en xuño dese mesmo ano, en 1991, unha segunda licenza - a GNU Lesser General Public License (LGPL) - complementaría desta e numerada do mesmo xeito, a versión 2. A licenza LGPL mudou a súa versión en 1999 a 2.1 e trocou o seu nome a GNU Lesser General Public License, coa finalidade de resaltar a súa finalidade.

Polo xeral indícase na licenza "GPLv2 ou calquera versión posterior" para que os usuarios poidan actualizar ás seguintes versións, como a GPLv3.

Versión 3 miniatura|dereita|Richard Stallman durante o lanzamento da primeira versión da GNU GPLv3 en MIT, Cambridge, Massachusetts, Estados Unidos. Á súa dereita está o doutor de dereito de Columbia Eben Moglen, presidente do Centro de lexislación de software libre. miniatura|dereita|Richard Stallman abrazando un boneco de GNU nunha visita a Ourense de 2009, onde impartiu o relatorio de "Software libre ou software subxugado: quen ten o control do teu computador?". A finais de 2005 a Free Software Foundation (FSF) anunciou que estaba a traballar na versión 3 da GPL (GPLv3). O 16 de xaneiro de 2006 publicouse un borrador e comezou o primeiro debate público sobre deste. A consulta pública planificárase para entre nove e quince meses mais aínda transcorridos dezaoito meses aínda se estaba no cuarto borrador do texto. A versión GPLv3 oficial publicouna a FSF o 29 de xuño de 2007. A GPLv3 escribiuna Richard Stallman e co asesoramento xurídico de coa asesoría Eben Moglen e Richard Fontana do Centro de lexislación do software libre (en inglés Software Freedom Law Center).

Segundo Stallman os cambios máis importantes nesta versión foron os relacionados coas patentes de software, a compatibilidade da licenza, a definición de "código fonte", as restricións de hardware en canto á modificación do software ( "TiVoización"). Outros cambios foron os relacionados coa internacionalización, como se xestionan as violación das obrigas e dereitos e como o propietario outorga os dereitos de autor.

Tamén agregou unha disposición que retira o peso da legalidade dos permisos da "Xestión de dereitos dixitais" (DRM), para que quen quixer poida romper calquera peza que un tribunal poida considerar como DRM e que eses cambios en software con GPL non sexan considerados como un incumprimento de leis que versan sobre das DRM, como a lei americana de "Dereitos de autor da era dixital" (en inglés "Digital Millennium Copyright Act").

A Free Software Foundation, co apoio da Centro de lexislación do software libre, a Free Software Foundation Europea e outros grupos de software libre; coordinaron o proceso de consulta pública. Os comentarios do público, feitos coa aplicación stet para a revisión colaborativa de documentos, quedaron recollidas no portal "gplv3.fsf.org". Durante o proceso de consulta pública fixéronse 962 comentarios no primeiro borrador. Ao final da edición enviáronse un total de 2.636 comentarios.

O terceiro borrador liberouse o 28 de marzo de 2007. Este borrador incluía unha linguaxe orientada a previr acordos sobre patentes como o polémico acordo entre Microsoft-Novell e pechou as posibles dúbidas entre as definicións de "usuario" e "produto de consumo". Eliminouse tamén a sección de "Limitacións xeográficas", que fora unha posibilidade xa considerada durante o inicio da consulta pública.

O cuarto borrador de discusión, e que foi o último, publicouse o 31 de maio de 2007. Nel introduciuse a compatibilidade coa licenza Apache versión 2.0 (as versións anteriores son incompatibles), aclarouse o papel dos provedores externos, e fixo unha excepción para evitar os problemas que se percibiran no acordo Microsoft-Novell dicindo na Sección 11 parágrafo 6 que:

Esta cláusula pretende facer ineficaces as futuras relacións deste tipo. A licenza tamén buscou que Microsoft estendese as patentes que lle concedeu aos usuarios de Novell para que o uso do da licenza GPLv3 se esténdese a todos os usuarios da licenza GPLv3. Iso só é factible cando Microsoft é ten establecido legalmente un acordo mercantil no que hai software coa GPLv3.

Ademais, os borradores previos da GPLv3 permitían a quen establecera a licenza engadir un requisito similar aos da licenza Affero, e que cubriría a fenda legal que se abriu cos servizos ofertados por provedores de servizos de aplicación, que son casos nos que se ofrece un servizo a través dunha rede. Con todo, xa que iso suporía un alto custo administrativo a hora de verificar se o código está a ofrecer ese tipo de servizos, decidiuse manter as licenzas licenza GPL e Affero separadas.

Varios desenvolvedores do primeiro plano, e en particular os desenvolvedores de alto nivel do kernel de Linux como Linus Torvalds, Greg Kroah-Hartman e Andrew Morton, comentaron nos medios de comunicación as súas obxeccións as varias partes dos borradores na primeira e segunda discusión do borrador da licenza. Os desenvolvedores do kernel fixeron referencia criticando varias cláusulas dobre da DRM e TiVotización, de patentes e "restricións adicionais" e alertaron dunha "balcanización" do "Universo do software libre". Linus Torvalds decidiu non adoptar a GPLv3 no kernel de Linux, e reiterouse anos despois nas súas críticas.