Eligiendo licencia Open Source

En mi trabajo actual, muy a menudo me encuentro con el dilema de tener que licenciar código. Este aspecto es importante, porque si tu código va a ser liberado públicamente como Software Libre en una plataforma como puede ser GitHub, es necesario que dediques unos minutos a pensar qué licencia poner y qué implicaciones tiene cada licencia. Además es muy recomendable que no subas ningún código sin explicitar el tipo de licencia a la que está sujeto, porque la ausencia de licencia y su publicación de manera pública en la red, implica que quien acceda a ese código "hará lo que quiera con él o por lo menos lo que legalmente pueda en su país".  Por defecto a un código sin licencia se le aplican las leyes en materia de Copyright del país, que además pueden variar en función de cada país. En caso de no incluir licencia, es aconsejable un aviso de Copyright con el año y el nombre del autor.

Mi consejo es que no te la juegues y deja claro lo que se puede hacer o no con tu software, se use por quien se use, en el país que sea.

Si buscas por Internet verás numerosos artículos que hablan sobre los tipos de licencia e incluso presentan categorizaciones de las mismas a fin de ordenarlas para que al lector le resulte más fácil elegir la que realmente necesita. Una posible categorización es la que divide a las licencias en 3 grandes grupos que son Copyleft Fuertes, Copyleft Débiles y Permisivas, tal como se presenta en el Blog de Víctor Goñi, que además nos presenta las cuatro libertades para los usuarios definidas por Richard Stallman y la compatibilidad entre las licencias de los distintos grupos. También tenéis una buena referencia en Hypertextual. Yo por mi parte voy a intentar explicar de manera breve los distintos grupos y algunas de sus licencias más usadas y extendidas, tomando como base la referencia de Hypertextual.

mpl-apache-gpl

 


Copyleft Fuertes

Se denomina a una licencia como Copyleft Fuerte, cuando las obras derivadas de un programa no pueden ser enlazadas por programas que no sean libres. Esto no prohíbe la acción contraria; que un programa con Copyleft fuerte enlace a un programa privativo.

El objetivo del Copyleft fuerte es no dar ventajas a los desarrolladores de software privativo, ya que estos podrían usar los programas creados para indirectamente privar las libertades de los usuarios. De este modo, un programador que desarrolle un programa privativo no podrá usar el código de uno libre para facilitarse el trabajo.

Entre las licencias más comunes tenemos:

  • GNU General Public License (GPL) 3.0: Creada por la Free Software Foundation como parte del proyecto GNU, es una de las más populares y utilizadas en la comunidad. Exige la publicación del código fuente y que todos los trabajos derivados del original conserven la misma licencia GPL, no permite enlaces con módulos privativos (de código cerrado) y requiere que todos los cambios realizados a la versión original sean reflejados en el código fuente con sus respectivos autores. Además posee ventajas únicas respecto a otras licencias como protección contra la tivoización y protección contra las leyes de DRM. Los derechos de autor deben conservarse tanto en el código fuente como en los binarios.
  • GNU General Public License (GPL) 2.0: Es la versión previa a la GPL 3.0, también creada por la Free Software Foundation como parte del proyecto GNU. Tiene características similares a la versión 3.0 pero carece de protección contra la tivoización, protección contra las leyes de DRM y no considera software que se ejecuta a través de la red. La Free Software Foundation desaconseja su uso para proyectos nuevos, en su lugar recomienda la GPL 3.0.

Copyleft débiles

Se denomina a una licencia como Copyleft débil cuando las obras derivadas de un programa pueden ser enlazadas por programas que no sean libres.

El objetivo del Copyleft débil es que cuando haya ya alternativas gratuitas privativas del mismo programa, dejar que programas privativos usen el programa, para así facilitar la adopción de programas libres.

