Mar 20

Guía hacia el licenciamiento libre

Publicado el Martes 20 de Marzo del 2007 @ 0:52

Gnu levitando!

La siguiente pretende ser una guía general sobre las licencias de Software Libre más usadas e importantes de nuestros tiempos, cuales debemos conocer, sus diferencias, orígenes y aplicaciones.

Palabras de obertura

Esta nota en particular está pensada para dar respuesta e introducir a los lectores a un tema central: licencias. Muchos hablan de ellas, pero pocos realmente las leen y comprenden. Este artículo ha sido redactado en forma de guía, donde presentaré y explicare las licencias más importantes y usadas dentro del Software Libre: historia, características y otros aspectos importantes.

Formas de distribuir una obra

Como desarrolladores de software leyendo estas páginas seguramente ya habrán dado cuenta de que la mejor opción para distribuir su trabajo es hacerlo por las vías del Software Libre. Quizás me esté adelantando y solo leen esto en un intento por informarse acerca de las licencias libres. Cualquiera sea su situación hay ciertos conceptos que se aplican a cualquier forma de publicación de software: no importa si hablamos de licencias libres o software privativo, en todos los casos ustedes tienen potestad absoluta sobre su obra ya que son sus creadores. Legalmente como autores son reconocidos como derechohabientes y sus derechos sobre su obra son automáticos. Esto quiere decir que no hay necesidad, en primera instancia, de ir a registrar su obra: el Copyright (”Derecho de autor” en Argentina y otros países) se aplica en el mismo momento de la concepción de la obra. Existe también la posibilidad de registrarse como autores de una obra haciendo el famoso depósito de “Propiedad Intelectual” (mal nombre si los hay) pero generalmente esto se hace como un paso previo a llegar a una confrontación judicial. Esto no quiere decir que sea necesario llenar los formularios y hacer el depósito para ser reconocido como autor de una determinada obra, como dicho, eso se dá de forma automática.

Bien, con estas mínimas nociones seamos más específicos y hablemos de software: este es considerado como “obra del intelecto” por lo cual es regulado de igual forma que una obra literaria o fotográfica. Que el software deba ser considerado así es sumamente discutible, pero dejaremos ese debate de lado en esta oportunidad ya que lo que intentamos hacer es explicar como funcionan hoy las regulaciones legales sobre software. Recuerde querido lector: primero entender, luego transformar. Sigamos adelante.
Volvamos a su situación y la de su creación, ese bello programita del que tan orgulloso está. Asumo que su intención es la de hacer que su obra sea software libre. Usted quiere dar libertad a su software, no nos importa ahora el por qué. Existen dos caminos posibles para conseguir su cometido: liberarlo al dominio público o usar una licencia libre:

Dominio público:

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 también 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 quitado. Si no nos importa que esto suceda, el dominio público es una respuesta válida, si queremos defender la libertad de nuestro software y beneficiar solo a los que abogan por esa libertad, no lo será.

Licencia libre:

Basandonos en el Copyright podemos licenciar nuestro programa con condiciones que lo hagan libre. Los desarrolladores de software privativo emplean el copyright para quitar la libertad a los usuarios; nosotros empleamos ese copyright para garantizar su libertad. Una pregunta frecuente es ¿cuando un programa es libre?: cuando esta licenciado bajo una licencia libre y como dije en un principio existen muchas. Casi todas coinciden en otorgar el código fuente y permitir cualquier uso del software, algunas exigen atribución (dar el crédito al autor original) y otras exigen que las obras derivadas se licencien de igual forma (licencias Copyleft). Algunas otras tienen requisitos adicionales. Pero no se apresure, más adelante profundizaremos en todo esto. Por el momento nos sirve saber que optaremos por usar una licencia libre

Licencia, legalidad y otros mitos

