jueves, 15 de junio de 2006

Entender las licencias de software

Existen en la actualidad numerosos términos destinados a indicar la propiedad del software, y los derechos y deberes de su utilización. Por tanto es básico entender los terminos principales de las licencias de software exitentes antes de poder decidir las herramientas a utilizar. También será básico si pretendemos publicar el trabajo que vamos a realizar; no obstante para este aspecto entiendo básico analizar la propiedad intelectual del software y los derechos de autor y copyright, especialemente si pretendemos obtener beneficios económicos con el mismo o simplemente publicarlo. Sin embargo creo que por ahora es suficiente con el análisis desde el punto de vista de las herramientas y dejo para más adelante lo anterior, ya que por ahora desconozco la calidad del producto resultante (todavía no esta ni planteado). En este punto, paso a resumir lo que entiendo yo sobre las principales licencias de software.

  • Software de dominio público. Situación en que queda el software una vez que han vencido los derechos de su autor con el paso del tiempo requerido (70 años normalmente depués del fallecimiento del autor) o este ha cedido expresamente sus derechos al dominio público. Tras esto, lo único que se debe respetar es la paternidad del autor. Es decir, se puede utilizar con total libertad con sólo mencionar su autor original. Una lista de recursos de dominio público se puede encontrar pinchando aquí.

  • Freeware es un software de computadora que se distribuye sin cargo. A veces se incluye el código fuente, pero no es lo usual (también conocido como código cerrado). Algunos desarrolladores liberan versiones freeware de sus productos para obtener un número de seguidores que puedan estar dispuestos a pagar por una versión más completa, o porque es una edición obsoleta de un programa. En teoría, para poder utilizar este software bastaría con mencionar su autor.

  • Open Source / Software Libre. El significado obvio de "código abierto" es que "se puede obtener el código fuente". Por tanto un programa bajo este tipo de licencia puede ser software libre, pero también puede ser semilibre o incluso completamente no libre. El software libre se basa en que se debe disponer del código fuente para modificarlo y mejorarlo y que estas mejoras deben disponer de una licencia a su vez de software libre que permita el beneficio de la comunidad. Por lo general, un programa de código abierto puede ser y de hecho es software libre, como igualmente un programa software libre es open source, la diferencia entre ambos tipos de software es básicamente filosófica: El open source se basa en que al compartir, el código el programa resultante es de mayor calidad, mientras que el software libre se basa en que prohibir compartir va contra la naturaleza humana. La filosofía del open source se basa en un decálogo de "diez mandamientos" totalmente compatibles con los cuatro en los que se basa el software libre. En el sitio web de la OSI está la lista completa de las licencias de software libre actualmente aprobadas y entendidas como tales. Como corolario, cualquier programa bajo este tipo de licencia debe proporcionar el código fuente al menos y su usuario tiene derecho a utilizarlo y/o modificarlo en beneficio propio.

    • La GNU GPL (General Public License o licencia pública general) licencia GNU GPL posibilita la modificación, redistribución del software, pero únicamente bajo esa misma licencia. Se la conoce normalmente como licencia GPL simplemente. Añade a lo comentado anteriormente, que si se reutiliza en un mismo programa código "A" licenciado bajo licencia GNU GPL y código "B" licenciado bajo otro tipo de licencia libre, el código final "C", independientemente de la cantidad y calidad de cada código "A" y "B" debe de estar bajo la licencia GNU GPL. Por tanto si utilizamos en nuestro desarrollo código bajo este tipo de licencia, la licencia de nuestro software ha de ser como mínimo igual de restrictiva que esta. Este concepto se introduce con el denominado copyleft con el objeto de garantizar que cualquier aprovechamiento de un programa con licencia pública general redunde sobre la comunidad. Para conocer más sobre esta licencia puede acceder a lo siguientes documentos:
    • La LGPL (Lesser General Public License o Library General Public License). Permite la utilización simultánea de software con este tipo de licencia en desarrollos libres y/o privativos (no libres). Es por tanto mucho menos restrictiva que la GNU GPL. Lo único que impide o protege esta licencia es a realizar versiones comerciales del producto en cuestión, pero no a realizar versiones comerciales con el producto como una herramienta (librería o bliblioteca). Támbién obliga a registrar todos los cambios realizados por terceros, de manera que no afecten a la reputación del autor original del software.De cualquier forma siempre deben estar disponibles los fuentes de las modificaciones realizadas a la misma, amen de reconocer el trabajo del autor. No obstante si puede ser utlizada con software propietario. Para entender mejor las diferencias de esta librería con la GPL puedes visitar los siguientes enlaces:
    • La licencia Apache es una descendiente de la licencias BSD (ver siguiente apartado), no es GPL (GNU GPL). Esta licencia te permite hacer lo que quieras con el código fuente (incluso forks y productos propietarios sin entregar el código) la única restricción es que les reconozcas su trabajo. Yo entidendo que básicamente es la misma que la LGPL pero no es necesario que las modificaciones sean públicas.

    • La licencia BSD es la licencia de los sistemas BSD (Berkeley Software Distribution) desarrollados por la Universidad de Berkeley. Esta licencia permite el uso del código fuente en software no libre, con lo que es muy similar a la LGPL. La diferencia consiste en que en la licencia BSD ni siquiera es necesario mencionar a los autores, ni proporcionar el código fuente y por tanto es básicamente equivalente a efectos operativos al freeware del que se proporcionan los fuentes o al software de dominio público. Aunque por este mero hecho, se considera elegante mencionar la procedencia. Existen muchos un artículos interesantes considerando estos aspectos. Recomiendo leer entre otros:


  • Shareware. Es software generalemente no libre y con precio reducido que simplemente de dejan probar gratuítamente durante un breve periodo de tiempo. Generalmente también puede obtenerse el código fuente por una módica cantidad.
