Lo que duras penas entendí de la LGPL. Parte 2: Términos y condiciones

Enviado por clbustos el Mar, 08/03/2005 - 02:52.
Clasificado en:

Seguimos con el artículo sobre la licencia LGPL, ahora con los términos y condiciones para la copia, distribución y modificaciones.

  1. Ámbito de pertinencia; La licencia LGPL se aplica a cualquier librería que diga que está bajo la LPGL. La licencia cubre sólo la copia, distribución y modificaciones. El correr la aplicación no se incluye y el producto derivado de correr el programa sólo cuenta si constituye un trabajo basado en la librería (más abajo está la explicación). A continuación se ofrecen algunas definiciones:
    • Librería: una colección de software (datos o programa) que está preparada para ser ligada a otro programa, para formar un ejecutable. Es claro que el concepto está muy ligado a las librerías de C/C++, pero también puede ser aplicable, de una manera un tanto laxa, a lenguajes de script.
    • Trabajo basado en la librería: Se refiere tanto a la librería tal cual, o a una parte de ella con o sin modificaciones, o al traspaso literal de la librería a otro lenguaje de programación (de C a PHP, por ejemplo) o natural (pasar los textos de inglés a castellano).
    • Código fuente: hace referencia tanto al código fuente, como a las interfaces (de nuevo C++) más los scripts para compilar e instalar la librería.
  2. Copia y distribución: Se puede copiar y distribuir si se cumplen 3 condiciones: mostrar en forma relevante el copyrigth y la renuncia de responsabilidad, mantener intactos los avisos sobre la licencia y la renuncia de responsabilidad y una copia de la licencia.
  3. ModificaciónSe puede modificar la librería y distribuir la versión modificada si se cumple la totalidad de las siguientes condiciones:
    • La derivación es también una librería
    • Se debe poner un aviso en los archivos alterados, para alertar que fueron cambiados, junto a la fecha de modificación
    • La librería debe estar bajo la LGPL, sin ningún costo para los receptores
    • Advierto que la siguiente es un tanto confusa, así que explicaré lo que entendí: si una funcionalidad de la librería requiere una función o una tabla de la aplicación origen que sea más que uno o más argumentos de llamada a una función, se debe tratar dentro de lo posible que la funcionalidad entregue un resultado razonable a pesar de que no exista esta función o tabla.
      Esto último tiene bastante importancia. Por ejemplo, imaginemos una librería en PHP que cree gráficos. Podría existir una función llamada crearGraficoBarras que reciba como argumento el nombre de una función que le pase los datos. Ahora bien, si somos mala onda, podríamos no documentar que tipo de datos debe pasar la función callback, obligando al usuario a usar la aplicación GraficosPHPPomposamentePropietaria, creadas por nosotros mismos, que contiene las funciones callback con la preciosa información. La licencia nos obliga a que la función entregue algún resultado razonable a falta de la función callback; en este caso, que pueda dibujar un gráfico de barras con, por ejemplo, un array de datos.



    Todos estos requisitos cuentan para la librería para un todo. Si una parte de la librería modificada no tiene partes de la librería original, puede ser distribuida de forma separada, sin que quede bajo la LGPL. La agregación de otros trabajos junto a la librería LGPL(por ejemplo, un CD lleno de software) no hace caer al resto del software dentro de la LGPL

  4. Paso de LGPL a GPL: Si es necesario, se puede pasar la librería de LGPL a GPL, cambiando ciertos avisos. Esto sirve si se quiere copiar parte del código en una aplicación GPL
  5. Código objeto y ejecutables: Se puede distribuir la librería en código objeto y/o ejecutable si se acompaña con el código fuente y se siguen las instrucciones para copia y modificación. Si se ofrece la copia del código objeto o ejecutable desde un cierto lugar, basta con ofrecer una copia desde el mismo lugar para el código fuente
  6. Uso de la librería en aplicaciones: una aplicación que está diseñada para usar la librería a través de la compilación o link se dice que es una aplicación que usa la librería y no cae dentro la licencia.

    Ahora bien, si al compilar la librería queda dentro del ejecutable o código objeto, la aplicación pasa a ser un trabajo derivado de la librería y cae dentro de la licencia.

    Si el archivo objeto sólo utiliza parámetros numéricos, estructuras de datos, pequeños macros y funciones inline, queda fuera de los términos de la LGPL.
  7. Uso de la librería en aplicaciones, opción propietaria: Se puede distribuir el trabajo que usa la librería con la librería, bajo los términos que se estime convenientes, si se le permite a los receptores modificar y hacer debug de la librería.
    Para ello, se debe dar aviso de que se ocupa la librería y su licencia. Además, se debe realizar una de las siguientes acciones:

    • Acompañar el trabajo con el código fuente completo de la librería, de tal manera que el usuario pueda modificar la librería y unirla de nuevo al software principal
    • Usar un mecanismo adecuado para para unir la librería, o sea, uno que ocupe en tiempo real las librerías que encuentre en el sistema operativo y que pueda funcionar con una versión modificada de la librería
    • Entregar una oferta escrita, válida por tres años, para entregar el código fuente de la librería
    • Ofrecer acceso al código fuente desde una ubicación específica
    • Verificar que el usuario ya recibió una copia de los materiales antes señalados


    Si el trabajo que usa la librería es un ejecutable, se debe entregar todo el material necesario para generar el ejecutable a partir de la librería, que no se encuentre normalmente en el sistema operativo (compiladores, kernel, etc.)

  8. Uso de librerías no LGPL junto a LGPL: Se pueden distribuir un trabajo basado en librerías LGPL con otras no LGPL, mientras se permita la distribución de la aplicación y la librería LGPL, se ofrezca una versión de la aplicación sólo con las librerías LGPL y se avise que el trabajo utiliza la librería LGPL y se explique como conseguir las otras librerías separadas del trabajo principal
  9. Término de licencia: Sólo se permite copiar, modificar, sublicenciar, linkear o distribuir la librería bajo las directivas de esta licencia. Cualquier alteración de estos términos anula los derechos que entrega la licencia. Si terceros reciben la librería y cumplen las condiciones, no se anula para ellos los derechos
  10. Aceptación de la licencia: Sólo se permite usar la librería si se aceptan las condiciones de la licencia.
  11. Traspaso de derechos: Cada vez que se ditribuye el trabajo, la persona que recibe la librería automáticamente recibe una licencia del autor para distribuir, modificar y copiar la librería. No se pueden establecer otras restricciones sobre el receptor, así como tampoco se le puede obligar a cumplir con la licencia
  12. Patentes y leyes: el que una ley no permita la aplicación de la totalidad o parte de la licencia no exime de su cumplimiento; en caso de que no se pueda conciliar la licencia con la ley, no se debe distribuir la licencia
  13. Restricciones geográficas: Si en ciertas localidades la librería infrige copyrigth o patentes, el autor puede poner un aviso para impedir que el software sea distribuido en ellos.
  14. Versiones de la licencia: La FSF (Free Software Foundation), puede publicar nuevas reviones de esta licencia cuanto lo estime conveniente. El autor puede elegir una versión específica, señalar que se adscribe a la última aplicada o que cualquiera de las versiones es válida
  15. Uso de la librería en trabajos no compatibles: En caso de choque entre licencias, consultar con el autor de la aplicación con licencia incompatible

