Licencias robustas en Software libre

De wiki EOI de documentación docente
Revisión del 17:25 23 may 2012 de EOIwikiAdmin (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar


Estado de desarrollo de la sección: completo completo

Wikilibro: Software libre > Capítulo 3: Licencias

Sección 3

Licencias robustas
Son muchas las licencias robustas que podemos encontrarnos. A continuación se describen algunas de ellas.

La Licencia Pública General de GNU (GNU GPL)

La Licencia Pública General del proyecto GNU[foundation91:_gnu_gener_public_licen] (más conocida por su acrónimo en inglés GPL), que mostramos traducida en el Apéndice C, Licencia Pública GNU, es con diferencia la licencia más popular y conocida de todas las del mundo del software libre. Su autoría corresponde a la Free Software Foundation (promotora del proyecto GNU) y en un principio fue creada para ser la licencia de todo el software generado por la FSF. Sin embargo, su utilización ha ido más allá hasta convertirse en la licencia más utilizada (por ejemplo, más del 70% de los proyectos anunciados en FreshMeat están licenciados bajo la GPL), incluso por proyectos bandera del mundo del software libre, como el núcleo Linux.

La licencia GPL es interesante desde el punto de vista legal porque hace un uso muy creativo de la legislación de copyright, consiguiendo efectos prácticamente contrarios a los que se suponen de la aplicación de esta legislación: en lugar de limitar los derechos de los usuarios, los garantiza. Por este motivo, en muchos casos se denomina a esta maniobra copyleft (juego de palabras en inglés que a veces se traduce como “izquierdos de autor”). Alguien, con una pizca de humor, llegó incluso a lanzar el eslogan “copyleft, all rights reversed”.

En líneas básicas, la licencia GPL permite la redistribución binaria y la del código fuente, aunque en el caso de que redistribuya de manera binaria obliga a que también se pueda acceder a las fuentes. Asimismo, está permitido realizar modificaciones sin restricciones. Sin embargo, sólo se puede redistribuir código licenciado bajo GPL de forma integrada con otro código (por ejemplo, mediante enlazado o linkado) si éste tiene una licencia compatible. Esto ha sido llamado efecto viral (aunque muchos consideran esta denominación como despectiva) de la GPL, ya que código publicado una vez con esas condiciones nunca puede cambiar de condiciones.

Nota: Una licencia es incompatible con la GPL cuando restringe alguno de los derechos que la GPL garantiza, ya sea explícitamente contradiciendo alguna cláusula, ya implícitamente, imponiendo alguna nueva. Por ejemplo, la licencia BSD actual es compatible, pero la de Apache, que exige que se mencione explícitamente en los materiales de propaganda que el trabajo combinado contiene código de todos y cada uno de los titulares de derechos, es incompatible. Esto no implica que no se puedan usar simultáneamente programas con ambas licencias, o incluso integrarlos. Sólo supone que esos programas integrados no se pueden distribuir, pues es imposible cumplir simultáneamente las condiciones de redistribución de ambas.

La licencia GPL está pensada para asegurar la libertad del código en todo momento, ya que un programa publicado y licenciado bajo sus condiciones nunca podrá ser hecho privativo. Es más, ni ese programa ni modificaciones al mismo pueden ser publicadas con una licencia diferente a la propia GPL. Como ya se ha dicho, los partidarios de las licencias tipo BSD ven en esta cláusula un recorte de la libertad, mientras que sus seguidores ven en ello una forma de asegurarse que ese software siempre va a ser libre. Por otro lado, se puede considerar que la licencia GPL maximiza las libertades de los usuarios, mientras que las tipo BSD lo hacen para los desarrolladores. Nótese, sin embargo, que en el segundo caso estamos hablando de los desarrolladores en general y no de los autores, ya que muchos autores consideran que la licencia GPL es más beneficiosa para sus intereses, ya que obliga a sus competidores a publicar sus modificaciones (mejoras, correcciones, etc.) en caso de que redistribuyan su software, mientras que con una licencia tipo BSD éste no tiene por qué ser el caso.

En cuanto a la naturaleza contraria al copyright, esto se debe a que la filosofía que hay detrás de esta licencia (y detrás de la Free Software Foundation) es que el software no debe tener propietarios [stallman:why-software-not-owners:98]. Aunque es cierto que el software licenciado con la GPL tiene un autor, que es el que a fin de cuentas permite la aplicación de la legislación de copyright sobre su obra, las condiciones bajo las que publica su obra confieren a la misma tal carácter que podemos considerar que la propiedad del software corresponde a quien lo tiene y no a quien lo ha creado.

Por supuesto, también incluye negaciones de garantía para proteger a los autores. Asimismo, y para proteger la buena fama de los autores originales, toda modificación de un fichero fuente debe incluir una nota con la fecha y autor de cada modificación.

La GPL contempla también a las patentes de software, exigiendo que si el código lleva algoritmos patentados (como dijimos, algo legal y usual en Estados Unidos y práctica irregular en Europa), o se concede licencia de uso de la patente libre de tasas, o no se puede distribuir bajo la GPL.

La última versión de la licencia GPL, la segunda, se publicó en 1991 (aunque en el momento de escribir este texto está en avanzado proceso de preparación la tercera). Precisamente para contemplar futuras versiones, la licencia recomienda licenciar bajo las condiciones de la segunda o de cualquier otra posterior publicada por la Free Software Foundation, cosa que hacen muchos autores. Sin embargo otros, entre los que destaca Linus Torvalds (creador de Linux) publican su software sólo bajo las condiciones de la segunda versión de la GPL, buscando desmarcarse de las posibles evoluciones futuras de la Free Software Foundation.

La versión tercera de la GPL [gplv3] pretende actualizarla al escenario actual del software, principalmente en aspectos como patentes, sistemas DRM (Digital Rights Management, gestión de derechos digitales) y otras limitaciones de la libertad del software. Por ejemplo, en el borrador disponible en el momento de escribir este texto (mayo de 2007), no permite que un fabricante de hardware bloquee la utilización de ciertos módulos software si no presentan una firma digital que acredite una determinada autoría. Un ejemplo de estas prácticas se da en los grabadores digitales de vídeo TiVo, que proporciona el código fuente de todo su software (licenciado con GPLv2) al tiempo que no permiten que se utilicen modificaciones del código en dicho hardware[4]. La licencia tampoco permite que el software obligue a la ejecución en entorno prefijado, como ocurre cuando se prohibe la utilización de núcleos no firmados en distribuciones cuya política de seguridad así lo considere oportuno.

Nota: Hay varios puntos en la licencia GPLv3 que han despertado una cierta oposición. Uno de los grupos de opositores está compuesto por desarrolladores del núcleo Linux (entre ellos el propio Linus Torvalds). Consideran que el requisito de utilización de componentes software firmados permite otorgar ciertas características de seguridad imposibles de otra manera, al tiempo que su prohibición explícita extendería la licencia al terreno del hardware. Además, la limitación establecida por el mecanismo de firmas se daría únicamente en las plataformas hardware y software así diseñadas, pudiendo modificarse el software para su utilización en otro hardware. Con respecto de este punto, la FSF está a favor del empleo de mecanismos de firmas que recomienden la no utilización de componentes no firmados por motivos de seguridad, pero cree que la no prohibición de aquellos mecanismos de firmas que imposibilitan la utilización de componentes no firmados podrían dar lugar a escenarios en que no existiesen plataformas hardware o software en las que ejecutar dichas modificaciones del software, quedando en ese caso totalmente limitadas las libertades del software libre en lo que a modificación del código se refiere.

La Licencia Pública General Menor de GNU (GNU LGPL)

La Licencia Pública General Menor del proyecto GNU[foundation99:_gnu_lesser_public_licen] (comúnmente conocida por sus iniciales en inglés LGPL) es la otra licencia de la Free Software Foundation. Pensada en sus inicios para su uso en bibliotecas (la L en sus comienzos venía de library: biblioteca), fue modificada recientemente para ser considerada la hermana menor (lesser: menor) de la GPL.

La LGPL permite el uso de programas libres con software propietario. El programa en sí se redistribuye como si estuviera bajo la licencia GPL, pero se permite la integración con cualquier otro software sin prácticamente limitaciones.

Como se puede ver, en un principio, esta licencia estaba orientada a las bibliotecas, de manera que se pudiera potenciar su uso y desarrollo sin tener los problemas de integración que implica la GPL. Sin embargo, cuando se vio que el efecto buscado de popularizar las bibliotecas libres no se veía compensado por la generación de programas libres, la Free Software Foundation decidió el cambio de Library a Lesser y desaconsejó su uso, salvo para condiciones muy puntuales y especiales. Hoy en día, existen muchos programas que no son bibliotecas licenciados bajo las condiciones de la LGPL. Por ejemplo, el navegador Mozilla o la suite de ofimática OpenOffice.org están licenciadas, entre otras, también bajo la LGPL.

Nota: Igual que la GPL, la última versión publicada de la LGPL es la segunda, aunque ya hay borrador de la versión 3 [lgplv3]. Esta nueva versión es más corta que la anterior, dado que refiere todo su texto a GPLv3, destacando únicamente sus diferencias.

Otras licencias robustas

Otras licencias robustas que puede resultar interesante comentar son:

  • Licencia de Sleepycat [sleepycat-license]

Es la licencia bajo la que la empresa Sleepycat [sleepycat] distribuye sus programas (entre ellos el conocido Berkeley DB). Obliga a ciertas condiciones siempre que se redistribuye el programa o trabajos derivados del programa. En particular, obliga a ofrecer el código fuente (incluidas las modificaciones, si se trata de un trabajo derivado), y a que la redistribución imponga al receptor las mismas condiciones. Aunque mucho más corta que la GNU GPL, es muy similar a ella en sus efectos principales.

  • eCos License 2.0 [ecos-license]

Es la licencia bajo la que se distribuye eCos [ecos], un sistema operativo de tiempo real. Es una modificación de la GNU GPL que no considera que el código que se enlace con programas protegidos por ella queden sujetos a las cláusulas de la GNU GPL si se redistribuyen. Desde este punto de vista, sus efectos son similares a los de la GNU LGPL.

  • Affero General Public License [02:_affer_gener_public_licen]

Interesante modificación de la GNU GPL que considera el caso de los programas que ofrecen servicios vía web, o en general, vía redes de ordenadores. Este tipo de programas plantean un problema desde el punto de vista de las licencias robustas. Como el uso del programa no implica haberlo recibido mediante una redistribución, aunque el programa esté licenciado, por ejemplo, bajo la GNU GPL, alguien puede modificarlo y ofrecer un servicio en la red usándolo, sin redistribuirlo de ninguna forma, y por tanto sin estar obligado, por ejemplo, a distribuir el código fuente. La Affero GPL tiene una cláusula que obliga que, si el programa tiene un medio para proporcionar su código fuente vía web a quien lo use, no se pueda desactivar esa característica. Esto significa que si el autor original incluye esa capacidad en el fuente, cualquier usuario puede obtenerlo, y además esa redistribución está sometida a las condiciones de la licencia. La Free Software Foundation está considerando incluir provisiones similares en la versión 3 de su GNU GPL.

  • IBM Public License Version 1.0 [ibm_public_licen_version]

Es una licencia que permite la redistribución binaria de trabajos derivados sólo si (entre otras condiciones) se preve algún mecanismo para que quien reciba el programa pueda recibir su código fuente. La redistribución del código fuente se ha de hacer bajo la misma licencia. Además, esta licencia es interesante por obligar al que redistribuye el programa con modificaciones a licenciar automática y gratuitamente las patentes que puedan afectar a esas modificaciones, y que sean propiedad del redistribuidor, a quien reciba el programa.

  • Mozilla Public License 1.1 [mozil_public_licen]
Ejemplo de licencia libre con origen en una empresa. Es una evolución de la primera licencia libre que tuvo el Netscape Navigator, y en su momento fue muy importante por ser la primera vez que una empresa muy conocida decidió distribuir un programa bajo su propia licencia libre.

< Sección anterior
Licencias permisivas

Sección siguiente >
Distribución bajo varias licencias