gentoo linux, java, software libre y otras hierbas
nov, 20 2007 - 12:47 pm

La licencia GPL

El presente artículo sólo intenta aportar un enfoque práctico a un tema del cual se dispone de mucha información en la red: Licencias libres, y más concretamente la GPL (General Public License). Todo lo que quieras saber está en el site de la Free Software Fundation (FSF), incluyendo un montón de casuística que, por razones de espacio y para no aburrir al personal, no voy a incluir en el presente documento.
He de indicar, antes de nada, que no me considero un experto en estas cuestiones. No he estudiado derecho, tampoco soy programador y menos aún he colaborado en proyectos GPL (aunque en esto último debo decir que ha sido por falta de tiempo, no por ganas, dado que existen multitud de posibilidades de cara a participar: traduciendo documentación, probando betas, reportando bugs, ofreciendo servidores para colgar-distribuir aplicaciones, diseñando logos, iconos,…) Me muevo en el mundo de la gestión de recursos (redes, equipos informáticos y personas) e intento, siempre desde el respeto a otros SO y a la habilidad de aquellos que van a manejar los equipos, introducir algo del mundo GNU en el que llevo ya desde el año 96 (en todo este tiempo el tema del “free” software y las licencias y estándares ha sido algo que me ha preocupado y sobre el que he procurado mantenerme informado)

Con este marco como presentación, paso a abordar el tema. Creo que a la hora de hablar sobre licencias de software hay un concepto sobre el que siempre debemos “pivotar”: los derechos. Tanto derechos del usuario como del programador. Desde este punto de vista, debemos siempre tener presente dos realidades:

  • La licencia GNU GPL se enfoca más hacia los derechos del usuario, frente a otras privativas como la licencia EULA, que busca “proteger” a la empresa desarrolladora del software. Esto al menos en la teoría: yo nunca he entendido cómo pueden perjudicar los derechos del usuario a la empresa. Si el primero está contento, se beneficiará retroactivamente la segunda… Pero aquí entran en juego concepciones sobre el alcance del término licencia y patente (tan distintos en los EEUU y Europa, por ejemplo, aunque últimante intente imponerse el sentido americano en el viejo contienente. Ciertamente es más goloso, monetariamente hablando, a corto plazo).
  • Por otro lado, las licencias privativas (por cierto, todavía no he mencionado que EULA es la licencia de Microsoft) tienen por objetivo limitar al usuario a tomar acciones, elecciones u opciones sobre el software (el impedir el acceso al código fuente, por ejemplo, no nos permite adaptar las aplicaciones a nuestras necesidades y a nuestro equipo, eliminando opciones que no vayamos a utilizar o recompilándolo para optimizarlo según el procesador que tengamos, por ejemplo) mientras que la GNU GPL pretende salvaguardar los derechos de los desarrolladores originales, asegurando de esta forma la continuidad y la accesibilidad del código fuente para el software.

Hasta aquí no he descubierto nada nuevo. Estas dos ideas aparecen de forma reiterativa en todos los foros y news que consultemos sobre el tema. Una lectura rápida y superficial de ambas licencias reafirman lo dicho:

La licencia GPL

  • Permite la copia, modificación y redistribución del software.
  • Al no suponer costo alguno, tampoco nos ofrece garantías. Si la última versión mejorada del programa no corre en tu PC, no puedes exigir daños y perjuicios al creador del soft. De ahí la importancia de la Comunidad que gira en torno de cada proyecto, que ofrece soluciones, parches y ayuda a todo aquel que lo necesite.
  • Algo que muchas veces se desconoce o confunde con el “freeware”: Posibilita que el software sea vendido y se puedan cobrar por los servicios sobre las aplicaciones creadas… Al fin y al cabo hay que vivir de algo, y no sólo de amor al “arte”.

Debemos incluir el código fuente además del proyecto compilado.

  • Si modificamos el software y lo comercializamos, no debe tener costo por la licencia.
  • Los cambios en la licencia deben mantener ciertos términos generales, recogidos en la documentación de la propia licencia.