La ausencia de garantía es la misma que la de la GPL, o sea, el autor de la librería no se hace responsable de ningún daño que ocurra por el uso de ésta, incluso aunque exista aviso de que se pueda producir un resultado adverso.

Cómo aplicar la LGPL en tu librería

Primero, agregar a cada archivo del código fuente una línea con el nombre de la librería y lo que hace, otra línea con el copyrigth (Copyright (C) año nombre del autor) y una copia textual de lo que sigue:

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library 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
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

Después de esto, agregar información de contacto vía e-mail y por correo normal.
Si trabajas como empleado o dentro de una universidad o instituto, se debe entregar un aviso de renuncia de copyrigth por parte del empleador si es necesario, el cual diría algo como:

Yoyodyne, Inc., hereby disclaims all copyright interest in
the library `Frob' (a library for tweaking knobs) written
by James Random Hacker.

signature of Ty Coon, 1 April 1990
Ty Coon, President of Vice

Que traducido sería algo como

Yoyodyne, Inc., aquí renuncia a cualquier interés de copyright sobre
la librería `Frob' (una librería para alterar perillas) escrita
por James Hacker Aleatorio.

firma de Ty Coon, 1 de Abril 1990
Ty Coon, Presidente de Vice

Ufff... estamos. Como les dije, es una de las licencias más largas, con variadas excepciones, por lo cual les recomiendo leer atentamente las condiciones si quieren utilizar un software basado en una de estas librerías o si quieren licenciar su software por ella.

Imagen de Raspu

Hola Cladio!!!

