Pero tengo una duda en cuanto a esto...si yo uso en una parte de mi aplicacion una poco de codigo con GPL tengo la obligacion de dar el codigo fuente de TODA la aplicacion o basta con dar el del modulo,metodo,objeto que lo usa?
Si el código que estás usando, aunque sean 2 líneas, tiene licencia GPL, tienes que liberar todo tu código bajo GPL. Esto por ejemplo ocurre si usas en tu programa la versión no comercial de MySQL (que es GPL). Al enlazar con las librerías de cliente de MySQL, tienes la obligación de que todo el código de tu aplicación sea GPL. Por eso se dice que la GPL es una licencia vírica.
Tienes algunas licencias más suaves como la LGPL, que te permite hacer lo que tú dices siempre que enlaces dinámicamente con ella (.dll o .so). Solamente tendrías que liberar los cambios que hagas en esa librería, no todo tu programa. Esto ocurre con al LGPL, no con la GPL.
Tienes aquí [gnu.org] las "Frequently Asked Questions about the GNU GPL" si te interesa profundizar un poco en la GPL.
Hay otra posibilidad para enlazar con una libreria GPL codigo que no es GPL.
Si escribes un codigo que utiliza una libreria GPL, y lo distribuyes en codigo fuente, sin compilar, puedes ponerle otra licencia, porque al no ir compilado no se ha enlazado todavia con la libreria.
Eso si, nadie podria distribuir binarios si la licencia del codigo que no es GPL es incompatible con esta.
Como es obvio, te has equivocado. GPL permite el enlace dinámico (.so) y LGPL el estático (en el mismo ejecutable).
pues tu tampoco tienes las cosas muy claras, ni GPL ni LGPL distinguen entre enlazado estatico o dinamico.
La diferencia es que puedes enlazar (de manera dinamica o estatica, da igual) una libreria LGPL en una aplicacion no GPL y en cambio una libreria GPL solo la puedes enlazar con codigo que tenga una licencia compatible.
Vale, vamos a ver. En el enlace que he puesto a las FAQ, pone:
http://www.gnu.org/licenses/gpl-faq.html#MereAggre gation [gnu.org]:
Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program.
Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL--if you can't, or won't, do that, you may not combine them.
http://www.gnu.org/licenses/gpl-faq.html#IfLibrary IsGPL [gnu.org]:
If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?
Yes, because the program as it is actually run includes the library.
http://www.gnu.org/licenses/gpl-faq.html#TOCLinkin gWithGPL [gnu.org]:
You have a GPL'ed program that I'd like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program?
Yes.
http://www.gnu.org/licenses/gpl-faq.html#TOCPortPr ogramToGL [gnu.org]:
Most system libraries either use the GNU Lesser GPL, or use the GNU GPL plus an exception permitting linking the library with anything. These libraries can be used in non-free programs; but in the case of the Lesser GPL, it does have some requirements you must follow.
Re:Muy bien
(Puntos:5, Interesante)( http://www.miriamruiz.es/ )
Si el código que estás usando, aunque sean 2 líneas, tiene licencia GPL, tienes que liberar todo tu código bajo GPL. Esto por ejemplo ocurre si usas en tu programa la versión no comercial de MySQL (que es GPL). Al enlazar con las librerías de cliente de MySQL, tienes la obligación de que todo el código de tu aplicación sea GPL. Por eso se dice que la GPL es una licencia vírica.
Tienes algunas licencias más suaves como la LGPL, que te permite hacer lo que tú dices siempre que enlaces dinámicamente con ella (.dll o .so). Solamente tendrías que liberar los cambios que hagas en esa librería, no todo tu programa. Esto ocurre con al LGPL, no con la GPL.
Tienes aquí [gnu.org] las "Frequently Asked Questions about the GNU GPL" si te interesa profundizar un poco en la GPL.
Miry
Re:Muy bien
(Puntos:2)( http://barrapunto.com/ | Última bitácora: Domingo, 07 Febrero de 2010, 11:18h )
Si escribes un codigo que utiliza una libreria GPL, y lo distribuyes en codigo fuente, sin compilar, puedes ponerle otra licencia, porque al no ir compilado no se ha enlazado todavia con la libreria.
Eso si, nadie podria distribuir binarios si la licencia del codigo que no es GPL es incompatible con esta.
Re:Muy bien
(Puntos:3, Inspirado)Los virus no te piden permiso ni te hacen aceptar voluntariamente un acuerdo antes de infectarte.
Re:Muy bien
(Puntos:1)( http://localhost/ )
La GPL y la LGPL son iguales en todo, excepto en que la LGPL permite linkado dinámico con código no-GPL.
Ninguna de las dos permite linkado estático con código no-GPL, ni copy-paste ni ninguna otra forma de utilizar el código en software no-GPL.
Re:Muy bien
(Puntos:2)( file:/etc/passwd | Última bitácora: Martes, 20 Octubre de 2009, 21:17h )
pues tu tampoco tienes las cosas muy claras, ni GPL ni LGPL distinguen entre enlazado estatico o dinamico.
La diferencia es que puedes enlazar (de manera dinamica o estatica, da igual) una libreria LGPL en una aplicacion no GPL y en cambio una libreria GPL solo la puedes enlazar con codigo que tenga una licencia compatible.
Re:Muy bien
(Puntos:2)( http://www.miriamruiz.es/ )
http://www.gnu.org/licenses/gpl-faq.html#MereAggre gation [gnu.org]:
Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program.
Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL--if you can't, or won't, do that, you may not combine them.
http://www.gnu.org/licenses/gpl-faq.html#IfLibrary IsGPL [gnu.org]:
If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?
Yes, because the program as it is actually run includes the library.
http://www.gnu.org/licenses/gpl-faq.html#TOCLinkin gWithGPL [gnu.org]:
You have a GPL'ed program that I'd like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program?
Yes.
http://www.gnu.org/licenses/gpl-faq.html#TOCPortPr ogramToGL [gnu.org]:
Most system libraries either use the GNU Lesser GPL, or use the GNU GPL plus an exception permitting linking the library with anything. These libraries can be used in non-free programs; but in the case of the Lesser GPL, it does have some requirements you must follow.
Creo que está bastante claro.
Miry