La GPL y compatibilidad entre licencias

De largo la mayor línea divisoria en cuanto a licencias es entre las licencias compatibles y las incompatibles con las licencias propietarias, es decir, entre la GNU General Public License y todas las demás. Debido a que el objetivo primordial de los autores de la GPL es la promoción del software libre, deliberadamente crearon con sumo cuidado la licencia para hacer imposible la mezcla de código GPL en software propietario. Específicamente, entre las claúsulas de la GPL (veáse http://www.fsf.org/licensing/licenses/gpl.html para obtener el texto completo) están estos dos:

  1. Todo trabajo derivado—es decir, todo trabajo que contenga una cantidad no trivial de código GPL —debe ser distribuído bajo la GPL.

  2. Ninguna restricción adicional debe ser añadida a la redistribución del trabajo original o de un trabajo derivado (la frase literal es: "Usted no puede imponer ninguna restricción adicional a los beneficiarios en el ejercicio de los derechos otorgados en este documento.").

Con estas claúsulas, la GPL triunfa al hacer la libertad contagiosa. Una vez que un programa se licencia con la GPL, sus términos de distribución son virales —se pasan a cualquier sitio donde el código se incorpore, haciendo efectivamente imposible usar código GPL en programas de código cerrado. Sin embargo, estas mismas claúsulas hacen a la GPL incompatible con algunas otras licencias libres. La manera común de que esto ocurra es que la otra licencia impone un requisito —por ejemplo, una claúsula de crédito requiriendo que se mencione a los autores originales de algún modo— que es incompatible con el "Ninguna restricción adicional debe ser añadida..." de la GPL. Desde el punto de vista de la Free Software Foundation, estas consecuencias secundarias son deseables o, al menos, no lamentables. La GPL no sólo mantiene el software libre, sino que hace de tu software un agente para impulsar que otro software sea libre también.

La cuestión de si éste es o no un buen modo de promover el software libre es una de las guerras santas más persistentes en Internet (veáse “Evitando las Guerras Santas” en Capítulo 6, Comunicaciones), y no la vamos a tratar aquí. Lo que importante para nuestro objetivos es que la compatibilidad con la GPL es un problema importante cuando elegimos una licencia. La GPL es de lejos la licencia de software libre más popular; en http://freshmeat.net/stats/#license, tiene un 68%, y la siguiente en el ranking tiene un 6%. Si quieres que tu código se puede emplear libremente con código GPL — y hay mucho código GPL ahí fuera — debes elegir una licencia compatible con la GPL. Algunas de las licencias compatibles con la GPL son también compatibles con software propietario: es decir, código bajo esa licencia puede usarse en un programa GPL, y también en un programa propietario. Por supuesto, los resultados de estas mezclas no serán compatibles con la otra, ya que una estará bajo la GPL y otra estará bajo una licencia de código cerrado. Pero esa preocupación se aplica únicamente a las obras derivadas, y no al código que se distribuya en primer lugar.

Afortunadamente, la Free Software Foundation mantiene una lista que muestra qué licencias son compatibles con la GPL y cuáles no, en http://www.gnu.org/licenses/license-list.html. Todas las licencias tratadas en este capítulo están presentes en esa lista, en un lado u en otro.