Disculpa que resucite este post un tanto viejo (voh mismo), pero como no tienes algún dato para contactarte es la única opción jejejeje.

Mira, el asunto es el siguiente. Desarrollé una librería Javascript para ser instalada en sitios web. La función de ella es permitir a los usuarios de un formulario web (ya sea mediante un botón o una casilla de verificación) alternar la visibilidad de un campo de texto para el ingreso de contraseñas; es decir, puede modificar el campo de password para que muestre su contenido como un texto normal, y viceversa si lo requiere.

Para esto me basé en un artículo de El Factor Humano (léelo, para que comprendas mejor su utilidad).

A pesar de que la librería aún la tengo en beta (un par de amigos lo están revisando para una segunda opinión) es compatible hasta el momento con IE 5.01, 5.5 y 6.0, ?pera y Firefox. Y es muy fácil de mantener ya que todo el código Javascript va incluído en un archivo JS, de esta manera en el documento HTML sólo necesitas incluir los respectivos elementos del formulario (suena bonito, espero que funcione así también jajajaja).

Mi duda es la siguiente... dadas sus caracteristicas y utilidades, debería inclinarme por una licencia GPL o una LGPL??????????. mientras más las leo, más me confundo jajajajajajaja.

pd: si te apetece colaboral con la beta, puedes escribirme desde mi web para enviarte una copia, me sería de mucha ayuda. :D

Enviado por Raspu (no verificado) el Vie, 20/01/2006 - 23:41.
Imagen de clbustos

Gusto tenerte en estos lares, Raspu. Si te quieres contactar conmigo, ocupa mi nick + @hotmail.com en el MSN. Vale también para el resto, pero el único con autorización inmediata será el estimado recién nombrado.

En corta: si quieres que tu biblioteca sólo se incluya en proyectos libres, ocupa GPL. Si aceptas que se ocupe en proyectos comerciales, ocupa LGPL o BSD. Es un poco simplón, pero sirve para tener una referencia.

Por ahora no tengo mucho tiempo para participar, pero igual si pillo algo en que pueda ayudar, te aviso :)

Enviado por clbustos el Sáb, 21/01/2006 - 14:44.
Imagen de Raspu

Una última duda para la siguiente situación (sólo un ejemplo):

Monto un sitio web personal con un Wordpress que he modificado y le he agregado unas cuantas funcionalidades. Como MI versión de wordpress no la estoy distribuyendo no estoy obligado a publicar sus fuentes (un tema que da para un artículo en particular, que no es esta ocasión).

Ahora, si a ese sitio le sumo unas librerías Javascript (GPL o LGPL) que haya encontrado por ahí y las modifico también. El hecho de que esas librerías sean accesibles a cualquier usuario desde el browser (basta con que se meta al codigo fuente del sitio y busque la URL de acceso) ¿puede considerarse que las librerías modificadas las estoy distribuyendo?

Enviado por Raspu (no verificado) el Dom, 22/01/2006 - 13:26.
Imagen de clbustos

Mhhhh... complicada situación. Te diría que sí, las estás distribuyendo, aunque de forma involuntaria. Ahora, si tu quisieras, podrías poner un "todos los derechos reservados. Si lo copias, te demando", pero sería difícil de controlar.
Ahora, como está dentro de un contexto de uso y no de distribución, no es necesario dejar un link del tipo "aquí el código fuente del JS para que lo copies". Si, en cambio, crearas una aplicación web que utilizara estas librerías y quisieras distribuirla, ahí estás frito :)

Enviado por clbustos el Lun, 23/01/2006 - 02:57.
Imagen de Raspu

Para no perder el hilo de la conversión, expongo una duda existencial en la que me encuentro, a ver qué opinas tú. Surge con el hecho de decidir si publicar la librería como GPL o LGPL.

Por un lado, estoy de acuerdo con que los softwares propietarios (o mejor dicho NO LIBRES) abusan del usuario y bla bla bla. Por tanto debiera inclinarme por la GPL, y si alguien quiere usar la librería en su programa, éste tiene que ser software libre.

Por otro lado, también estoy de acuerdo en que cada uno publica su software como se le da la regalada gana (libre competencia), por lo que una licencia LGPL sería necesaria en este caso. Además que me entrega un mercado más amplio (una licencia GPL no permitiría el uso de la librería en sistemas de foros como VBulletin o Invision Power Board).

Bueno, ese es básicamente mi dilema. ¿Qué postura tomarías tú?

Saludos y gracias por tu tiempo.
"Anakin" Raspu

