Casi todas las licencias de software de código abierto requieren (o al menos los abogados generalmente sugieren que requieren) que los usuarios incluyan la licencia completa en la raíz del proyecto que están protegiendo.
Un abogado con el que hablé sugiere que este es un legado de la era del CD, cuando era necesario que se incluyera una licencia completa en un caso de joyas.
Pero hoy, estamos viviendo en la era de las nubes. ¿Por qué no puedo, por ejemplo, simplemente alojar la licencia completa en mi sitio web e incluir el título + URL de esa licencia en el encabezado de mis archivos fuente?
Bonificación: si generalmente se acuerda que las licencias establecidas deben mantenerse intactas en la raíz, ¿por qué el OSI de FSF no ha aprobado una licencia a la que pueda referirse por URL y qué impide que alguien cree esa licencia?
fuente
Respuestas:
De las preguntas frecuentes de GPL (pero el consejo es aplicable a todas las licencias):
(énfasis mío)
En el momento en que el sitio que aloja su licencia deja de funcionar o cambia sus rutas de URL, las personas que tienen copias de su software ya no pueden verificar qué derechos pueden ejercer de forma segura. Suponga que incluso de alguna manera podría garantizar que esa URL exacta estará siempre en línea: la capacidad de los usuarios de verificar que su uso de su software sea legal aún depende de la capacidad de conectarse a esa URL en particular. Si bien este requisito puede no ser oneroso en su ciudad / país / planeta en particular, puede ser oneroso en otros lugares. No debe imponer este requisito, especialmente cuando la solución (incluido el texto completo de la licencia) es trivial.
Puede responder a esta queja diciendo: "¿Y qué? Si la URL se cae o no es accesible, un descriptor inequívoco como 'GNU GPL v3' debería ser suficiente. Las copias de texto completo de la GPL son abundantes; los usuarios pueden buscar la licencia ellos mismos ". Se me ocurren algunos problemas de inmediato:
Esto no se generaliza a los identificadores de licencia que son menos claros (me viene a la mente la frase "licencia BSD").
Esto no se generaliza bien a las licencias que son menos comunes o que se han personalizado (viene a la mente "GPL con excepciones de enlace": ¿qué excepciones de enlace?). ¿Qué tan común debe ser una licencia antes de que sea razonable esperar que un usuario la encuentre de manera confiable por su nombre?
Esto aún requiere que los usuarios tengan una conexión a Internet, lo cual puede no ser el caso, incluso si tenían una conexión en el momento en que obtuvieron el software. (Y es posible que no hayan tenido acceso a Internet cuando obtuvieron el software: "la edad de los CD" aún no ha terminado en muchas partes del mundo. Como un caso adicional, considere las poblaciones nacionales que tienen acceso generalizado a Internet pero censuran grandes partes de él). .) Una consecuencia del software libremente redistribuible es que un destinatario no puede recibir una copia de su software directamente de usted o a través de un canal de distribución que originalmente anticipó.
El comentario de MichaelT a continuación señala un argumento final contra los enlaces de licencia: podría permitirle cambiar la licencia de forma dinámica y retroactiva. Esto podría hacerse intencionalmente, pero también podría hacerse por accidente, si cambia la licencia entre las versiones del software, pero utiliza el mismo enlace de licencia para ambas versiones, lo que impide la existencia de su licencia anterior. Tal cambio agregaría dificultad para las personas que necesitan demostrar que obtuvieron su copia anterior con una licencia diferente a la versión actual.
Entonces, ¿por qué tengo que mantener la licencia en la raíz del proyecto?
No soy abogado, pero nunca he visto ningún argumento convincente de que usted no necesita tener licencias en la raíz del proyecto. Incluso la GPL, que especifica que la licencia debe acompañar a cada copia del trabajo, no menciona cómo debe acompañar el trabajo. (Esto puede deberse a que la GPL podría aplicarse en contextos que no son de software, donde la noción de "directorio raíz" no tiene sentido).
Mantener la licencia en el directorio raíz es probablemente una buena idea porque maximiza la probabilidad de que el usuario la vea y, por lo tanto, minimiza tanto la frustración del usuario como la posibilidad de quejas en su contra por intentar ocultar la licencia en algún directorio oscuro. Si tiene muchas licencias, podría tener más sentido colocarlas todas en su propia carpeta e incluir un archivo README obvio que contenga rutas de archivos para encontrar la licencia para cada componente.
Colocar su licencia en la raíz del directorio es una práctica útil también porque puede desambiguar las licencias de los módulos que tienen una licencia diferente a la del trabajo en su conjunto. Supongamos que mi proyecto FooProj usa el módulo independiente BarMod. FooProj podría tener licencia GPL, mientras que el módulo independiente podría tener licencia MIT. Cuando abro por primera vez FooProj, veo una copia de la GPL en la raíz y entiendo que el trabajo en su conjunto tiene licencia GPL. Cuando desciendo a la carpeta de BarMod, veo un nuevo archivo de licencia allí y entiendo que el contenido de esta carpeta tiene licencia MIT. Por supuesto, esto es solo una ayuda útil; siempre debe indicar la licencia de sus módulos explícitamente en un archivo README, NOTICE o similar.
En resumen, usar la raíz del archivo es una cuestión de conveniencia y claridad. No he visto ningún texto de licencia de código abierto legalmente vinculante que lo requiera, ni sé de ninguna razón por la cual sería legalmente requerido. Su licencia debe ser razonablemente fácil de descubrir para el destinatario; incluir la licencia en la raíz del proyecto es suficiente, pero no necesario, para satisfacer este criterio.
fuente
Existen licencias que lo permiten. Apache 2.0, por ejemplo. Apache 2.0 solo requiere que cada archivo fuente contenga un pequeño encabezado que apunte a la URL canónica de la Licencia Apache 2.0. No es necesario reproducir la licencia completa en el árbol de origen.
Desde la propia licencia de Apache 2.0:
fuente
4.(a) You must give any other recipients of the Work or Derivative Works a copy of this License;
No hay requisito de que deba estar en la raíz del proyecto. Es simplemente el lugar más común y, por lo tanto, el primer lugar donde las personas buscarán para encontrar la licencia. Para el caso, incluso si no fuera común, es probable que sea el primer lugar donde la gente busque. Dado que la licencia existe para informar, ocultar la información no tiene mucho sentido.
Si lo oculta detrás de una URL, no hay garantía absoluta de que esa URL siempre esté disponible. Si es un archivo en la raíz del proyecto, por definición, siempre estará disponible.
En resumen, este es el lugar más efectivo y fácil de usar para ponerlo.
fuente