Mientras, las licencias privativas

  • Prohíben la copia y requieren de un registro obligatorio.
  • Solo pueden ser transferidas un número limitado de veces a otros usuarios.
  • La garantía que ofrecen es por los primeros 90 días (en general), además de no garantizar actualizaciones y parches a lo largo de lal vida “útil” de mi equipo.

Hay que indicar que la licencia GPL apareció en los años 80 como resultado de los esfuerzos de la FSF de cara a salvaguardar los derechos del usuario informático en un entorno cada vez más dominado por las patentes. La primera versión respondía a una visión un tanto “ingenua” de la realidad y pronto tuvo que someterse a una revisión. Como resultado apareció la segunda versión de la GPL, que es la actualmente vigente y que data de Junio de 1991. En todo este tiempo han surgido múltiples avances y situaciones no recogidas que han llevado a un nuevo proceso de revisión de la licencia, que se espera cristalicen en la GPL v.3. Ahora mismo está en proceso de discusión pública (se inició el 16 de enero de 2006 con la presentación del primer borrador) y con mucha controversia por parte de pesos pesados el mundo GNU. Pretende:

  • Resolver formas en que a pesar de todo alguien podía quitar libertades a los usuarios, incluyendo cláusulas que defiendan a la comunidad de software libre del uso indebido de patentes de software
  • Prohibir el uso de software cubierto por la licencia en sistemas diseñados para quitar libertades (DRM).
  • Resolver ambigüedades y aumentar su compatiblidad con otras licencias.

El hecho es que la versión que actualmente rige es la GPL v.2, que es bajo la cual están licenciados el kernel del sistema GNULinux y un montón de paquetes y utilidades fundamentales, especialmente aquellos creados por miembros de la FSF, aunque otras utilidades “imprescindibles”, como pueden ser XFree86, OpenSSH, Mozilla, OpenOffice, etc., se distribuyen bajo licencias libres no-GPL.

Dicho esto hay que aclarar dos puntos claves referidos a las distros linux cuya respuesta no siempre se encuentra en los debates que sobre este tema se tienen en la red:

CLAVE 1:

  • La GPL, al igual que otras licencias, no consideran como “distribucion” a la mera agregación de aplicaciones. Esto es: si yo tomo el programa GPL wifignu v.0.1, remasterizo la distro knoppix STD 0.1 y distribuyo la distro HackWifi 0.1, debo decir que el trabajo se basa en knoppix STD 0.1, mantener integras todas las notas de copyright de knoppix STD 0.1 en HackWifi 0.1, señalar las diferencias entre una y otra y ofrecer el código fuente.

CLAVE 2:

  • Todas las distribuciones importantes (RedHat, SuSE, Mandriva, etc. Debian es un caso aparte) tienen dos versiones: La oficial y la “sólo” GLP.
  • La ”sólo” GLP es la versión “libre” de la casa distribuidora. Se colocan en el FTP publico respectivo para que puedan ser copiadas en los Cds, DVDs o pendrives.
  • La llamémosla versión oficial añade una serie de extas a la distribucion para hacerla mas atractiva: manuales, mayor número de paquetes, presentación en cajas con logos… Incluyen igualmente drivers y aplicaciones privativas, para lo cual ha debido realizar previamente acuerdos con fabricantes de Software para incluir “licencias especiales o limitadas” de esos productos adaptados a su distribución. La mayoria estas “licencias limitadas”, permiten que el comprador del producto Oficial pueda utilizar el software para fines no comerciales. Una de las consecuencias que tiene la inclusión de estas licencias es que si uno copia el DVD “oficial” de la distro donde están incluidos estos programas, incurre en un acto que puede llegar a ser ilegal, en función de los límites impuestos por la licencia. Por lo tanto, si queremos disfrutar (=descargar, tostar) Linux, debemos mirar primero que sea la distribucion GLP del fabricante, no la oficial. Si queremos un Linux más completo, con soporte y actualizaciones, debemos comprar la version oficial… Personalmente creo que es conveniente realizar este desembolso de vez en cuando, dado que no es un gran gasto comparado con otros S.O. y estamos animando a los fabricantes a que cada dia mejoren el soporte de Linux para sus productos. La ley de la oferta-demanda.

