viernes, 12 de diciembre de 2008

LICENCIAS DE SOFTWARE


INTRODUCCIÓN
La licencia de software es una especie de contrato, en donde se especifican todas las normas y cláusulas que rigen el uso de un determinado programa, principalmente se estipulan los alcances de uso, instalación, reproducción y copia de estos productos.
El tema de las licencias de software puede ser muy complejo. El negocio del software se basa en licencias binarias. La propiedad intelectual de los distribuidores de software comercial nace del código fuente. Las licencias de software se crean con diversos fines empresariales y para afrontar diversos tipos de relaciones (como distribuidor/cliente y partner/partner). Los desarrolladores de software tanto comercial como no comercial utilizan decenas de licencias que abarcan una gran variedad de términos y condiciones.
Los costos en las empresas ha sido y seguirá siendo un tema crítico. Con la irrupción de las computadoras han surgido costos y beneficios no existentes hasta hace algunas décadas atrás, convirtiéndose el manejo eficiente de la información en un factor clave para la obtención del éxito y para el desarrollo de ventajas comparativas sobre los competidores.
Dado este panorama, es común que las grandes empresas dispongan de sistemas que poseen altos costos de mantenimiento, actualización, capacitación, soporte, etc. que muchas veces superan el costo de obtención de la licencia. Por otra parte, han surgido cada vez con mayor fuerza programas de código libre amigables para el "usuario del hogar" que le permiten abaratar costos en desmedro de otros software comerciales con altos costos en licencias.
Conocer las ventajas, desventajas, derechos y deberes de las empresas y de los usuarios finales, además de todas las otras personas que se relacionan con el software, de las licencias de software más utilizadas, tanto el software libre como el software comercial, es imprescindible para que las empresas y los usuarios finales puedan tomar las mejores decisiones acerca de los sistemas que utilizarán. Es importante también conocer como afectan estas licencias al trabajo de otras personas, como por ejemplo a los desarrolladores, vendedores, distribuidores, etc., y conocer también sus derechos y deberes para las licencias que se expondrán en este trabajo.
La licencias de uso de software generalmente caen en alguno de estos tipos:
Licencia propietaria. Uso en una computadora por el pago de un precio.
Shareware. Uso limitado en tiempo o capacidades, después pagar un precio.
Freeware. Usar y copiar ilimitado, precio es cero.
Software libre. Usar, copiar, estudiar, modificar, redistribuir. Código fuente incluído.
Es posible dividir las licencias de software libre en dos grandes familias. Una de ellas está compuesta por las licencias que no imponen condiciones especiales, sólo especifican que el software se puede redistribuir o modificar. Estas son las llamadas licencias permisivas. La otra familia, denominadas licencias robustas o licencias copyleft, imponen condiciones en caso de que se quiera redistribuir el software, condiciones que van en la línea de forzar a que se sigan cumpliendo las condiciones de la licencia después de la primera redistribución.
Mientras que el primer grupo hace énfasis en la libertad de quien recibe un programa, ya que le permite hacer casi lo que quiera con él (en términos de las sucesivas redistribuciones), el segundo obliga a que las modificaciones y redistribuciones respeten los términos de la licencia original.
Este paper expone las principales licencias para software libre, indicando sus características esenciales, ventajas y desventajas apreciables. Así mismo, se incluye una tabla comparativa de las licencias de software más reconocidas en la actualidad.
LICENCIA GPL
La Licencia Pública General (inglés: General Public License o GPL) otorga al usuario la libertad de compartir el software licenciado bajo ella, así como realizar cambios en él. Es decir, el usuario tiene derecho a usar un programa licenciado bajo GPL, modificarlo y distribuir las versiones modificadas de éste.
La licencia GPL adopta el principio de la no ocultación, respaldando el concepto moral que establece que todo software desarrollado con el uso de material licenciado bajo GPL debe estar disponible para ser compartido con el resto de la humanidad.
GPL fue creada para mantener la libertad del software y evitar que alguien quisiera apropiarse de la autoría intelectual de un determinado programa. La licencia advierte que el software debe ser gratuito y que el paquete final, también debe ser gratuito, asegurándose siempre de mantener los nombres y créditos de los autores originales.
Como aspecto curioso, se debe considerar que si se reutiliza un programa "A", licenciado bajo GPL, y se reutiliza un programa "B", bajo otro tipo de licencia libre, el programa final "C", debe de estar bajo la licencia GPL. Este concepto se introduce con el denominado copyleft a fin de garantizar que cualquier aprovechamiento de un programa bajo licencia GPL redunde sobre la comunidad.
Ventajas de GPL
Cualquier código fuente licenciado bajo GPL, debe estar disponible y accesible, para copias ilimitadas y a cualquier persona que lo solicite.
De cara al usuario final, el software licenciado bajo GPL es totalmente gratuito, pudiendo pagar únicamente por gastos de copiado y distribución.
Se ha establecido la idea global que GPL contribuye al mejoramiento y evolución del software, ya que la disponibilidad y acceso global de los programas permite la expansión del conocimiento depositado en cada pieza de software.
Desventajas de GPL
Si el desarrollador incluye código fuente bajo GPL en otro programa, todo el programa final está obligado a seguir las condiciones y términos de la licencia GPL.
El software licenciado bajo GPL carece de garantía. El autor del software no se hace responsable por el malfuncionamiento del mismo.
De cara al desarrollador, no se puede establecer ningún cobro por las modificaciones realizadas. Únicamente se pueden establecer cobros asociados a copiado y distribución.
Aunque GPL posibilita la modificación y redistribución del software, obliga a que se haga únicamente bajo esa misma licencia.
2.- LICENCIA LGPL
La Licencia Pública General Menor (inglés: Lesser General Public License o LGPL) es una modificación de la licencia GPL descrita anteriormente. La LGPL reconoce que muchos desarrolladores de software no utilizarán el código fuente que se distribuya bajo la licencia GPL, debido a su principal desventaja que determina que todos los derivados tendrán que seguir los dictámenes de esa licencia. La LGPL permite que los desarrolladores utilicen programas bajo la GPL o LGPL sin estar obligados a someter el programa final bajo dichas licencias.
La licencia LGPL permite entonces la utilización simultánea de software con este tipo de licencia tanto en desarrollos libres como en desarrollos privativos. Entonces, LGPL es una licencia de software libre que no tiene un copyleft fuerte, porque permite que el software se enlace con módulos no libres.
Ventajas de LGPL
Si en el desarrollo de un producto se utiliza código fuente licenciado bajo GPL o LGPL, no es obligatorio licenciar dicho producto final bajo dichas licencias.
LGPL es menos restrictiva que la licencia GPL, ya que sólo se ocupa en impedir el realizar versiones comerciales del producto licenciado bajo LGPL.
Ahora bien, LGPL permite realizar versiones comerciales de un producto final que contenga como herramienta adicional un programa LGPL. Por lo tanto, LGPL puede ser utilizada o enlazada con software propietario.
LGPL exige registrar todos los cambios realizados por terceros, a manera de no afectar la reputación del autor original del software.
Desventajas de LGPL
Otras actividades que no sean copia, distribución o modificación no están cubiertas en esta licencia y están fuera de su alcance
3.- LICENCIA BSD
La Licencia de Distribución de Software de Berkeley (inglés: Berkeley Software Distribution ó BSD) no impone ninguna restricción a los desarrolladores de software en lo referente a la utilización posterior del código en derivados y licencias de estos programas. Este tipo de licencia permite a los programadores utilizar, modificar y distribuir a terceros el código fuente y el código binario del programa de software original con o sin modificaciones. Los trabajos derivados pueden optar a licencias de código abierto o comercial.
La licencia BSD es un buen ejemplo de una licencia permisiva, que casi no impone condiciones sobre lo que un usuario puede hacer con el software. La licencia BSD permite la redistribución, uso y modificación del software.
Esta licencia permite el uso del código fuente en software no libre, con lo que es muy similar a la LGPL descrita anteriormente. La diferencia consiste en que en la licencia BSD no es obligatorio mencionar a los autores ni proporcionar el código fuente.
El autor, bajo esta licencia, mantiene la protección de copyright únicamente para la renuncia de garantía y para requerir la adecuada atribución de la autoría en trabajos derivados, pero permite la libre redistribución y modificación.
Ventajas de BSD
La licencia BSD permite el uso de código fuente en software propietario.
Una aplicación licenciada con BSD permite que otras versiones puedan tener otros tipos de licencias, tanto propietarias como libres.
BSD permite que los redistribuidores puedan hacer casi cualquier cosa con el software, incluyendo usarlo para productos propietarios.
De cara al desarrollador, BSD permite el cobro por la distribución de objetos binarios. Así mismo, el desarrollador no está en la obligación de incluir el código fuente.
Se argumenta que la licencia BSD asegura el verdadero software libre, en el sentido que el usuario tiene libertad ilimitada con respecto al software, y que puede decidir incluso redistribuirlo como no libre.
La utilización de las licencias BSD ha contribuido al mantenimiento de un ecosistema de software sano, ya que ha permitido la investigación con fondos públicos y su posterior comercialización, con lo cual se mejora al sector privado del software.
Desventajas de BSD
Las distribuciones del software bajo licencia BSD deben incluir copias literales de la licencia, anuncio de copyright y una "negación de responsabilidad" (inglés: disclaimer).
Debe incluirse reconocimiento del origen del software (la Universidad de California) en cualquier anuncio, con el aviso publicitario de BSD, más no es obligatorio la inclusión de los autores.
BSD no incluye ninguna restricción orientada a garantizar que los trabajos derivados sigan siendo libres.
De cara al usuario final, BSD permite establecer el pago por la distribución de objetos binarios. Así mismo, el usuario puede no recibir el código fuente.
Aunque se argumenta que BSD segura el software libre, existen tendencias que destacan que BSD no contribuye al desarrollo de nuevo software libre, ya que el mismo puede ser utilizado en desarrollos propietarios o de distribución no libre.
4.- LICENCIA MPL
La Licencia Pública de Mozilla (inglés: Mozilla Public License ó MPL) es una licencia de código abierto y sofware libre utilizada por el navegador de Internet Mozilla y sus productos derivados. Cumple completamente con los postulados del open source y del software libre. Sin embargo, la MPL deja abierto el camino a una posible reutilización comercial y 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, esta licencia es ampliamente utilizada por desarrolladores y programadores que quieren liberar su código.
Ventajas de MPL
MPL es una licencia de código abierto y software libre utilizada por desarrolladores y programadores para la liberación de código fuente.
Desventajas de MPL
No se puede, legalmente, enlazar un módulo cubierto por la licencia GPL con un módulo cubierto por la licencia MPL.
5.- LICENCIA NPL
La Licencia Pública de Netscape (inglés: Netscape Public License ó NPL), es una licencia de software libre sin un copyleft fuerte. NPL está basada en la Licencia Pública de Mozilla revisada anteriormente.
NPL agrega una cláusula que permite a Netscape utilizar el código que un desarrollador agregue a un programa con bajo licencia NPL. Netscape podrá utilizar este código fuente sin importar si el desarrollador lo estableció de tipo privativo. En contrapartida, la licencia NPL no permite al desarrollador hacer uso del código fuente Netscape.
Ventajas de NPL
NPL presenta como ventaja básica que se trata de una licencia de software libre.
Desventajas de NPL
LPN no otorga derechos iguales a Netscape y al resto de los desarrolladores, ya que permite utilizar el código de Netscape sólo como se especifica en la licencia, pero Netscape puede utilizar los cambios realizados por los desarrolladores en cualquier forma posible, incluso en versiones del software bajo licencia propietaria.
LPN no se esfuerza en asegurar que las modificaciones hechas por los usuarios queden disponibles como software libre.
Aunque todas las modificaciones hechas por los desarrolladores se deben liberar bajo la licencia LPN, esto sólo aplica a las modificaciones realizadas al código existente, no a subrutinas añadidas colocadas en archivos diferentes.

