¿Qué licencia poner a código reescrito?
Bueno, antes de nada, decir que no sé muy bien si el título del post es adecuado. Lo he estado pensando un rato y no se me ha ocurrido otra cosa. El caso es que es algo que me llevo haciendo esta pregunta desde hace bastante tiempo.
A lo que vamos, ¿qué licencia poner a un programa basado en código ya escrito? Me explico. Por ejemplo, en investigación es muy común, junto con los trabajos publicados en revistas, aportar el código que realiza el trabajo presentado. Supongamos que quiero utilizar el algoritmo presentado, pero los fuentes originales están en Fortran y yo prefiero C. ¿Puedo reescribir el programa en C basándome en el código Fortran y ponerle la licencia que yo quiera? Supongo que lo de reescribir puede tener matices: reescribir línea por línea en el nuevo lenguaje, copiar la estructura general, aunque se cambien funciones, parámetros, etc.
No sé si me he explicado bien. ¿Sugerencias?
- Inicie sesión o regístrese para enviar comentarios
- 308 lecturas


rescribir todo el codigo te permite hacer el cambio de licencia, si he entendido bien lo que quieres hacer es similar a lo que hizo RMS con las herramientas GNU, reescribiendo las aplicaciones desde cero y licenciando nuevamente, habria que ver bajo que licencia esta el codigo original pero no creo que haya problema salvo algun caso muy puntual.
Y si además has cambiado de lenguaje, ya ni te digo xD
Tiene toda la pinta de poder ponerle tu licencia a gusto.
Hola que tal,
Hola , voy a contarte lo poco que se sobre licencias espero que te sirva.
Pues todo depende de la licencia con la cual se ofrece el código, pues veras si tienes acceso al código por medio de esas revistas, esas mismas revistas deben de informar la licencia y autoría de dichos códigos.
Si en ningún lado se especifica, entonces, en teoría esos códigos son de dominio publico, es decir, es un regalo para la humanidad; igual que la aspirina, las mayoría de recetas de cocina,etc; y todas esas cosas que puedes construir sin que nadie te reclame nada.
También puede pasar que tengan una licencia y en dicha licencia se debe especificar lo que tu buscas, hay aquellas que permiten el re-licenciamiento, un ejemplo es la licencia BSD; esta es una licencia libre que permite re-licenciarla a otra licencia, sea cual sea (Esto es lo que hizo apple con el núcleo NetBSD, lo re-licenció para su propio sistema MacOSX, cuando paso a usar tecnología Intel). Otro ejemplo contrario es la licencia GNU GPL, la que usa GNU/Linux, esta es una licencia libre, pero todo Software derivado de un Software libre tiene que tener si o si la misma licencia GNU GPL, como veras esta no permite el re-licenciamiento.
Como veras todo depende de la licencia que le hallan otorgado, y según los términos de la misma, tu podrás o no hacer lo que quieras con esos códigos que quieras modificar o cual sea tu necesidad.
Bueno espero haberte sido un poco útil, creo que en el mismo sitio del proyecto GNU explican esto o era la Wikipedia, disculpa mi mala memoria en este momento.
Saludos. Banias.
rescribir todo el codigo te permite hacer el cambio de licencia, si he entendido bien lo que quieres hacer es similar a lo que hizo RMS con las herramientas GNU
Eso es lo que, en principio, me parece a mí. Pero yo me refiero a una reescritura teniendo presente el código fuente original. No sé si se podría hablar de una copia, ya que en el caso más extremo, que no es el mío, podría llegarse a una traducción línea por línea a otro lenguaje.
rescribir todo el codigo te permite hacer el cambio de licencia, si he entendido bien lo que quieres hacer es similar a lo que hizo RMS con las herramientas GNU
Eso es lo que, en principio, me parece a mí. Pero yo me refiero a una reescritura teniendo presente el código fuente original. No sé si se podría hablar de una copia, ya que en el caso más extremo, que no es el mío, podría llegarse a una traducción línea por línea a otro lenguaje.
En ausencia de patentes de software, los algoritmos no se pueden patentar por lo tanto "algorítmicamente" hablando es posible la reescritura completa y el cambio de licencia.
Pero hay un pero, y es que el código a traducir puede tocar una patente (no de software) y ahí puede haber problemas.
Aún con todo, lo mejor que puedes hacer es ponerte en contacto con el programador original y preguntarle por la licencia de su código y contarle en líneas generales lo que vas a hacer. En el 99.9% de los casos no hay problema y además si puede, te ayuda y/o aconseja ya que siempre es grato que el trabajo realizado se valore y sirva a otros de referente.
pd: si le escribes no repares en calificativos grandiosos, de esos que hacen crecer el pito.
Pongo un ejemplo.
El programa ETERNA sirve para el análisis de mareas terrestres. Es, casi, casi, el estándar de facto para el procesado de este tipo de datos. El contrato de uso se puede leer en:
http://www.eas.slu.edu/GGP/ETERNA/ETERNA34/MANUAL/ETERNA33.HTM
donde viene a decir que puedes usar el programa, pero no puedes prestarlo, regalarlo, etc., es decir, que no es software libre.
Supongamos ahora que nos descargamos el subprograma PREDICT.FOR del paquete ETERNA:
http://www.eas.slu.edu/GGP/ETERNA/ETERNA34/SOURCEF/PREDICT.FOR
En el código no dice nada de licencias, aunque vamos a suponer que se ampara en lo dicho en el contrato de uso. ¿Qué pasa si yo reescribo PREDICT.FOR en C? No se trataría ni siquiera de una traducción literal; probablemente yo utilizaría alguna estructura, no utilizaría variables globales como hace el fuente en Fortran y dividiría sus funciones en algunas bibliotecas. ¿Podría relicenciar mi versión, aun cuando el núcleo numérico (los algoritmos que calculan los resultados) sea el mismo? En cuanto a patentes de software, el código no dice nada y, de todas formas, en Europa no están permitidas. Por otro lado, el autor, H. G. Wenzel, hace tiempo que murió.
Ahora un ejemplo que puede que sea una chorrada, pero como ejemplo vale. Imaginemos que me cojo el código de emacs y lo reescribo en el mismo lenguaje que el original. ¿Puedo relicenciarlo? Es una tontería, ya lo sé. ¿Qué pasaría si un día, aunque sólo fuese por fastidiar, los de Microsoft reescribiesen emacs y lo publicaran como software privativo? No están usando los fuentes originales, que son los que cubre la licencia.
¿Me equivoco en algo?
Pongo un ejemplo.
El programa ETERNA sirve para el análisis de mareas terrestres. Es, casi, casi, el estándar de facto para el procesado de este tipo de datos. El contrato de uso se puede leer en:
http://www.eas.slu.edu/GGP/ETERNA/ETERNA34/MANUAL/ETERNA33.HTM
donde viene a decir que puedes usar el programa, pero no puedes prestarlo, regalarlo, etc., es decir, que no es software libre.
Supongamos ahora que nos descargamos el subprograma PREDICT.FOR del paquete ETERNA:
http://www.eas.slu.edu/GGP/ETERNA/ETERNA34/SOURCEF/PREDICT.FOR
En el código no dice nada de licencias, aunque vamos a suponer que se ampara en lo dicho en el contrato de uso. ¿Qué pasa si yo reescribo PREDICT.FOR en C? No se trataría ni siquiera de una traducción literal; probablemente yo utilizaría alguna estructura, no utilizaría variables globales como hace el fuente en Fortran y dividiría sus funciones en algunas bibliotecas. ¿Podría relicenciar mi versión, aun cuando el núcleo numérico (los algoritmos que calculan los resultados) sea el mismo?
Ahora un ejemplo que puede que sea una chorrada, pero como ejemplo vale. Imaginemos que me cojo el código de emacs y lo reescribo en el mismo lenguaje que el original. ¿Puedo relicenciarlo? Es una tontería, ya lo sé. ¿Qué pasaría si un día, aunque sólo fuese por fastidiar, los de Microsoft reescribiesen emacs y lo publicaran como software privativo? No están usando los fuentes originales, que son los que cubre la licencia.
¿Me equivoco en algo?
Ya son argucias legales, ellos tendrían que demostrar que te has basado en su código en caso de querer buscar un pleito, lo cual es harto difícil, por no decir imposible, porque ya es difícil demostrarlo en un mismo lenguaje...