gnu.jpgEn la primera parte del artículo Licencias libres de Software (I) hablamos sobre las licencias más usadas e importantes actualmente, sus características, diferencias, orígenes y aplicaciones. Ahora seguiremos hablando sobre los tipos de licencias y otros aspectos que hay que tomar en cuenta.

Compatibilidad de licencias

Si la licencia de dos programas contienen requisitos contradictorios, es imposible combinar partes de esos programas en uno nuevo. Este problema constituye una incompatibilidad.

Proliferación de licencias

La proliferación de licencias agrava el problema de la incompatibilidad, tiene el efecto negativo de incrementar el número de textos legales que deberían leer los desarrolladores y distribuidores de Software Libre.

La proliferación de licencias comenzó a ser un problema al final de los 90s y continuo en los comienzos del 2000, pero en el año 2005 fue identificado como un problema y la creación de nuevas licencias libres sin necesidad aparente se volvió de alguna forma menos aceptada.

Protección contra patentes de software

En los 90s, las licencias de software libre comenzaron a incluir cláusulas, como las cláusulas represarías contra el uso de patentes, para proteger al software libre de los problemas de litigación de patentes que no existían en los 80s.

Las cláusulas de represarías contra patentes consisten básicamente en la terminación/cancelación de los derechos de una persona, si esta intenta imponer ciertos monopolios con el uso de patentes.
Esta cuestión fue la causa principal de la segunda versión de la licencia de GNU GPL.

El Copyleft

Las licencias libres pueden ser clasificadas como Copyleft, el contenido bajo las reglas del Copyleft se caracteriza por exigir el licenciar con la misma licencia las obras derivadas del programa.

Esto es también conocido como “efecto vírico” (término usado muchas veces para atacar al uso de licencias libres), y que produce la transmisión de la libertad entre sus obras y sus derivadas.

DRM y Tivoisación

Se trata de un problema actual, el uso de Software Libre en esquemas de DRM, para evitar que el uso de Software Libre se vuelva ilegal ante leyes que prohíben el estudio o ingeniería inversa sobre sistemas de DRM.

Por ejemplo: la Digital Millenium Copyright Act, una ley de EEUU que criminaliza a las personas por querer aprender. Además, la GPLv3 resuelve el problema aclarando en la licencia que el software no compone un esquema de DRM.

Atribución y notas legales

La mayoría de las licencias requieren que las versiones modificadas del software se distribuyan obligatoriamente aclarando que son versiones modificadas y dando crédito a los autores originales, preservando la nota de Copyright.

Las licencias libres más conocidas

Hacer un listado exhaustivo de todas las licencias libres existentes no solo es una tarea prácticamente imposible (por la gran cantidad que existen, porque no tardaría en estar desactualizada) sino también porque no resulta necesario conocer absolutamente todas.

Es preferible concentrarse en las más importantes y extendidas, aquellas que dan origen a las demás. La mayoría de las veces nos encontraremos con alguna de las licencias y encontraremos una específica que seguramente hará referencia a alguna de las conocidas y nos indicará cuales son las variantes introducidas y si es o no compatible con ella.

Licencias libres más conocidas:

GNU GPL (General Public Licence)

  • GNU GPL es la licencia oficial del Proyecto GNU la más usada en el universo del software libre.
  • Es una licencia Copyleft fuerte, determina que en caso de hacer una distribución pública del software, éste y sus versiones modificadas deben estar bajo GNU GPL.
  • El código bajo GNU GPL no permite ser enlazado o combinado con código bajo una licencia incompatible con ésta.

Su última versión es la 2 (Junio de 1991) y la FSF está trabajando en la 3ra versión.

GNU LGPL (Lesser General Public Licence)

GNU LGPL es la licencia Menor (Lesser) de la GPL. Antes era conocida como la licencia para Bibliotecas (Libraries) de las GPL, el nombre fue cambiado hace un tiempo para evitar su uso excesivo.

La licencia menor es igual en condiciones y restricciones a la GPL común, con la diferencia que permite enlazar a software privativo, su uso solo es recomendado en casos puntuales y estratégicos. En la situaciones en que nuestra librería no ofrece mayores funcionales que otras librerías no libres del mismo tipo, no existirían incentivos para que un desarrollador de software privativo use nuestra librería.

Le daría lo mismo usar cualquiera, de hecho, existiendo una librería que no permitiera enlazar a software no libre (GPL común) le resultaría poco atractivo. En estos casos (cuando nuestra librería no tiene ninguna funcionalidad que la haga especial o atractiva) es recomendado usar la LGPL.

Cuando nuestra librería tiene funcionalidades extraordinarias en las de su tipo y ofrece ventajas por sobre las demás, es preferible usar la GPL y no la LGPL. De esta forma incentivaríamos a los desarrolladores que quieran usar nuestra librería a liberar también su código.

