¿Es posible volver a escribir cada línea de un proyecto de código abierto de una manera ligeramente diferente, y usarlo en un proyecto de código cerrado?

119

Hay algún código que es GPL o LGPL que estoy considerando usar para un proyecto de iPhone.

Si tomara ese código (JavaScript) y lo reescribiera en un idioma diferente para usar en el iPhone, ¿sería un problema legal?

En teoría, el proceso que sucedió es que revisé cada línea del proyecto, aprendí lo que estaba haciendo y luego reimplementé las ideas en un nuevo idioma.

A mi parecer, esto es como aprender a implementar algo, pero luego volver a implementarlo por separado de la licencia original. Por lo tanto, solo ha copiado el algoritmo, que posiblemente podría haber aprendido de otro lugar que no sea el proyecto original.

¿La licencia cubre la implementación específica o el algoritmo también?

EDITAR ------

Realmente me alegra ver este tema crear una buena conversación. Para dar un poco más de respaldo al proyecto, el código involucrado realiza algún tipo de análisis de audio. Creo que no es trivial aprender o implementar, aunque estaba preparado para emprender esta tarea (estoy en el nivel donde puedo implementar un FFT , y esto va a ir más allá de eso.) Es un bastante bajo script, así que no pensé que sería demasiado difícil hacer un puerto directo.

Me gusta mucho la idea de volver a liberar mi puerto y usarlo en la aplicación. No veo ningún problema con eso, y sería una excelente manera de devolverle algo a la comunidad.

Iba a agregar una línea sobre no querer discutir los problemas morales, pero me alegro de no haberlo hecho ya que parece haber desencadenado un poco el debate.

Todavía me resulta un poco extraño usar el código de código abierto para aprender. ¿Esto significa que todo lo que uno aprende de un proyecto de código abierto no se puede usar en un proyecto de código cerrado? ¿Y cuánto tiempo después o diferente debe ser una implementación para no ser considerada una violación de la licencia? ¡Murky!

EDIT 2 --------

Pregunta de seguimiento

    
pregunta Chris Barry 24.06.2011 - 15:41

14 respuestas

255

No soy abogado. Esto no es un consejo legal.

Dicho esto, tomar cada línea de una aplicación y cambiarla ligeramente con el único propósito de eludir la ley de derechos de autor es, evidentemente, crear un trabajo derivado sin una defensa plausible en absoluto. Incluso el juez y el jurado más comprensivos definitivamente encontrarán en su contra si alguna vez lo arrastran al tribunal.

A modo de comparación: las empresas que sí necesitan reescribir algo para la interoperabilidad generalmente contratan a diferentes grupos de personas para que entiendan la fuente y creen el puerto ("implementación en sala limpia"), para que nadie pueda acusarlos. creando una obra derivada. Lo que propones es exactamente lo contrario.

    
respondido por el Kilian Foth 24.06.2011 - 16:16
70

Según Betsy Rosenblatt de Fundamentos de derechos de autor :

  

¿Qué constituye una infracción de derechos de autor?

     

Sujeto a ciertas defensas, es una infracción de derechos de autor para alguien que no sea el autor hacer lo siguiente sin el permiso del autor:

     
  1. copiar o reproducir el trabajo
  2.   
  3. cree un nuevo trabajo derivado del trabajo original (por ejemplo, traduciendo el trabajo a un nuevo idioma, copiando y distorsionando la imagen, o transfiriendo el trabajo a un nuevo medio de expresión)
  4.   
  5. vender o regalar el trabajo, o una copia del trabajo, por primera vez (pero una vez que el autor lo haya hecho, el derecho de vender o regalar el artículo se transfiere al nuevo propietario. Esto se conoce como La doctrina de la "primera venta": una vez que el propietario de los derechos de autor ha vendido o regalado el trabajo o una copia del mismo, el receptor o comprador puede hacer lo que quiera con lo que posea. 17 USC §109 (a).
  6.   
  7. realizar o mostrar el trabajo en público (este derecho no se aplica al arte visual) sin el permiso del propietario de los derechos de autor. 17 U.S.C. §106. También es una infracción de derechos de autor violar los "derechos morales" de un autor como se define en 17 U.S.C. 106A. Los derechos morales se discuten en este lugar.
  8.   

Me parece que estarías violando el artículo 2 anterior.

Sin embargo, creo que la terminología es un gran problema aquí. Usted dijo: "Si tomara ese código (javascript) y lo reescribiera en un idioma diferente para usar en el iPhone, ¿eso sería un problema legal?" (énfasis mío). Reescribir algo puede o no ser diferente de copiar. Por ejemplo, si miraste a la Mona Lisa, luego entraste a tu propio estudio y pintaste lo que recuerdas, me parece que estás creando un trabajo original que es tu expresión de cómo percibiste el original. Sin embargo, si tenías una copia de la Mona Lisa en tu estudio y pintaste una copia de ella, en lugar de lo que recuerdas, entonces creo que definitivamente estás copiando.

De la misma manera, si usa MS Word, y quizás incluso si observa algo del código, y luego escribe su propio procesador de textos que tiene similitudes funcionales, creo que hay casos en los que se decidió ese "look & feel" no tiene derechos de autor. (Esto no dice nada de patentes, por supuesto).

Probablemente debería preguntar a un abogado (ya que yo no lo soy).

Mi opinión personal es que un "puerto" es un trabajo derivado y, por lo tanto, debe liberar el código portado en la misma licencia.

    
respondido por el Scott Whitlock 24.06.2011 - 15:59
54

No soy abogado, esto no es un consejo legal, y si confía en lo que digo en cualquier tipo de empresa dudosa (1) usted es un idiota y (2) no me responsabilizo. Esto es lo que he escuchado y leído a lo largo de los años de personas que parecen saberlo.

Los jueces no juegan juegos "en teoría". No les gustan las personas que inventan formas de torcer la ley que quizás sean aceptables en términos de análisis lógico, pero que son contrarias a la intención obvia y cómo los jueces han gobernado en el pasado. Nunca intente ser demasiado inteligente con la ley si existe la posibilidad de que termine en un tribunal defendiendo su interpretación.

En general, se acepta que sacar una novela y hacer una película a partir de ella o traducirla a otro idioma está creando trabajos derivados, y esas son transformaciones mucho mayores de las que usted habla, y requieren mucha más creatividad. Mira esos como ejemplos; un juez ciertamente lo hará.

En los EE. UU., ha habido casos en los que se ha descartado la infracción de la copia de un programa de forma más flexible de lo que está hablando. En los EE. UU., Espere que se utilicen como precedentes.

En otras palabras, comenzarás una empresa comercial sobre una base que se considerará ilegal si alguien se molesta en buscar. No es una buena idea.

Además, si respeta la idea de los derechos de autor o el control que un autor pueda tener sobre lo que él o ella publica, está siendo hipócrita. El código fuente se puso a disposición para su uso bajo ciertas condiciones. Estás violando la ley y la intención expresa del autor.

Ahora, los algoritmos no pueden tener derechos de autor. En los EE. UU., Los tribunales han dictaminado que es imposible proteger una idea con derechos de autor, y todo lo que normalmente es una tabla de derechos de autor es la única forma de expresar algo que no se puede hacer con derechos de autor. Por lo tanto, ciertamente puedes usar el algoritmo.

Hay una forma de copiar un algoritmo que está protegido por derechos de autor: el enfoque de "sala limpia", donde una persona o grupo estudia el código fuente y crea una descripción del algoritmo (con la menor cantidad de detalles de implementación posible), y otra persona o grupo escribe un nuevo código sin ninguna referencia a la fuente original. Cuanto más te acerques a eso, más seguro estarás.

También puede considerar que, al publicar la pregunta aquí, ha publicado una posible intención de violar los derechos de autor, en una forma que probablemente se remita a usted si alguien tiene el derecho legal de hacerlo (por ejemplo, como descubrimiento en un caso civil, o investigación policial simple si esto resulta ser un caso criminal).

    
respondido por el David Thornley 24.06.2011 - 16:42
16

¿Por qué no acaba de abrir el código fuente de su puerto y dejar que el resto de su proyecto sea el código cerrado?

Para citar otra responder de la mía:

  

El código abierto funciona, porque es un   comunidad. Porque es mutuo. Tú   No consiga dinero escribiendo abierto   código fuente. Obtienes dinero por   consumiendo código fuente abierto. Entonces, ¿por qué   escribes código fuente abierto? Dar   algo de vuelta.

Pero desde un punto de vista más pragmático:
Si el código que portó es realmente tan útil que cree que debería protegerlo para mantener una ventaja (que no tiene, porque las personas que usan Appcelerator puede usarlo de inmediato), tarde o temprano habrá un puerto de código abierto. Varias personas la mantendrán, la utilizarán y, por lo tanto, se probarán con más personas, y se refinará aún más para incorporar los principios promovidos por el idioma de destino y para interactuar mejor con los marcos prevalecientes en su plataforma. Tarde o temprano tu código se verá como un pedazo de basura comparado con él.
El abastecimiento abierto es, de hecho, tu oportunidad de estar al tanto de la estela. Es ganar-ganar Si tiene suerte, incluso obtendrá mantenedores para ese código y podrá centrarse en la lógica de su aplicación, que es lo que realmente hace que su producto sea único.

    
respondido por el back2dos 24.06.2011 - 17:02
8

No soy abogado, ni siquiera juego en la televisión.

Pero creo que el problema aquí es la derivación. Si su nuevo trabajo se deriva del trabajo GPL o LGPL, entonces ese trabajo debe cumplir con los requisitos de la GPL o LGPL. Su trabajo será claramente derivado, incluso si lo reescribe línea por línea en otro idioma.

    
respondido por el T.J. Crowder 24.06.2011 - 15:45
5

Como dicen otros, es probable que esto sea un trabajo derivado y, por lo tanto, infringir directamente los términos de la GPL si elige hacerlo "por separado de la licencia original" (supongo que eso significa que eliminaría la GPL y usaría otra cosa, incluso fuente cerrada).

Incluso si se desliza como "legal", es claramente inmoral . El autor de un software de GPL escogió una licencia que extendiera las libertades a las obras derivadas. Ya sea algo bueno o malo, es la intención del autor y debes respetar eso . Le dieron el código para leer y modificar, bifurcar y lo que sea, solo pidiendo a cambio que no cambie las condiciones. También es probable que tampoco se esperara que pagues por el software en sí.

Sé que el dinero es difícil, pero de esta forma, al pintar tu idea, es robar. Claro, usted podría haber aprendido ese algoritmo o cualquier otro detalle de implementación de otra fuente, pero no lo hizo, como lo dijo usted mismo.

Si la moralidad no le concierne, recuerde que dada la naturaleza gris de la legalidad de lo que está haciendo (o está por hacer), es muy posible que los autores originales se comuniquen con Apple debido a una infracción de derechos de autor. Hasta ahora, Apple se apresuró a eliminar el software que infringía la GPL. Otra posibilidad es una demanda.

Si fuera usted, consideraría GPL-ing mi propio trabajo (¡no es algo tan malo!) u obtener el conocimiento por otros medios.

    
respondido por el Tamás Szelei 24.06.2011 - 16:39
5

¿Qué hay de tratar de hacer lo correcto y no robar las ideas de alguien? Simplemente puede enviar un correo electrónico al creador del código y preguntar si puede basar partes de su proyecto a partir de los suyos. Muchas personas no tendrían ningún problema con eso. Si tienen un problema con eso, incluso dejando de lado los problemas legales, ¿por qué querría manchar su reputación como profesional en la comunidad? El hecho de que esta pregunta se expresara más o menos como "¿Con qué me salgo con la suya?", A diferencia de "¿Qué debo hacer?" es un poco preocupante

Línea inferior, pregunte a la persona (o personas) que escribió el código .

    
respondido por el Morgan Herlocker 24.06.2011 - 17:02
5

Yo tampoco soy abogado. Si le preocupa si este es un problema legal, entonces probablemente no debería hacer esta pregunta y simplemente escribir la suya.

Mi opinión personal al respecto:

Si está tomando el código javascript y lo está reescribiendo en un idioma diferente, se denomina portabilidad y se considera un trabajo derivado. Si está escribiendo su propia versión del software y está utilizando el código javascript como referencia para saber cómo funcionan ciertos algoritmos, es probable que esté bien.

Me equivocaría al pedir un abogado.

Como un anexo , la ley de derechos de autor le permite, básicamente, hacer NADA [*] con el código fuente publicado que no sea el de leerlo. La licencia bajo la cual el propietario de los derechos de autor ha liberado le permite ciertos privilegios adicionales que la ley de derechos de autor no proporciona. Tomar y usar el código de una forma distinta a la permitida en la licencia no es diferente a tomar y usar cualquier obra protegida por derechos de autor protegida por las leyes de derechos de autor sin obtener el permiso del autor.

[*] Con excepciones para uso justo.

    
respondido por el Dave Rager 24.06.2011 - 16:05
4

No. No es ético. Es casi seguro que es ilegal. Y si alguna vez revisé una aplicación de trabajo de alguien que había hecho eso, se archivaría con un prejuicio extremo.

    
respondido por el Paul Nathan 24.06.2011 - 18:53
2

Siempre codifique como si la persona que termina manteniendo su código sea un psicópata violento que sepa dónde vive. ~ Martin Golding

No soy abogado, por lo que no voy a responder como uno. Además, muchas otras personas que no son abogados ya han ofrecido sus opiniones acerca de las ramificaciones legales de su idea. Y me saltaré el debate de moralización / ética.

Si fuera tú, me preocuparían más las ramificaciones como desarrollador. Es una cuestión de respeto. El respeto propio, especialmente.

Claro, todos vamos a la caza de "How d'ya {implementación} en {especificación}?" de vez en cuando. ¿De donde vino Stack, Amirite? Y así es como todos encontramos que estamos aquí, ¿verdad? No estoy hablando de eso porque no estás hablando de eso.

Si en primer lugar combinara el golpe de genio + esfuerzo heroico = resultado que valga la pena presentar a la comunidad de desarrolladores como una fuente de código abierto, y a la gente le gustó lo suficiente como para usarlo, me caería muerto de la adulación. Yo estaría a lo grande. Como John Reisig, o Mark Story. Poco ol yo ¿Y luego surgió una gran cantidad de artículos y mi artículo contribuyó para que puedan ofrecerlo comercialmente o nativo en su aplicación comercial? Caída muerta.

El código es como la escritura a mano. No puedes cambiar una aplicación más grande que una caja de fósforos lo suficientemente significativa como para que otro desarrollador legítimo no pueda diferenciar los dos lado a lado y decir "Espera un minuto ..." Como desarrollador, me sentiría muy avergonzado por la posibilidad que mis compañeros, mis colegas, las personas a las que respeto y a quienes respeto, siempre descubrirían que le robé el código a alguien. Sería una risa. Porque eso es una copia épica de pasta script kiddie bs. ¿Realmente quieres deslegitimarte en los ojos de tus compañeros? El código de apoyo es una buena manera de comenzar.

Y como desarrollador, considera esto: si esa era mi aplicación, y descubrí que te la robaste de tal manera que te preocuparía que te demandaran, qué tal si decido al diablo con demandarte, estás haciendo una pila de efectivo gracias a mi código de todos modos, ¿por qué no debería golpearte donde me duele, tal vez recuperar algo de eso? ¿Cómo SABES que no soy un adolescente o que tengo un genio y un conjunto de habilidades aterradoras? Sal de mi camino a pwn r00 [en ur b0xen, por así decirlo. Desde que jacking mi aplicación me mostraría que yo > usted (base: podría escribir lo que usted solo podría jalar). No sería la primera vez.

    
respondido por el OpenSorceress 25.06.2011 - 22:43
0

No puede realizar trabajo derivado de trabajo derivado de trabajo derivado ... y esperar que no sea trabajo derivado. Puede volverse irreconocible, pero eso es otra cosa. Y puede comenzar desde cualquier texto y por serie de cambios obtener cualquier texto (por ejemplo, eliminar el primero, insertar el segundo), de modo que su posible no signifique que se hizo. Por lo tanto, no es importante si algo es posible, pero si realmente sucedió (solo es imposible que no haya ocurrido)

Moralmente hablando: Aprender de todo lo que pueda obtener (legalmente) está bien, pero debe reconocer las fuentes de paso. el descanso es legalidad.

IANAL, pero no creo que haya cometido ningún error, si: 1) Aprendí de la implementación de código abierto. 2) Implementar el mismo algoritmo (incluso en el mismo idioma) al hacer esto, las porciones grandes se volverán totalmente diferentes, y naturalmente algunos serán realmente similares. Si esas partes similares son cosas en las que ambos lados siguieron la misma práctica de codificación y, por lo tanto, no pueden ser diferentes, entonces estas partes no son susceptibles de ser copiadas. P.ej. Si la clase tiene dos campos de cadena privados y tienen captadores y definidores, lo único interesante es que esta clase tiene dos propiedades de lectura / escritura, no implementaciones de captadores y definidores.

    
respondido por el user470365 03.10.2011 - 13:52
0

Si reescribe cada línea individualmente puede o no estar "copiando" las líneas.

Pero está copiando textualmente el ordenamiento, la estructuración general y la inclusión de las líneas. En otras palabras, el tipo de cosas que hacen que el trabajo sea un "todo".

Estás copiando la parte que dice "esta línea debería ir aquí, esta línea debería ir allí". Esta es una gran parte del algoritmo general.

Además, cuando se inicia un proyecto, nadie sabe qué incluir, qué cosas deben considerarse más o menos importantes, cómo estructurar y componer los algoritmos. Esta información debe ser producida y diseñada en algún momento. Pero no lo necesitarías, porque estarías "copiándolo".

Como ejemplo:

Si tengo un conjunto {a, b, c, d, e, f}.

Puedo crear una lista ordenada de ellos, [f, e, c, b, d, a]. Debe decir que he agregado alguna información a la lista, conocida como ordenar , que no estaba presente en el conjunto desordenado. Dependiendo del tamaño de la lista, esta información puede ser muy específica y difícil de encontrar.

    
respondido por el Ben Jones 31.10.2013 - 11:33
-1

Es como cualquier otra cosa: no puedes des-aprender lo que has aprendido, visto, leído ... pero lo que puedes controlar es cómo lo usas ...

Dos cosas sobre este asunto -

  1. Como la mayoría de las licencias estipuladas para el código de código abierto ... hacer un centavo es totalmente genial, hacer que sea "pseudo" -cerrado es genial - pero el problema es 'crédito'. He comprado scripts de MUCHOS que tienen "créditos" otorgados a (URL de blog, código de sistema operativo usado ..., etc.) pero el problema es si estás abiertamente (sin ocultar) dando los credenciales / felicitaciones a las creaciones de alguien (de nuevo, a las personas no les importa si lo hacen ... muchas veces las personas NO dan crédito (por lo tanto, violan las estipulaciones de tipo GPL) por temor a que las personas se den cuenta de que puede obtenerlo en otro lugar ... pero si su código está dando abiertamente crédito y aún puede ser independiente (ya sea que SU contribución de código esté cerrada o abierta), a la gente no le importará.

Lo que encuentro como desarrollador es que las personas no quieren dar crédito, lo cierran para imitar a un gran desarrollador / programador, con el pretexto de ganar dinero con los esfuerzos de otra persona ...

así que estoy divagando al # 2 ...

  1. "intención" es casi (virtualmente) siempre el caso ... puede pararse frente a un juez (digamos que lo demandaron, lo llevaron a la corte o le pidieron que explique sus acciones) y declarar claramente sin murmurar, y con una posición distinta en el tema: por qué tomó la decisión de ocultar / cerrar la parte de 'código abierto' de su código, entonces esto no debería ser un problema.

mis 2 peniques. :)

Lo que es gracioso: la mayoría de la gente piensa que han inventado una "idea específica": cuando, de hecho, la "idea" probablemente ya (con una probabilidad extremadamente alta) ya ha sido lanzada en forma de servilletas, papel, codificación, Internet. , blog, etc ...

Entonces, aunque puede ser nuevo para usted, especialmente porque lo ha visto en los trabajos de SO de otra persona, probablemente se usa en otros trabajos de OS, de los cuales derivó su trabajo de SO ... y, en última instancia, probablemente se usa en otro lugar en línea ... eso ni siquiera es con un problema de licencia / copyright en absoluto ... en cuyo caso puede copiar de esa fuente ... modificar, cambiar, eliminar, agregar ... (aunque yo copiaría / url a regrese al lugar donde lo obtuvo para demostrar que lo obtuvo legítimamente) al código que desee.

Creo que es asombroso en 'code-land', especialmente cuántas veces he venido a encontrar que mi código 'astuto' ya estaba escrito (aunque no tan bien ... ten cuidado, jajaja) en 2003 en el friki de alguna persona , rango de búsqueda en google del # 1,239, sitio web que hicieron cuando estaban en la escuela de posgrado, simplemente creando funciones para el uso libre y divertido. :)

El punto es ... dar crédito, no eludir el problema, y cuando todo lo demás falla ... o si tiene dudas - PREGUNTE el sistema operativo original para los derechos de uso ... yeesh ! ¿Cuándo nos pusimos tan arrogantes que no podemos simplemente pedirle a alguien que use su aplanadora, cizallas, cortadora de césped, ... y - oh sí, una función genial que hicieron!

Bueno, fue 3 peniques ...

    
respondido por el William Ortell II 24.06.2011 - 16:58
-4

¡Dale al hombre un descanso!

  1. si se presentara una queja legal contra él, eso significaría que alguien tendría que tener acceso al código y LEERLO. ¿Qué pasa si el software está compilado?

  2. Siempre podrá recurrir a su ignorancia en este momento en el momento de los hechos. ¿No se supone que uno debe tener buena fe antes de ser juzgados culpables?

  3. El aprendizaje no se está copiando. Encontrar inspiración en algunos trabajos existentes definitivamente tampoco está copiando. Entonces, ¿qué pasaría si aprendiera de una pieza de software la función de cada línea de código y decidiera que debía usar los principios de los resultados para mejorar eso y hacer un software mejor, más simple y más eficiente? No copiar IMHO.

Esos eran mis 2 centavos. Ahora es el turno para el primero sin pecado en tirar la piedra ...;)

    
respondido por el Breakerfall 24.06.2011 - 20:46

Lea otras preguntas en las etiquetas