En primer término, debemos entender la importancia del uso de una licencia libre, su por qué y revalorizarla en un contexto que tiende a llevar estas cuestiones a terrenos que lo alejan de la cotidianidad. Resulta difícil que las personas valoren realmente las bondades de una licencia libre, pero si lo pensamos bien esto es totalmente entendible: la mayoría de nosotros vivimos en sociedades analfabetas de las cuestiones legales e inmersas en tal ignorancia que conlleva a una situación donde “ser legal” o no serlo es lo mismo. Muchas veces me encuentro intentando explicar las posibilidades de las licencias libres y la forma en que enriquecen y benefician el bien común.
Situación hipotética pero muy común al mostrar software libre al sujeto a evangelizar: “Este programa es libre, lo que quiere decir que puedo darte una copia y compartirlo. Vos también podes hacer lo mismo”, a lo que nuestro interlocutor responde: “Pero si yo aunque el programa no sea libre puedo copiarlo y dárselo a quien yo quiera.”…¿ahora entienden la dimensión del problema?. He ahí la dificultad del tema licencias: ¿cómo conseguir que se valore el poder del libre licenciamiento en una sociedad que no le importa en absoluto la ley?. Quizás la respuesta este en encontrar las formas para que todos comprendan las herramientas legales, entre ellas las licencias. Personalmente creo que la afirmación popular sobre que “las leyes hay que respetarlas y no entenderlas” es otro punto a favor del modelo a combatir en el que pocos conocen y dominan a una masa ignorante.

Uso de las licencias