Entre las licencias más comunes tenemos:

  • GNU Lesser General Public License (LGPL) 3.0: Es una licencia con características y beneficios similares a la GPL 3.0, pero con la diferencia que permite enlazar módulos privativos al código, por eso se considera una licencia débil. La Free Software Foundation sólo la recomienda para circunstancias especiales y estrictamente necesarias.
  • Mozilla Public License (MPL) 2.0: Creada por Mozilla Foundation para publicar la mayoría de sus aplicaciones y utilizada por muchos otros programas en la actualidad. Es una licencia que busca un balance entre las licencias permisivas (como la BSD) y las copyleft fuertes (como la GPL). Exige la publicación del código fuente y que cualquier derivado o extensión sea publicado bajo la misma licencia MPL. Sin embargo considera términos en los cuales el código licenciado puede ser parte de una aplicación más grande y esa aplicación puede contener módulos licenciados bajo cualquier otro esquema, incluso privativo. En otras palabras, permite que módulos libres puedan convivir con módulos privativos. No requiere que los cambios realizados sean reflejados en el código fuente y los derechos de autor deben mantenerse tanto en el código fuente como en los binarios.
  • Eclipse Public License (EPL) 1.0: Es una licencia muy similar a la Mozilla Public License ya que busca un equilibrio entre licencias permisivas y fuertes, teniendo como objetivo principal hacerla atractiva para los ambientes de negocios. No requiere ningún seguimiento en los cambios y sólo exige la publicación del código fuente cuando las modificaciones se consideran un trabajo derivado y no una extensión o un módulo separado. Los trabajos derivados deben ser publicados siempre bajo la licencia EPL. Esta licencia es usada por la Eclipse Foundation y nace como reemplazo a la Common Public License.

Licencias Permisivas

Una licencia de software libre permisiva, también conocida como minimalista o liberal, es una licencia de software libre flexible respecto a la distribución, de modo que el software pueda ser redistribuido como software libre o software propietario, siendo libre la licencia original del autor.

La característica peculiar de estas licencias se debe a que no poseen copyleft, ya que el trabajo derivado no tiene por qué mantenerse con el mismo régimen de derechos de autor que el original. Esto maximiza la libertad para quien recibe el software y quiere desarrollar algo derivado, permitiéndole elegir entre el amplio abanico de licencias existentes. No obstante, desde el punto de vista de los usuarios, esto se puede considerar como una restricción a su libertad, en el sentido de que el software propietario siempre restringe las libertades de los usuarios del mismo y las licencias permisivas, abren esta posibilidad.

Entre las licencias más comunes tenemos:

  • Apache 2.0: Es la licencia creada en principio por la Apache Software Foundation para publicar los paquetes del proyecto Apache, sin embargo en la actualidad es usada para muchos otros proyectos. Se considera una licencia permisiva porque no requiere que los trabajos derivados sean publicados bajo la misma licencia y tampoco exige la liberación del código fuente. Los cambios a la versión original deben reflejarse en un archivo en el código fuente y pueden ser publicados usando cualquier otra licencia. Lo más importante de esta licencia es que los derechos de autor deben conservarse tanto en el código fuente como en los binarios.
  • MIT: Es una licencia perfecta si lo que quieres es llegar al mayor número de desarrolladores y no te importa en dónde o cómo puede ser usado tu código. No se considera una licencia para software libre pues no garantiza la libertad de la aplicación, lo único que exige es que los derechos de autor sean incluidos en todas las copias o posibles porciones del software. Recibe su nombre debido a que fue la licencia usada por el Instituto de Tecnología de Massachusetts (MIT en inglés) para publicar la versión original del sistema de ventanas X.
  • BSD 2-Clause: Conocida también como licencia BSD Simplificada o licencia FreeBSD, es otra licencia permisiva o no copyleft que solamente exige que los derechos de autor y las resignaciones de garantía sean incluidas en todas las distribuciones del software, bien sea en forma de código o en binario. Al igual que la licencia MIT, es ideal si no te interesa lo que la gente pueda hacer con el código de tu aplicación y quieres llegar a un mayor número de desarrolladores.

 

He presentado los 3 grupos de licencias Open Source y las licencias más comunes dentro de cada grupo, pero seguramente estés pensando: "Ufffffff, necesito algo más práctico y ágil para de un golpe de vista poder seleccionar mi licencia...".  Por ello os facilito la siguiente referencia, en la que mediante tablas  e muestran los permisos, las condiciones y las limitaciones de cada licencia:

http://choosealicense.com

Espero que este artículo os haya ayudado a comprender las licencias más comunes y a elegir, en consecuencia de manera más rápida, la que necesitéis para vuestro software.

 





3437 Visitas Totales 2 Visitas para Hoy

Deja un comentario