09-12-2007, 10:56 PM
Comentando un podcast realizado sobre DB libres en javahispano, se enfocó la charla sobre las ventajas y desventajas de MySQL y Postgresql.
Llegado al tema licenciamiento, el caso de Postgresql es simple: BSD, pero con MySQL reina mucha confusión.
Transcribo un jugoso comentario, que espero sea de interés y genere algun debate y aporte.
Me resulta particularmente interesante porque es desde la óptica del desarrollador llano, en contraste al usual discurso puramente activista.
Llegado al tema licenciamiento, el caso de Postgresql es simple: BSD, pero con MySQL reina mucha confusión.
Transcribo un jugoso comentario, que espero sea de interés y genere algun debate y aporte.
Me resulta particularmente interesante porque es desde la óptica del desarrollador llano, en contraste al usual discurso puramente activista.
Cita:
"Que MySQL tenga licencia GPL no obliga a que tu aplicación, que se conecta a MySQL, sea también GPL. Por el mismo razonamiento cualquier aplicación que corre en un Linux tendría que ser GPL..."
Primeramente, cuando se habla de GPL se está hablando de una familia de licencias y versiones incompatibles o semiincompatibles. GPLv1, GPLv2, LGPL ... y actualmente está a punto de salir la GPLv3.
Segundo, creo que la mayor parte de vosotros jamás leyo la licencia GPL y si la leyo probablemente no tuvo en cuenta que está redactada usando tecnicismos legales, no está en el usual inglés técnico y la que vale es la versión pura en inglés...
Tercero, ya se comento de pasada que MySQL hace una excepción en la licencia con PHP, eso se debe a que tal como se licenciaba MySQL te obligaba a que tu aplicación en PHP fuese también GPL debido a que PHP está bajo licencia BSD incompatible con GPL, incluso siendo teóricamente ilegal usar PHP con MySQL, de ahí que comenzo a inclusión de SQLite a partir de PHP 5. Lo que significaria que de la noche a la mañana la mayor parte de las instalaciones de MySQL migraran a otras Bases de Datos... y los de MySQL no son tontos y por eso hacen la excepción con PHP.
Cuarto, con lo anterior y comentando cosas ya dichas: si tu usas MySQL en servidor y te conectas con ODBC u otro metodo similar que legalmente hace que tu aplicación no estea conectada fisicamente con MySQL (podrías sustituir MySQL por Oracle y a lo sumo cambiar media docena de lineas de código) pues no hay problemas legales. Pero si MySQL es un componente principal o accesorio de tu aplicación entonces o pagas licencia comercial o teóricamente tu aplicación tiene que ser GPL, aunque no haya ni una línea de código usada o no uses los drivers... y por qué? pues porque tal como está redactada la GPL (y será mucho peor con la GPLv3), si tu usas código (fuente u objeto, vease binarios) GPL en una aplicación, esa aplicación tiene que ser GPL o licencia compatible como LGPL. Tanto da que uses un truco como usar un archivo de texto, ese archivo es fundamental en la aplicación y en si es el vinculo... En este caso usar MySQL es el equivalente a usar una libreria liberada en GPL...
Quinto: por lo escrito en el parrafo anterior es por lo que muchas distribuciones de linux directamente o ya no inclullen código propietario (aunque sean aplicaciones freeware) o lo hacen en CDs separados... y es que puede habler problemas de licencias. Por ello excepto en Linspire/FreeSpire y un par de distribuciones más no se incluyen codecs, drivers (los de las targeta de video suelen ser freeware en cambio no se incluyen por eso)...
Sexto: La licencia GPL está diseñada para forzar a usarla, incluso si tu ves código fuente de una aplicación protegida con GPL y después tu escribes una aplicación similar, aunque no uses ni una linea de código, pues estás obligado a que tu aplicación sea GPL. Incluso muy teóricamente tendrías que a partir de la visión del código protegido por GPL licencias todo el código que hagas como GPL...
Septimo: La licencia GPL es tremendamente restrictiva, es una de las licencias más restrictivas que existen y está diseñada para serlo. Y no solo eso, lo simpatico es que cuando haya aplicaciones protegidas por la GPLv3, pues alguna de esas aplicaciones es incompatible por ejemplo con Windows, legalmente tu no podrías usar una aplicación protegida por la GPLv3 en software parcialmente protegido con patentes de software... en cristiano, tu solo puedes usar aplicaciones GPLv3 con otras aplicaciones GPLv3, LGPL, GPLv2 y muy pocas más, entre ellas las de Mozilla.
Primeramente, cuando se habla de GPL se está hablando de una familia de licencias y versiones incompatibles o semiincompatibles. GPLv1, GPLv2, LGPL ... y actualmente está a punto de salir la GPLv3.
Segundo, creo que la mayor parte de vosotros jamás leyo la licencia GPL y si la leyo probablemente no tuvo en cuenta que está redactada usando tecnicismos legales, no está en el usual inglés técnico y la que vale es la versión pura en inglés...
Tercero, ya se comento de pasada que MySQL hace una excepción en la licencia con PHP, eso se debe a que tal como se licenciaba MySQL te obligaba a que tu aplicación en PHP fuese también GPL debido a que PHP está bajo licencia BSD incompatible con GPL, incluso siendo teóricamente ilegal usar PHP con MySQL, de ahí que comenzo a inclusión de SQLite a partir de PHP 5. Lo que significaria que de la noche a la mañana la mayor parte de las instalaciones de MySQL migraran a otras Bases de Datos... y los de MySQL no son tontos y por eso hacen la excepción con PHP.
Cuarto, con lo anterior y comentando cosas ya dichas: si tu usas MySQL en servidor y te conectas con ODBC u otro metodo similar que legalmente hace que tu aplicación no estea conectada fisicamente con MySQL (podrías sustituir MySQL por Oracle y a lo sumo cambiar media docena de lineas de código) pues no hay problemas legales. Pero si MySQL es un componente principal o accesorio de tu aplicación entonces o pagas licencia comercial o teóricamente tu aplicación tiene que ser GPL, aunque no haya ni una línea de código usada o no uses los drivers... y por qué? pues porque tal como está redactada la GPL (y será mucho peor con la GPLv3), si tu usas código (fuente u objeto, vease binarios) GPL en una aplicación, esa aplicación tiene que ser GPL o licencia compatible como LGPL. Tanto da que uses un truco como usar un archivo de texto, ese archivo es fundamental en la aplicación y en si es el vinculo... En este caso usar MySQL es el equivalente a usar una libreria liberada en GPL...
Quinto: por lo escrito en el parrafo anterior es por lo que muchas distribuciones de linux directamente o ya no inclullen código propietario (aunque sean aplicaciones freeware) o lo hacen en CDs separados... y es que puede habler problemas de licencias. Por ello excepto en Linspire/FreeSpire y un par de distribuciones más no se incluyen codecs, drivers (los de las targeta de video suelen ser freeware en cambio no se incluyen por eso)...
Sexto: La licencia GPL está diseñada para forzar a usarla, incluso si tu ves código fuente de una aplicación protegida con GPL y después tu escribes una aplicación similar, aunque no uses ni una linea de código, pues estás obligado a que tu aplicación sea GPL. Incluso muy teóricamente tendrías que a partir de la visión del código protegido por GPL licencias todo el código que hagas como GPL...
Septimo: La licencia GPL es tremendamente restrictiva, es una de las licencias más restrictivas que existen y está diseñada para serlo. Y no solo eso, lo simpatico es que cuando haya aplicaciones protegidas por la GPLv3, pues alguna de esas aplicaciones es incompatible por ejemplo con Windows, legalmente tu no podrías usar una aplicación protegida por la GPLv3 en software parcialmente protegido con patentes de software... en cristiano, tu solo puedes usar aplicaciones GPLv3 con otras aplicaciones GPLv3, LGPL, GPLv2 y muy pocas más, entre ellas las de Mozilla.