Bien, con esto creo que básicamente está categoriazadas las licencias. Paso a continuación a mencionar otras licencias por su importancia:

  • La licencia de Java es una licencia particular más con características muy especiales. Sun desde el principio ha pretendido y conseguido crear un leguaje de programación estándar que permita ejecutarse bajo casi todas las plataformas. Su licencia original pone tanto énfasis en que no aparezcan extensiones incompatibles de su lenguaje, que hasta al desarrollar un programa en java, siendo estrictos deberíamos ceder un porcentaje de los beneficios del mismo a la propia Sun. Esto hasta la fecha no ha sucedido, y en la actualidad Sun está planeando modificar dicha licencia para que sea mucho más permisiva. El principal temor que Sun ha mostrado públicamente a la hora de hablar de la apertura del código fuente de Java y que a la vez ha servido de excusa para evitar precisamente esto durante varios años, es la posibilidad de fragmentación del estándar. La licencia de Java de Sun insiste que todas las implementaciones sean “compatibles”. Esto dio lugar a una disputa legal entre Microsoft y Sun, cuando éste último alegó que la implementación de Microsoft no daba soporte a las interfaces RMI y JNI además de haber añadido características ‘’dependientes’’ de su plataforma. Sun demandó a Microsoft y ganó por daños y perjuicios (unos 20 millones de dólares) así como una orden judicial forzando la acatación de la licencia de Sun. Como respuesta, Microsoft no ofrece Java con su versión de sistema operativo, y en recientes versiones de Windows, su navegador Internet Explorer no admite la ejecución de applets sin un conector (o plugin) aparte. Sin embargo, Sun y otras fuentes ofrecen versiones gratuitas para distintas versiones de Windows.
  • La licencia Mozilla es otra licencia importante denominada comúm mente MPL (de Mozilla Public License). Es una licencia de código abierto y sofware libre utilizada por el navegador Mozilla y sus productos derivados. Cumple completamente con los 10 postulados del open source y los 4 del software libre, 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. Sin embargo el código fuente está restringido a ciertos paises que no mantienen buenas relaciones con Estados Unidos.

  • La CDDL es la última de las licecias importantes que ha salido al mercado. También es de Sun, con el objeto de liberar parte de su software y que sea integrado con otras herramientas ya de por sí open source. Su objetivo es permitir la integración de Java con las diferentes distribuciones de Linux del mercado. También están publicando su sistema operativo OpenSolaris bajo esta licencia. Está basada en la MPL, y por tanto es muy similar en sus términos a la LGPL, permitiendo compartir el código utilizado por el programa con otros de diferente procedencia y guardarse para el autor la libertad de publicar o no los resultados. Permite la inclusión de cualquier otro tipo de código, sea cual sea la licencia del mismo, en la solución completa. Además, ésta licencia solo se adjudica a la totalidad del producto al que hace referencia y no a sus partes. Dichas partes podrían estar bajo esta licencia o bajo cualquier otro tipo de licencia al extraerse del software original completo. Lo que si mantiene siempre esta licencia son los derechos de propiedad intelectual del autor original.


  • La licencia Licencia Creative Commons es una licencia de reciente creación, pero básicamente para trabajos multimedia. No permite la alteración del producto original, ni tampoco su comercialización. Sólo permite su reproducción tal cual, mencionando al autor.

Para saber más sobre licencias, o te han quedado dudas, puedes consultar los siguientes artículos:

Espero que tú que estás leyendo este artículo hayas aprendido tanto como yo mientras lo redactaba. Si detectas cualquier error, por favor no dejes de comunicarmelo en tus comentarios. Gracias...

5 comentarios:

  1. Anónimo12:17

    Aparentemente bien para empezar. A ver cuando lo mencionado en cuanto a la propiedad intelectual y el copyright.

    ResponderEliminar
  2. Como comentan en el meneo de esta entrada equiparar BSD con freeware es bastante incorrecto... BSD es software libre que cumple las 4 libertades famosas y el freeware no tiene nada de eso.

    ResponderEliminar
  3. Evidentemente tienes razón, y además está mezclado el tema de licencias con el de software. Trataré de corregir el artículo para no inducir a nadie en mis propios errores. Gracias...

    ResponderEliminar
  4. pimero, los comentrios en popup no funcionan en todos los navegadores, aun hay gente que usa firefox 1 o konueror o amaya...


    segundo, seria bueno separar lo de opensource con freesoftware, opensource es un tipo de software, GPL es una licencia.

    tercero, umm no hay mencion de EULA aqui.. seria bueno par que se den cuante de las "barbaridades atropellantes" de la EULA. (una de ellas dice que si danas l maquina les pagas... basicamente)

    ResponderEliminar
  5. se me olvidba..
    soporte debian para sarge , etch y woddy de paquetes actuales o no encontrados en debian : McKAY emu debian and linux issues

    ResponderEliminar