¿Debería incluirme como autor después de modificar el código de terceros?

17

Es una práctica común hacer algunos ajustes o correcciones en el código de terceros (ya sea una simple idea o una biblioteca completa). Pero también es común que muchos de estos códigos tengan sus propias reglas de licencia y, finalmente, un encabezado en cada archivo con información de copyright.

Después de hacer esas modificaciones, ¿qué es lo correcto a continuación? ¿Mantenga la información de la licencia intocable o intente actualizarla incluyéndose con algo como @authoro @revisionetiquetas?

Otro problema común es cambiar el espacio de nombres / paquete de terceros para que se ajuste a las convenciones de su proyecto. Algunos tipos de licencia incluyen este tipo de información en su bloque de licencia, ¿puedo cambiarla libremente?

Sé que la respuesta a estas preguntas depende de cada tipo de licencia, por lo que para hacer mi pregunta más específica ...

Teniendo en cuenta las reglas generales de licencia (generalmente son diferentes en aspectos menores, ¿verdad?), Es ético (o al menos permitido) que agregue libremente información al bloque de licencia sobre mis modificaciones y quizás también modifique cómo me refiero a él en mi código (por ejemplo, usar YACorp.YALibcomo Utils.YALib)?

kbtz
fuente
2
Depende de la licencia y las prácticas establecidas del proyecto. Algunos proyectos acreditan a todos los autores en el texto de la licencia; otros ponen a los autores en Github y se refieren al proyecto por su nombre en la licencia. Algunas licencias requieren atribución, otras no.
Robert Harvey
@RobertHarvey Tienes razón, pero estoy tratando de definir algunas pautas generales para estas situaciones. He actualizado la pregunta.
kbtz
Tu edición suena como un tenedor. Si está bifurcando el proyecto, puede hacer lo que quiera (es dueño de la bifurcación). Pero no estaría jugando con los nombres de las bibliotecas a menos que sea el propietario del proyecto.
Robert Harvey
1
Esta pregunta parece estar fuera de tema porque se trata de la afirmación y asignación de derechos de autor. Las preguntas sobre derechos de autor son preguntas legales fuera de la experiencia de la comunidad y no encajan bien en el sitio. Esta pregunta es difícil de responder correctamente porque hay demasiados factores involucrados, como la jurisdicción local, así como la licencia y la propiedad de los derechos de autor del programa original.

Respuestas:

9

Después de hacer esas modificaciones, ¿qué es lo correcto a continuación? ¿Mantenga la información de la licencia intocable o intente actualizarla incluyéndose usted mismo con algo como las etiquetas @author o @revision?

Creo que está confundiendo la licencia del software y cualquier prólogo que pueda ser parte del software.

La licencia es donde los propietarios de los derechos de autor del programa especifican los términos de uso (la licencia) para otras personas. Algunas licencias son muy permisivas, otras son mucho más restrictivas.

El prólogo es donde los autores insertan @authory @revisionetiquetan para proporcionar una forma de rastrear los cambios en el código fuente. En algunos casos, convertirse en autor de una adición no trivial al código puede darle derecho a reclamar los derechos de autor sobre esa sección del código. Desenredar las preocupaciones de derechos de autor puede ser espinoso y es mejor manejarlo por abogados. Sin embargo, usted declaró específicamente que no le preocupa ese aspecto, así que seguiré adelante.

Otro problema común es cambiar el espacio de nombres / paquete de terceros para que se ajuste a las convenciones de su proyecto. Algunos tipos de licencia incluyen este tipo de información en su bloque de licencia, ¿puedo cambiarla libremente?

Esto realmente depende de las convenciones del proyecto.

Si bifurcas el proyecto, puedes hacer lo que quieras.

Si planea contribuir con sus cambios al proyecto, debe seguir con la convención establecida. Si hay una razón convincente para cambiar el espacio de nombres, entonces debe presentarlo a la comunidad de la aplicación.

Teniendo en cuenta las reglas generales de licencia (generalmente son diferentes en aspectos menores, ¿verdad?),

¿es ético (o al menos está permitido) que agregue libremente información al bloque de licencia sobre mis modificaciones y quizás también modifique cómo me refiero a él en mi código (por ejemplo, uso YACorp.YALib como Utils.YALib)?

¡No cambies la licencia!

En primer lugar, es probable que no tenga los derechos legales para cambiar la licencia. En segundo lugar, cualquier cambio que realice probablemente estropeará la licencia. Deje los cambios de licencia a los abogados.

En cuanto a la actualización del prólogo, depende de las normas del proyecto. Algunos proyectos no quieren un prólogo porque usan el control de fuente para rastrear eso. Otros proyectos lo hacen. Siga las convenciones del proyecto.

En realidad, mis preocupaciones tienen más que ver con el "respeto a la comunidad" que con los aspectos legales, estoy preguntando más sobre cuánto podemos "volvernos locos" siendo éticos si nuestro proyecto puede considerarse privado o personal.

Si te estás guardando los cambios, ¿por qué te importa lo que piensen los demás? Algo que usa solo para usted y que nunca distribuye a otros no tiene ningún impacto en el proyecto original. Entonces no les importa lo que haces.

Si planea distribuir sus cambios o contribuirlos nuevamente al proyecto, debe evaluar las convenciones de ese proyecto. Algunos proyectos no quieren ser bifurcados y tendrán una licencia para evitarlo. Otros van tan lejos como para decir "haz lo que quieras" y te dan carta blanca para que hagas lo que consideres conveniente. En última instancia, la respuesta aquí depende del proyecto particular que esté viendo.


fuente
Tal como esperaba, las respuestas son casi obvias, pero fue un alivio ver a todos decir lo que pensaban. Gracias a todas las respuestas!
kbtz
¿Existen realmente proyectos que aceptan contribuciones pero no permiten la bifurcación? ¿O quieres decir cosas como bibliotecas comerciales que también vienen con su código fuente?
svick
@svick: ambos serían aplicables en este caso. Existen algunos proyectos de código abierto que (intentan) evitar la bifurcación. Piense en proyectos en los que intentan reservar la posibilidad de comercializar en algún momento en el futuro. Las bibliotecas comerciales existentes evitarían la bifurcación por los términos de la licencia.
@ GlenH7 Pensé que tales proyectos (por ejemplo, MySQL) generalmente requieren que los derechos de autor de las contribuciones que van a la versión oficial se asignen a la organización gobernante. Luego, la versión de código abierto se lanza bajo una licencia común de código abierto (como GPL), pero también pueden tener una versión comercial de código cerrado. Pero eso no evita las bifurcaciones de la versión de código abierto (vea MariaDB).
svick
5

Agregaría un comentario, en parte para indicarle al lector que el archivo no es "vainilla", con enlaces a cualquier documentación relevante o un sistema de seguimiento de problemas.

Editar: esta situación me recuerda cuando una distribución de Linux empaqueta, por ejemplo, una biblioteca. Debian tiene pautas y estándares sobre cómo se deben construir y nombrar los paquetes, que bien podrían variar de cómo la biblioteca generalmente se distribuye preconstruida.

No creo que deba ser tímido para nombrar / construir / modificar una biblioteca, ya que supongo que no distribuirá el resultado al resto del mundo. En este caso, incluiría un archivo README junto con la fuente que describe qué cambios ha realizado y por qué. Por ejemplo, README. $ {CompanyName} .changes

Rory Hunter
fuente
También haría algo como esto, pero mi pregunta se refiere más a lo que se considera correcto desde el punto de vista de la tercera parte y / o las reglas generales de licencia.
kbtz
2

Tendrá que consultar la regla de licencia del código.

En general, muchas aplicaciones frontend de código abierto (por ejemplo, Firefox, OpenOffice) consideran su nombre y logotipo de la aplicación como una marca registrada; por lo tanto, si lanzara una versión modificada de la aplicación, no podrá usar las marcas comerciales originales / imagen comercial (por lo tanto, IceWeasel, Torbrowser, LibreOffice).

Sin embargo, la mayoría de las bibliotecas de programación a menudo están menos preocupadas por las marcas registradas, siempre y cuando esté bastante claro quién hace qué (por lo general, esto se puede encontrar en los metadatos de control de versiones).

La información del autor tiene dos propósitos:

  1. Dar crédito donde es debido
  2. Culpando donde se merece

Este último se vuelve más importante a medida que sus cambios se hacen más grandes. La información de autoría real generalmente se puede encontrar en el control de versiones, pero algunos proyectos acreditan formalmente a un conjunto de autores en un archivo separado. El punto de corte donde se acreditaría formalmente a las personas varía para cada proyecto, contacte a los autores originales si tiene dudas.

Lie Ryan
fuente