Aprovechando las cualidades especiales de nuestra librería beneficiáramos al Software Libre ya que para utilizar nuestro trabajo otros desarrolladores también deberán hacer el suyo Software Libre (Más información). Hoy en día el Proyecto GNU esta intentando disminuir el uso de la LGPL en favor de la GPL. La versión actual de la LGPL es la 2 (Febrero de 1999).

Licencia BSD

Esta licencia muy conocida por su posición “aun más libre” que la GPL es siempre un punto de discusión cuando se habla de licencias de Software Libre.

Técnicamente una licencia del tipo BSD no tiene Copyleft, por lo que es posible hacer versiones modificadas no libres. Esto se ha dado mucho en la práctica, por ejemplo, Microsoft uso código de BSD en el sistema de red de Windows y muchos componentes de FreeBSD han sido usados en MacOS X.

La oposición entre la licencia BSD y la GPL es clara en ese punto: la primera considera que si el software es libre no debe imponer ninguna restricción en su distribución aunque esto signifique que un alguien use el software para su propio beneficio y no comparta el código, la GPL ve en esto un problema: el software libre termina favoreciendo a quienes no les importa la libertad de los usuarios.

Existe otro punto por el cual las licencias BSD no eran consideradas libres por GNU: su cláusula de publicidad (también conocida como “4-clause”) que obligaban a hacer mención a la Universidad de Barkeley, lo cual era una restricción adicional.

En el año 1999, esta cláusula fue eliminada y a partir de allí la licencia BSD se fragmento en dos tipos: las que incluían la “4-clause” y las que no. Es por eso que muchas veces encontramos software bajo “BSD-old”/”4-Clause BSD” y “BSD-new”/”BSD Revised”.

Hoy en día muchos proyectos grandes usan licencias del tipo BSD o inspiradas en su filosofía. Por ejemplo NetBSD usa una licencia BSD original.

Licencia X11

Es una licencia de software libre simple y permisiva sin Copyleft pero compatible con la GNU GPL. XFree86 usa la misma licencia. A veces se le llama la licencia del “MIT“, pero ese término es engañoso puesto que el MIT ha utilizado muchas licencias para su software.

Licencia Pública de Mozilla (MPL)

La licencia de la Fundación Mozilla cumple completamente con la definición de software de código abierto de la Open Source Initiative (OSI) y con las cuatro libertades del software libre enunciadas por la Free Software Foundation (FSF).

Sin embargo la MPL deja abierto el camino a una posible reutilizar de forma comercial no libre del software, si el usuario así lo desea, sin restringir la reutilización del código ni el relicenciamiento bajo la misma licencia.

Aunque el uso principal de la MPL es servir como licencia de control para el navegador Mozilla y el software relacionado con él (el navegador Firefox o el cliente de correo Mozilla Thunderbird, por ejemplo), esta licencia es ampliamente utilizada por desarrolladores y programadores que quieren liberar su código.

Tiene algunas restricciones complejas que la hacen incompatible con la GNU GPL. De hecho, no se puede, legalmente, enlazar un módulo cubierto por la GPL con un módulo cubierto por la MPL. Sin embargo, la versión 1.1 de la MPL tiene una salvedad (sección 13) que permite que un programa (o partes de él) ofrezca la elección entre la MPL y otras licencias. Si una parte de un programa permite la GNU GPL o cualquier otra licencia compatible con ella como alternativa, esa parte del programa es compatible con la GPL.

Licencia CDDL (Common Development and Distribution License)

La CDDL (Desarrollo Común y Licencia de Distribución, en español) es una licencia Open Source (OSI) y Free software, producida por Sun Microsystems, basada en la Mozilla Public License o MPL, versión 1.1.

La CDDL es una de las nueve licencias más populares, mundialmente usadas o con fuertes comunidades, siendo OpenSolaris el desarrollo más importante que la implementa. La Free Software Foundation afirma que se trata de una licencia libre y que es incompatible con GNU GPL.

Licencia de la Fundación Apache

Existen tres versiones de la licencia Apache (1.0, 1.1. y 2.0) siendo la 2.0 la más empleada. Las dos primeras versiones carecen de Copyleft. La última versión es considerada una licencia de Software Libre.

Incorpora ciertas condiciones extra relacionadas con patentes: exige incluir un permiso de uso de patentes por parte del autor/poseedor de las patentes y además puede rescindirse la licencia por problemas de patentes.

Estas características la hacen incompatible con la GNU GPL 2, pero posiblemente no con la GNU GPL 3 en desarrollo, ya que esta contempla el problema de las patentes desde una perspectiva similar. Conociendo estas licencias contamos con una base general sobre las distintas posibilidades para licenciar nuestro software e incorporar código de terceros en nuestras creaciones.

Licencias libres para documentación

Como dije antes, no solo es importante liberar el software y su código fuente, también la documentación lo es. Ésta puede consistir en manuales, documentación de código y todo lo que el desarrollador considere importante para usar/modificar su programa.

La cantidad de licencias de documentación libre es significativamente menor que el de licencias de software. Veamos algunas de ellas:

GNU FDL (Free Documentation License)

La licencia GNU FDL es la más extendida, básicamente su aplicación determina que la obra en cuestión pueda copiarse, modificarse y redistribuirse.

Al igual que la GNU GPL no hace especificaciones sobre el uso comercial y es del tipo Copyleft. La GNU FDL permite definir secciones invariantes dentro del texto, las cuales se deberán preservar sin cambios en las modificaciones y obras subsecuentes.

Esto puede causar problemas para su uso, ya que obliga a conservar una serie de textos, que pueden ser inconvenientes para ciertos usos. Por ejemplo, al editar un libro bajo la GFDL en papel, si su historial es muy largo, podría obligar a que buena parte de él fuera una lista de contribuciones.

También crea incompatibilidades con otras licencias libres, como las de Creative Commons. Esto es justificado por los defensores de este tipo de licencia por la necesidad de impedir que terceras partes mejoren el documento, y se apropien de él.

La Licencia de Documentación de FreeBSD

Es una licencia de documentación libre simple y permisiva sin Copyleft pero compatible con la GNU FDL. Creative Commons Atribución-CompartirDerivadasIgual.

El sistema de licencias Creative Commons nos permite dos combinaciones que resultan en una licencia libre, estas son: Atribución (BY) y Atribución-CompartirDerivadasIgual (BY-SA). La primera de ellas no es Copyleft, la segunda sí. Podemos usar este tipo de licencias en nuestros manuales y artículos técnicos, no se suelen utilizar en la documentación adjunta al software sino para material complementario.

Aplicación práctica de una licencia libre

Veamos ahora como aplicar concretamente la licencia en nuestro software, no todas se aplican exactamente de la misma forma, pero en general el procedimiento es similar. A modo de ejemplo explicaré como licencias nuestro software bajo GNU GPL 2.

En cada archivo que compone el código fuente de nuestro software deberemos agregar la nota del Copyright, algo como: “Copyright 2007 Mauricio Ferrari”. Algunas especificaciones sobre este punto:

  • Siempre debemos usar la palabra “Copyright”, nunca alguna de sus “traducciones” (como “Derecho de Autor” o “Derecho de Copia”). El símbolo “©” puede estar incluido si así lo deseamos, no es obligatorio, también podríamos usar “(C)”.
  • El año especificado debe ser aquel en el que liberamos dicha versión. A medida que vamos liberando nuevas versiones en los años siguientes, la nota legal deberá hacer referencia a cada uno: “Copyright 2007 2008 2009 Mauricio Ferrari”.
  • También debemos agregar en cada archivo fuente una nota estableciendo que esta permitida la copia bajo los términos de la GNU GPL. Este es el texto a incluir.
  • Junto con el código fuente debe incluir una copia de la licencia completa, en nuestro caso la GNU GPL. Este archivo debe ser texto plano y usualmente es nombrado como LICENSE o COPYING. El texto de la licencia debe ser en inglés (las traducciones no son oficiales).
  • Como lo dicho al comienzo del artículo, no hay ninguna necesidad legal de registrar el software en la entidad de Copyright o Derechos de Autor de su país. La sola distribución hace que su software “obtenga” Copyright. El registro ante la entidad solo cobra sentido ante una confrontación legal o violación de la licencia de su software.
  • En el caso de la GNU GPL, la FSF nos ofrece nombrarla como titular de nuestro Copyright. De esa forma ellos se encargan de hacer valer la licencia en caso de violación, sobre todo en el contexto legal de los Estados Unidos. Esta posibilidad es muy usada por aquellos desarrolladores que no tienen posibilidades, conocimiento o interés en hacerse cargo de las cuestiones legales de su software, pero quieren hacerlo libre.
  • En Resumen

    Hemos conocido a través de éste artículo el ABC del licenciamiento de software, las características comunes a las que hacen referencia las licencias libres, sus fundamentos, puntos de vista y demás. Además resumí las más conocidas y usadas, ejemplificando su aplicación práctica.

    Para dar cierre a éste artículo creo conveniente recapitular sobre lo dicho en un principio: las licencias son un tema complejo, pero parte de esa complejidad es también una necesidad de muchos intereses que prefieren alejar a los creadores de su deber y derecho para definir como será gobernadas sus obras.

    Es preciso y necesario que progresivamente más desarrolladores se acerquen a estos temas cruciales, comprendan la importancia política del uso de licencias libres. Indagar en estos terrenos poco amistosos es de vital importancia para hacer valer nuestra posición.

    Recomendamos leer