Hasta ahora he hablado de la GPL como si fuese una cosa única y no es así. Existen múltiples variaciones de esta licencia, en función del comentido que desempeñen. Si nos referimos a la creación de proyectos-aplicaciones software (que es donde me quiero centrar dada la enorme confusión que existe al respecto), el proyecto GNU tiene dos licencias principales: La GNU GPL habitual y la GNU GPL para Bibliotecas [GNU Library GPL].
Un comentario sobre esta última: Usar la GNU Library GPL permite el uso de la biblioteca en programas privativos. Mientras que el uso de la GPL usual para una biblioteca la hace disponible únicamente para programas libres. Las consecuencias sobre escoger una u otra son claras.

Las propia GNU GPL recoge múltiple casuística que se nos pueden presentar al programar aplicaciones libres. ¿Podemos incluir código libre en aplicaciones privativas? El código generado por aplicaciones libres ¿es también libre? ¿Debo licenciar públicamente cualquier aplicación libre que modifique, incluyendo las fuentes? ¿Puedo licenciar plug ins libres para aplicaciones privativas..? En estos casos la respuesta es no, aunque en todos ellos se matiza. La ética personal y la utilización de las aplicaciones suelen ser los raseros de enjuiciamiento. Recomiendo encarecidamente leer con detenimiento las faqs que al respecto están el la web de la FSF.

Existen también otras licencias “hermanas” de la GPL:

  • La licencia de documentación libre GNU (GFDL) -todos los artículos de la wikipedia están licenciados como GFDL-
  • La Open Audio License, para trabajos musicales,
  • La MGPL o la LGPL (Lesser General Public License y Library General Public License), que permiten el enlace dinámico de aplicaciones libres a aplicaciones no libres.

Por último, una serie de aclaraciones sobre los pasos concretos para licenciar como GPL una aplicación que he creado.

Primero y muy importante: Legalmente hablando, sólo la versión original (en inglés) de la GPL es la que especifica realmente las condiciones de distribución de los programas GNU… Vamos, que lo correcto sería incluir el texto original de la licencia GPL en mi aplicación. Aunque de cara a facilitar la labor a la gente que no sabe inglés, la FSF permite utilizar traducciones a otros idiomas si se indica que se siguen sus normas para traducciones no oficiales.

Segundo: El texto de la licencia habría que adjuntarlo en principio al comienzo de cada archivo fuente. Como esto resultaría pesado en exceso, se recomiendo que sólo se incluya un aviso que contenga por lo menos la línea del “copyright” y un indicador sobre el lugar en el que podemos localizar el texto completo. Generalmente se coloca en un archivo con el nombre COPYRIGHT y/o en el README, en el cual también se incluyen instrucciones sobre la compilación, el modo de reportar bugs y una dirección de contacto con la persona que coordina-lidera el proyecto.

El texto a incluir sería de la forma que sigue:


Copyright (C)
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA


Tercero y final: ¿Porqué todo esto? Al fin y al cabo, el modo más simple de hacer un programa libre es ponerlo en el dominio público, o sea, sin copyright. Esto permitirá que la gente comparta el programa y sus mejoras, si así lo desean. Pero tambien permitiría a quien no quiera cooperar convertir el programa en software privativo. Pueden hacer cambios y distribuir el resultado como un producto privativo. Las personas que reciban el programa en su forma modificada no poseen la libertad que el autor original les dio debido a que el intermediario se la ha retirado. De esta forma garantizamos la libertad y los derechos de todos.

Por Mordor.

2 Comentarios | deja el tuyo

2 Comentarios en “La licencia GPL”

  1. franz dice:

    Hola mordor, creo q tu explicacion es bien clara. pero tengo una duda. Y creo q no todos saben esto.
    Tengo que registrar mi software/library/codigo fuente en algun registro publico, como el de mi pais por ejemplo.?
    Por que seguro q no es suficiente con poner mi nombre y los detalles de la licencia pa q todo el mundo respete mis derechos.

  2. Manuel R Camacho dice:

    Yo tambien tengo la misma duda…. agradeceria nos explicaras un poco mas sobre esto….

¡Déjanos tu comentario!