Las licencias libres se clasifican dependiendo de sus características (detalladas en el próximo punto) y teniendo en cuanto se acercan a los parámetros/condiciones de una licencia libre. Aquí debemos diferencias dos formas/entidades que se abocan a clasificar las licencias: en primer lugar y la más respetada es la Free Software Foundation quien definió originalmente el concepto de “licencia de Software Libre” y el Copyleft. Por otro lado, pero muy similar es la OSI (Open Source Iniciative) que desarrollo la “lista de licencias de Open Source” en base a la definción para los programas abiertos (Ver recuadro), la cual surgió a partir de las Directrices de software libre de Debian (http://www.debian.org/social_contract.es.html#guidelines). No son iguales pero no hay grandes diferencias entre ambas, sin dudas la primera es la más adoptada y extendida.
Además es importante saber que a la hora de elegir la licencia de nuestro proyecto, no solo debemos pensar en licenciar el software/código, también la documentación que lo acompaña p tener una licencia. Esto constituye lo que llamamos documentación libre y obviamente debemos usar una licencia especial para estos contenidos.
Existen también licencias especiales que utilizamos en determinados tipos de software como pueden ser bibliotecas o librerías.
La aplicación de la licencia es igual en la mayoría de los casos: debemos incluir el texto legal completo de la licencia junto con el programa o el código fuente. Además debemos colocar una “cabecera” o resumen en cada archivo fuente o artículo de la documentación. Esto se hace para que sea más fácil referenciar a las condiciones de la obras y resulta muy útil para orientar a quienes usen nuestro trabajo para crear obras derivadas. Sobre el final de la nota explicaré con un ejemplo concreto como aplicar una licencia.

Características comunes de las licencias

Es importante saber que el número y la diversidad de licencias libres es enorme, muchos proyectos o personas crean su propia licencia que se adapte a sus necesidades o deseos. Muchas veces esto resulta problemático: la excesiva proliferación de licencias casi iguales entre sí conlleva a agravar la incompatibilidad y volver engorroso el proceso licenciamiento del Software Libre, donde muchas veces incluimos cientos líneas de código de cientos de fuentes diferentes. Calculen la complejidad del problema si por cada programa tuvieramos una licencia diferente.
En la práctica, hoy en día la mayor parte del Software Libre se encuentra gobernado por las licencias originarias, gestadas por los proyectos más importantes como por ejemplo GNU, BSD, Apache, etc..
Más allá de que sean licencias ampliamente usadas o muy específicas de un desarrollo, los textos legales pueden hacer referencia o tener en cuenta ciertas cuestiones y características: la forma de dar la autoría, su aplicación, que pasa con las obras derivadas, la compatibilidad con otras licencias libres, que sucede con el software en un esquema de DRM, entro otras. A continuación detallo los puntos a los que generalmente puede hacer referencia una licencia libre:

Las cuatro libertades:

Para preservar las libertades de usar, estudiar, modificar y redistribuir el software, la mayoría de las licencias libres incluyen restricciones y requisitos que se aplican a la distribución.
Existe un eterno debate en la comunidad del Software Libre acerca de como trazar la linea justa entre las restricciones para preservar la libertad y las restricciones que la reducen.

Compatibilidad de licencias:

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

Proliferación de licencias:

La proliferación de licencias agrava el problema de la incompatibilidad de licencias. Además tiene el efecto negativo de incrementar el numero 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 fue volvió de alguna forma menos aceptada.

Protección contra patentes de software:

En los 90s, las licencias de software libre comenzaron a incluir clausulas, como las cláusulas represarias 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 represarias 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.

Copyleft:

Las licencias libres pueden ser clasificadas como Copyleft. Explicado en ediciones anteriores de “Cultura Libre”, 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” (termino 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 muy actual: el uso de Software Libre en esquemas de DRM. Explique en detalle este tema en las notas sobre DRM y GPLv3. Para evitar que el uso de Software Libre se vuelva ilegal ante leyes que prohiben 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). Por ejemplo, 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 practicamente 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 explicadas más abajo y excepcionalmente encontraremos una licencia 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.
Veamos entonces las licencias libres más conocidas:

GNU GPL (General Public Licence)

Es la licencia del licencia oficial del Proyecto GNU y es la mas 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 también.
El código bajo GNU GPL no permite ser enlazado o combinado con código bajo una licencia incompatible con ésta (ver GNU LGPL más abajo).
Su última versión es la 2 (Junio de 1991) y la FSF está trabajando en la 3ra versión (Ver nota sobre el tema en “Cultura Libre” de meses pasados”).

GNU LGPL (Lesser General Public Licence)

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. Veamos como es ésto: 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 libreria tiene funcionalidades extraordinarias en las de su tipo y ofrece ventajas por sobre las demas, es preferible usar la GPL y no la LGPL. De esta forma incentivariamos a los desarrolladores que quieran usar nuestra libreria a liberar tambien su código: aprovechando las cualidades especiales de nuestra libreria beneficiaramos al Software Libre ya que para utilizar nuestro trabajo otros desarrolladores también deberan hacer el suyo Software Libre (Más información al respecto en http://www.gnu.org/philosophy/why-not-lgpl.html).
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 discució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 vé 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 clausula 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 reutilización 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 carácteristicas 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. Encontrarán en el artículo un tabla que resume esta información y añade algunas otras licencias conocidas.

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 simbolo “©” puede estar incluido si asi lo deseamos, no es obligatorio. Tambien podriamos 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”.
    • Tambien 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 (Para acceder a los textos ya digitalizados: www.gnu.org/licenses/gpl-howto.html):
      • 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.
    • 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), puede conseguirlo en http://www.gnu.org/licenses/gpl.txt

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.

Palabras finales

Hemos conocido a través de éste articulo 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.
“El código es la ley”, y la ley gobierna el código…

Créditos

arriba

2 Comentarios

  1. El 2 de Mayo del 2007 a las 17:32

    […] La gente de MaestrosDelWeb derivó mi artículo sobre Licenciamiento Libre y publicó el trabajo en dos capítulos. El resultado es una miniguía que ha tenido excelentes repercuciones estos días y parece haber servido para hechar algo de luz sobre estos temas legales. Pueden leer: […]

  2. Leo Comenta:
    El 27 de Noviembre del 2007 a las 0:39

    Gracias por aclarar un poco el tema de licenciamiento. Estoy decidiendo liberar un software de mi autoría y no conseguía información clara.
    Aunque parezca raro se hace mucho incapié en evangelizar sobre software libre pero hay pocos lugares donde consultar o aclara dudas.
    Cualquier información extra que tengas me puede servir.

    Muchas gracias.
    Leonardo Combes.
    combesl@gmail.com

Deje su comentario

Atención: Los comentarios deben ser revisados previamente a su publicación. No es necesario volver a enviar su comentario.

Icono del feed Información web Sitio en Dominio Público