por
pobrecito hablador
el Lunes, 19 Octubre de 2009, 21:29h
(#1180358)
De nuevo, estás en un profundo error fruto de tu desconocimiento técnico. Que la biblioteca, su código, esté separado del binario único final no quiere decir que sea independiente de este. O mejor dicho, que le binario ejecutable sea independiente de la biblioteca. Las bibliotecas son una forma de reutilizar código ahorrando espacio en disco.
Vamos a poner algo más concreto, a ver si así ves dónde está tu error. Yo tengo un fichero, vehiculo.cpp, que implementa una clase Vehiculo, y la implementación es 100% GPL. A mi me viene de puta madre porque implementa unos algoritmos muy complejos que se me escapan, quiero hacer mi software privativo y en mi software hago uso de la clase Vehiculo. ¿Violo la GPL? ¡Por supuesto! Tú dices que no, porque claro, en mi código solo se inserta, por parte del enlazador, los puntos de entrada al binario que el compilador, de forma independiente, generará a partir de vehiculo.cc
¿Ves tu error? ¿No? Ah, ¿que solo vale para bibliotecas? Pues nada, hago mi gcc -c y luego utilizo ar para convertirlo en una biblioteca de enlace estático. Ah, ¿qué pasa? ¿Que solo funciona con bibliotecas de enlace dinámico? Pues nada hombre, compilamos con gcc -fPIC -c y luego hacemos un gcc -shared para crear el.so. ¡Coño! ¡Si la GPL es inútil y no vale para nada! ¡Puedo utilizar todo el código GPL que quiera en mi proyecto y hacerlo privativo! ¡Solo tengo que liberar las líneas de código que modifique!
Bueno, y si seguimos con el absurdo, ¿qué pasa si luego hago herencia de clases? De Vehiculo hago Coche. ¿Lo libero o no lo libero? Porque por ahí tenemos un hueco cojonudo, ¡podemos modificar trozos de la clase GPL desde fuera de la clase GPL!
A ver si nos vamos centrando. Da igual cómo compiles el código GPL, si forma parte de tu proyecto, estás sujeto a la licencia. Una biblioteca no es una entidad mágica separada del resto del código, es solo una forma de organizar el código de nuestro programa. El programa es tanto el código que nosotros ponemos como el código con el que enlazamos, enlacemos como enlacemos (de forma estática o dinámica).
Re:GPL y metaprogramación
(Puntos:0)De nuevo, estás en un profundo error fruto de tu desconocimiento técnico. Que la biblioteca, su código, esté separado del binario único final no quiere decir que sea independiente de este. O mejor dicho, que le binario ejecutable sea independiente de la biblioteca. Las bibliotecas son una forma de reutilizar código ahorrando espacio en disco.
Vamos a poner algo más concreto, a ver si así ves dónde está tu error. Yo tengo un fichero, vehiculo.cpp, que implementa una clase Vehiculo, y la implementación es 100% GPL. A mi me viene de puta madre porque implementa unos algoritmos muy complejos que se me escapan, quiero hacer mi software privativo y en mi software hago uso de la clase Vehiculo. ¿Violo la GPL? ¡Por supuesto! Tú dices que no, porque claro, en mi código solo se inserta, por parte del enlazador, los puntos de entrada al binario que el compilador, de forma independiente, generará a partir de vehiculo.cc
¿Ves tu error? ¿No? Ah, ¿que solo vale para bibliotecas? Pues nada, hago mi gcc -c y luego utilizo ar para convertirlo en una biblioteca de enlace estático. Ah, ¿qué pasa? ¿Que solo funciona con bibliotecas de enlace dinámico? Pues nada hombre, compilamos con gcc -fPIC -c y luego hacemos un gcc -shared para crear el .so. ¡Coño! ¡Si la GPL es inútil y no vale para nada! ¡Puedo utilizar todo el código GPL que quiera en mi proyecto y hacerlo privativo! ¡Solo tengo que liberar las líneas de código que modifique!
Bueno, y si seguimos con el absurdo, ¿qué pasa si luego hago herencia de clases? De Vehiculo hago Coche. ¿Lo libero o no lo libero? Porque por ahí tenemos un hueco cojonudo, ¡podemos modificar trozos de la clase GPL desde fuera de la clase GPL!
A ver si nos vamos centrando. Da igual cómo compiles el código GPL, si forma parte de tu proyecto, estás sujeto a la licencia. Una biblioteca no es una entidad mágica separada del resto del código, es solo una forma de organizar el código de nuestro programa. El programa es tanto el código que nosotros ponemos como el código con el que enlazamos, enlacemos como enlacemos (de forma estática o dinámica).