6.- OTRAS LICENCIAS RECONOCIDAS
Licencia Apache
Es una descendiente de la licencia BSD. Permite al desarrollador hacer lo que desee con el código fuent, incluso productos propietarios, sin entregar el código fuente. La única restricción es que se reconozcas el trabajo del desarrollador.
Licencia de JAVA
Es una licencia particular con características muy especiales dirigidas a la protección del lenguaje de programación JAVA de SUN Microsystems. Pone énfasis en evitar que aparezcan extensiones incompatibles con el lenguaje JAVA.
Licencia de Distribución y Desarrollo Común (CDDL)
Recientemente publicada por SUN Microsystems, tiene por objeto liberar parte del software de esta compañía y que sea integrado con otras herramientas open source. Su objetivo principal apunta a permitir la integración de Java con las diferentes distribuciones de Linux del mercado. La licencia CDDL 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.
Licencia Creative Commons
Es una licencia de reciente creación, dirigida 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.
Licencia de Guile
Basada en la licencia GPL más una declaración especial que permite enlazar con software no libre. Por tanto, no tiene un copyleft fuerte, pero es compatible con la GPL.
7.- OTRAS LICENCIAS DE SOFTWARE PERMISIVAS COMPATIBLES CON GPL
X11 / MIT.
Expat / MIT.
Copyright ML Estándar de New Jersey.
General de Cryptix.
ZLib.
Biblioteca de Funciones Estándar de iMatix.
Software del W3C.
OpenLDAP.
Pitón.
Perl.
Zope.
Código Abierto de Intel.
Javascript de Netscape.
eCos.
Forum Eiffel.
Vim.
8.- TABLA COMPARATIVA DE LAS PRINCIPALES LICENCIAS DE SOFTWARE
A continuación se establece una comparación básica de las principales licencias de software, indicando su compatibilidad con la licencia GPL y si está certificada por la Organización para la Iniciativa de Fuente Abierta.
CONCLUSIONES
Si una organización comercial o un particular utiliza el modelo de desarrollo de código fuente abierto, entonces las licencias de código abierto sin restricciones tales como la licencia BSD son más aconsejables que las licencias de software libre tales como la GPL. Las licencias sin restricciones permiten a los desarrolladores de software más libertad a la hora de utilizar el código recogido bajo la licencia para desarrollar software nuevo y para elegir los términos de la licencia bajo los que se regirá su programa. Las licencias como BSD no tienen el problema de las ambigüedades terminológicas propias de la GPL y dejan menos margen para los riesgos legales y empresariales a los desarrolladores. Además, la utilización de las licencias de código abierto sin restricciones por parte de la comunidad de investigadores permite que el sector privado conserve su capacidad para desarrollar investigaciones básicas en productos accesibles y útiles de software para consumidores particulares o empresas.
Todos los modelos de distribución y desarrollo de software deberían ser libres de competir en el mercado y todos los desarrolladores deberían poder elegir las condiciones de sus licencias. La decisión de utilizar y producir software libre o de código abierto, sin embargo, debería basarse en una comprensión bien sentada de las licencias que rigen cada tipo de software.
Las licencias propietarias restringen en gran medida las libertades del usuario, a diferencia de las licencias libres. En el caso de las licencias con "copyleft", sus restricciones buscan precisamente garantizar la libertad del software. En ningún caso se puede hablar, basado netamente en términos de la licencia, de que los software con licencias libes son más convenientes o no que los de licencia propietaria. Lo único que se puede afirmar es que las libertades están fuertemente restringidas en el software de licencia propietaria, y en muchos
casos existen cláusulas que restringen fuertemente las libertades del usuario y otorgan privilegios abusivos a la empresa proveedora.
En el caso de las licencias libres, la gran diferencia radica en el hecho de tener o no "copyleft".
Como se expuso en este paper, existen versiones contrapuestas para esto, y el usuario debe elegir aquella que más le convenga.
Cabe destacar que ninguna licencia de las investigadas establece la no responsabilidad por los posibles daños causados por el uso del software, ni entrega garantías explícitas ante fallas. Esto es entendible bajo el software libre, dado que en general no se cancela por su uso.

No hay comentarios:

Mi lista de blogs

Datos personales

Mi foto
Teno, Curico, Chile
Joven simpatica te invita a conocerla