Enviado por Raspu (no verificado) el Mar, 24/01/2006 - 17:42.
Imagen de Raspu

Rectifico:

(una licencia GPL no permitiría que las empresas que desarrollan sistemas de foros como VBulletin o Invision Power Board incorporen nativamente la librería dentro del sistema)

Enviado por Raspu (no verificado) el Mar, 24/01/2006 - 17:50.
Imagen de clbustos

En esto me sumo a Stallman: la libertad no está en entregar poder, sino en asegurar que otros tengan el mismo derecho que tú.
Yo siempre me inclino por GPL, hasta para sudar :) En tu caso, podrías usar una licencia dual, tipo MySQL o QT, en la que para fines no comerciales se ocupe GPL y para fines comerciales la licencia con las restricciones que a ti se te plazcan.

Enviado por clbustos el Mar, 24/01/2006 - 18:50.
Imagen de rha

Encontre un editor WYSIWYG en javascript y tiene una licencia LGPL. Según la declaración parece que no se puede modificar.
-------------------------------------------------------
GNU Lesser General Public License
Version 2.1, February 1999

Copyright (C) 1991, 1999 Free Software Foundation, Inc. ...Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]
------------------------------------------------------
Esto puede ser??

Enviado por rha (no verificado) el Jue, 11/01/2007 - 23:06.
Imagen de clbustos

Lo que no se puede modificar es la licencia.
Fijate que dice "[...]verbatim copies of this license document, but changing it is not allowed."
El programa, claro que lo puedes modificar, mientras no le cambies la licencia.

Enviado por clbustos el Vie, 12/01/2007 - 10:18.
Imagen de poelsobNeelty

Hello

As a fresh php.apsique.com user i only wanted to say hello to everyone else who uses this bbs :D

Enviado por poelsobNeelty (no verificado) el Vie, 19/12/2008 - 04:48.
Imagen de odorgoPrurn

What is bumburbia?

Enviado por odorgoPrurn (no verificado) el Mié, 07/01/2009 - 00:35.
Imagen de Brunner

Hola amigos, me ha resultado muy interesante la conversación hasta el momento. De hecho tambien tengo una consulta para hacerles acerca de la influencia del uso de librerias con licencia LGPL para desarrollo de aplicaciones propietarias.
Mi situacion es la siguiente: estoy desarrollando una aplicación que utiliza librerias con licencia LGPL, pero esta aplicación no puede ser de distribucion libre. Como influye el uso de estas librerias en mi software? Que es lo que debo, lo que puedo y no puedo hacer en este caso?

Desde ya le agradezco a quien pueda aclarar mi duda.

saludos.

Enviado por Brunner (no verificado) el Jue, 15/01/2009 - 21:51.
Imagen de clbustos

Fíjate en los puntos 5 y 6 de la explicación. En términos breves, debes dar el acceso al código fuente de la biblioteca, ya sea en tu distribución del software o dando acceso al recurso de red. Además, la biblioteca no puede estar compilada de forma estática en tu código.

Enviado por clbustos el Vie, 16/01/2009 - 18:15.
Imagen de MorganLevintron

Greetings to all

not on, as a week ago Gates European. Permanent thirsted relax in the Benelux countries, not as a tourist, but make a private tour about, month. today I home. but, overwhelmed my memory my tour for Belgium. most then, as I fun stuff with ihnimi girls. qualified [url=http://www.callvipgirls.com]escort agency, Private escort, escorte girls, pictures girls[/url] Breed me lot of Associations. in particular - this feeling that you are Arabic buy, and the memorial [url=http://www.callvipgirls.com]call girls, Escort, escorte girls, vip girls, pretty girls[/url] it gladden the hearts Property sex slaves, those that in fact mark a service: [url=http://www.callvipgirls.com]call girl, Escort femmes, female escort, escort call girl[/url] the way,Escort in Brussels diverges of analogues in other cities Benelux. so, [url=http://www.callvipgirls.com]escort service, Girls pics, dating website, vip girls, young girls[/url] is integral and such service, as required Massage in Brussels,and similarly his area. do not talk,[url=http://www.callvipgirls.com]escort girl, Erotic massage, escort, escort girls, adult escort
[/url] - it the best Escort in Brussels.All that can reason with your dreams, fingering various Massage Agency, - it necessarily Escort in Brussels.

Sincerely, your friend Marin

Enviado por MorganLevintron (no verificado) el Mar, 24/11/2009 - 21:51.

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
If you have a Gravatar account, used to display your avatar.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato