2009-03-19 6 views
5

Entiendo que es mejor implementar otras bibliotecas donde sea posible (en lugar de copiar el código), pero en algunos casos, es más conveniente copiar el código.¿Cómo se refieren las licencias como GPL a la copia del código?

¿Cuál es la etiqueta correcta para copiar el código? ¿Crédito en la parte superior de su archivo, cerca del código utilizado? ¿Qué pasa si el código se vuelve a factorizar más allá del reconocimiento?

+4

Votamos para cerrar esta pregunta como fuera de tema porque se trata de licencias/derechos de autor/cuestiones legales, no de programación o desarrollo de software. Vea la [ayuda/sobre el tema] para más. – Pang

Respuesta

9

La GNU GPL es muy específico acerca de cómo se puede usar el código que obtuvo a través de esa licencia. (Tenga cuidado: Si su licencia para el código en cuestión no es GPL, LGPL pero por ejemplo, se aplican diferentes reglas.) Básicamente GPL se reduce a esto:

  • Si se mantiene el código por sí mismo y no lo hace redistribuirlo a cualquier otra persona, puede hacer lo que quiera con él sin ninguna obligación.
  • Si planea compartir su código con otra persona, solo puede hacerlo bajo la licencia GPL. Esto incluye que usted proporcione el código fuente completo con su distribución (¡incluido su propio código!), Que indique claramente a la otra parte que este código tiene licencia bajo la GPL (incluido su propio código) y brinde información completa sobre cómo modificó el código original.

Incluso si el código se vuelve a factorizada más allá del reconocimiento: Si desea distribuirlo, usted tiene que seguir estos términos y que sea comprensible para la otra parte, que las piezas que ha cambiado (más allá del reconocimiento ;-)). Asegúrese de no olvidar: Esto no es etiqueta, ¡esta es la ley de derechos de autor!

Otras licencias, como las licencias BSD, tienen diferentes términos. Por ejemplo, si usa código bajo la licencia BSD, solo debe conservar la declaración de derechos de autor, pero puede redistribuir felizmente el código bajo cualquier licencia que desee elegir, con código fuente o no.

+2

Si el código se refactoriza "más allá del reconocimiento", entonces su trabajo ya no es un trabajo derivado del código GPL. Eso es conceptualmente idéntico a aprender un algoritmo del código GPLed y escribir su propia implementación. No está redistribuyendo ** código de GPL con derechos de autor **, probablemente esté descolgado. – JasonSmith

+0

Si no tuviera derechos de autor, hubiera sido de dominio público, GPL no tendría sentido aquí. Estoy contigo para que se convierta en una delgada línea entre el trabajo derivado y la nueva implementación limpia. No sé exactamente dónde dibujarlo y dónde el propietario original de los derechos de autor perdería sus derechos de autor. – ypnos

0

Depende del tipo de licencia.

En general, las licencias quieren proteger el hecho de que no son su trabajo, sino más bien, son libres para todos. Esto generalmente incluye la licencia en algún lugar de su proyecto.

Puede encontrar una lista de muchas licencias de código abierto y sus términos en: http://www.opensource.org/licenses/alphabetical

0

código de copia en algo que estás haciendo es crear legalmente un trabajo derivado, por lo que debe cumplir con los requisitos de la licencia. Todas las licencias de software libre/código abierto que he examinado exigen que se mantenga la atribución, por lo que no se trata solo de etiqueta.

Si usted tiene una lista de créditos en alguna parte, usted debe asegurarse de que el licenciante está en esa lista. Si está en su propia sección separada (ya sea su propio archivo o uno más grande), sería bueno marcarlo y (por supuesto) atribuirlo.

Si se refactorizado más allá del reconocimiento, sigue siendo una obra derivada, y usted todavía está utilizando el código de otra persona, por lo que legal y moralmente se debe dar crédito.

Por supuesto, debe cumplir con todas las demás restricciones. Usted mencionó la GPL; en este caso, todo el producto debe redistribuirse bajo la GPL o no redistribuirse en absoluto. No importa si el código se refactoriza más allá del reconocimiento y se divide entre archivos, siempre que use directamente el código en su código. Por supuesto, diferentes partes del código pueden estar bajo licencias adicionales, siempre que sean compatibles con GPL, pero debe cumplir con los requisitos de la GPL para redistribuir.

Cuestiones relacionadas