Cómo elegir una licencia de código abierto para el marco RAD en GitHub

En este artículo hablaremos un poco sobre los derechos de autor, pero principalmente sobre cómo elegir una licencia gratuita para el marco RAD. IONDV. Estructura y para productos de código abierto basados ​​en él. Le informaremos sobre la licencia de permiso. Apache 2.0, sobre qué nos llevó a ello y qué decisiones enfrentamos en el proceso.

El proceso de elección de una licencia requiere bastante mano de obra y debe abordarse ya con una buena lectura, y si no es un feliz propietario de una educación jurídica, se abre ante usted un campo inexplorado de información sobre varias licencias gratuitas. Lo principal que hay que hacer es elaborar una serie de criterios limitantes. A través del proceso de discusión y reflexión, usted y su equipo podrán comprender qué desea permitir a los usuarios de su producto y qué prohibir. Cuando ya tenga una determinada descripción en sus manos, debe superponerla a las licencias existentes y seleccionar aquella en la que coincida la mayor cantidad de puntos. Suena simple, por supuesto, pero en realidad, generalmente, incluso después de la discusión, quedan preguntas.

Cómo elegir una licencia de código abierto para el marco RAD en GitHub

Primero, un enlace a eligelicencia.com, un sitio útil que utilizamos ampliamente. Preste especial atención a tabla de comparación licencias según 13 criterios principales. Que el inglés y la paciencia os acompañen.

La agonía de la elección

Comencemos con las características generales de las licencias para software libre. El software de código abierto implica una licencia exclusivamente gratuita, que no limita la distribución comercial y no comercial según el modelo. Núcleo abierto. En consecuencia, poner software en la red bajo una licencia gratuita no puede limitar completamente su transferencia, distribución y venta por parte de terceros, y solo es necesario estar mentalmente preparado para ello.

Una licencia gratuita otorga al usuario el derecho de participar en la ingeniería inversa del software o cambiarlo de otras formas disponibles. La mayoría de las licencias no permiten cambiar el nombre del producto ni realizar ninguna manipulación con él, cambiando los derechos del autor y/o propietario del sistema.

Las principales preguntas que nos interesaban sobre las licencias gratuitas eran:

  1. ¿Deben registrarse los cambios realizados en el software y no tener relación con el titular de los derechos de autor del sistema?
  2. ¿El nombre del software derivado no debería ser el mismo que el nombre del software del titular de los derechos de autor?
  3. ¿Es posible cambiar la licencia de cualquier versión nueva a otra, incluida una propietaria?

Después de observar detenidamente la lista de las licencias más comunes, seleccionamos varias que consideramos con más detalle. Licencias potenciales para IONDV. Estructura fueron: GNU GPLv3, Apache 2.0, MIT y MPL. MIT Casi inmediatamente excluida, esta es una licencia permisiva sin copyleft, que permite el uso, modificación y distribución del código de casi cualquier forma, pero no estábamos contentos con esta opción, todavía queríamos que la licencia regulara la relación entre los derechos de autor. titular y el usuario. La mayoría de los proyectos más pequeños en GitHub se publican bajo la licencia MIT o sus diversas variaciones. La licencia en sí es muy corta y la única prohibición es indicar la autoría del creador del software.

Lo siguiente fue la licencia. MPL 2.0. Es cierto que no llegamos a ello de inmediato, pero después de estudiarlo con más detalle, rápidamente lo descartamos, ya que el principal inconveniente es que la licencia no se aplica a todo el proyecto, sino a archivos individuales. Además, si el usuario cambia el archivo, no puede cambiar la licencia. De hecho, no importa cuán diligentemente cambies un proyecto de código abierto, nunca podrás monetizarlo gracias a dicha licencia. Por cierto, esto no concierne al titular de los derechos de autor.

Un problema similar persiste con la licencia. GNU GPLv3. Requiere que cualquier archivo permanezca debajo de él. La GNU GPL es una licencia copyleft que requiere que los trabajos derivados sean de código abierto y permanezcan bajo la misma licencia. Es decir: al reescribir dos líneas de código, se verá obligado a confirmar los cambios y, durante su uso o distribución posterior, guardar el código bajo GNU GPL. En este caso, este es un factor limitante para el usuario de nuestro proyecto, y no para nosotros. Pero está prohibido cambiar la GPL a cualquier otra licencia, incluso dentro de las versiones GPL. Por ejemplo, si cambias LGPL (un complemento de la GPL) a la GPL, entonces no habrá forma de volver a la LGPL. Y este punto fue decisivo para votar en contra.

En general, nuestra elección inicialmente se inclinó hacia GPL3 Precisamente por la distribución del código modificado bajo la misma licencia. Pensamos que de esta manera podríamos proteger nuestro producto, pero vimos menos riesgos en Apache 2.0. Según la Free Software Foundation, GPLv3 es compatible con la licencia Apache v2.0, lo que significa que siempre es posible cambiar la licencia de la licencia Apache v2.0 a la GPL v3.0.

Apache 2.0

Apache 2.0 — una licencia permisiva equilibrada con énfasis en los derechos de autor. Aquí están las respuestas que dio a las preguntas que nos interesaban. ¿Deben registrarse los cambios realizados en el software y no tener relación con el titular de los derechos de autor del sistema? Sí, todos los cambios deben documentarse y no somos responsables del código original ni del modificado. El archivo con los cambios debe estar adjunto al código en el que realizaste estos cambios. ¿El nombre del software derivado no debería ser el mismo que el nombre del software del titular de los derechos de autor? Sí, el software derivado debe publicarse con un nombre diferente y con una marca comercial diferente, pero con una indicación del titular de los derechos de autor. ¿Es posible cambiar la licencia de cualquier versión nueva a otra, incluida una propietaria? Sí, se puede lanzar bajo diferentes licencias, Apache 2.0 no limita el uso de licencias comerciales y no comerciales.

Además, al lanzar nuevos productos basados ​​en código fuente abierto para Apache 2.0 o productos con funcionalidad adicional, no es necesario utilizar la misma licencia. A continuación puedes ver una imagen con los términos y restricciones de la licencia Apache 2.0.

Cómo elegir una licencia de código abierto para el marco RAD en GitHub

La licencia impone el requisito de preservar y mencionar los derechos de autor y la licencia bajo la cual se publica el software. Disponibilidad obligatoria sobre derechos de autor con el nombre del titular de los derechos de autor y una licencia protege los derechos del autor original del software, ya que incluso si se le cambia el nombre, se regala o se vende bajo una licencia diferente, la marca del autor permanecerá. También puedes usar el archivo para esto. AVISO y adjuntarlo al código fuente o a la documentación del proyecto.

Lanzamos todos nuestros productos a disposición pública en GitHub bajo la licencia Apache 2.0, excepto IONDV. Archivo de guerra, cuyo código fuente fue publicado bajo la licencia GPLv3 en GitHub en abril de este año por el Centro de Tecnologías Sociales del Lejano Oriente. Por el momento, además de la estructura y módulos publicado приложения realizado en el marco. En el hub ya hablamos Sistema de gestión de proyectos y acerca Registro de comunicaciones.

Aquellos. detalles sobre el marco

IONDV. Framework es un marco de código abierto basado en node.js para crear aplicaciones web de alto nivel basadas en metadatos, que no requiere habilidades serias de programación.

La base de la funcionalidad de la aplicación es el registro de datos: el módulo de Registro. Este es un módulo clave diseñado directamente para trabajar con datos basados ​​en estructuras de metadatos, incluso para la gestión de proyectos, programas, eventos, etc. El proyecto también utiliza un módulo de portal para mostrar plantillas de datos arbitrarias: implementa el registro frontal del archivo.

MongoDb se utiliza para el DBMS: almacena la configuración de la aplicación, los metadatos y los datos en sí.

¿Cómo aplicar una licencia a su proyecto?

Agregar un archivo LICENCIA con el texto de la licencia en el repositorio de tu proyecto y listo, un proyecto protegido por Apache 2.0. Debes indicar el titular de los derechos de autor, eso es todo. aviso de copyright. Esto se puede hacer en el código fuente o en un archivo. AVISO (un archivo de texto que enumera todas las bibliotecas con licencia Apache junto con los nombres de sus creadores). Coloque el archivo en el código fuente o en la documentación distribuida junto con el trabajo. Para nosotros se ve así:

Copyright © 2018 ION DV LLC.
Con licencia de Apache License, versión 2.0

Texto de licencia de Apache 2.0

Licencia Apache
Versión 2.0, enero de 2004
http://www.apache.org/licenses/

TÉRMINOS Y CONDICIONES DE USO, REPRODUCCIÓN Y DISTRIBUCIÓN

  1. Definiciones.

    "Licencia" significará los términos y condiciones de uso, reproducción,
    y distribución según se define en las Secciones 1 a 9 de este documento.

    "Licenciante" significará el propietario de los derechos de autor o la entidad autorizada por
    el propietario de los derechos de autor que otorga la licencia.

    "Persona Jurídica" significará la unión de la entidad actuante y todas
    otras entidades que controlan, están controladas por o están bajo control común
    control con esa entidad. A los efectos de esta definición,
    "control" significa (i) el poder, directo o indirecto, de causar la
    dirección o gestión de dicha entidad, ya sea por contrato o
    de lo contrario, o (ii) propiedad del cincuenta por ciento (50%) o más de la
    acciones en circulación, o (iii) titularidad real de dicha entidad.

    “Usted” (o “Su”) significará una persona física o jurídica
    ejercer los permisos otorgados por esta Licencia.

    Formulario "fuente" significará el formulario preferido para realizar modificaciones,
    que incluye, entre otros, el código fuente del software, la documentación
    archivos fuente y de configuración.

    Forma "objeto" significará cualquier forma resultante de una manipulación mecánica.
    transformación o traducción de una forma de origen, incluyendo pero
    no limitado a código objeto compilado, documentación generada,
    y conversiones a otros tipos de medios.

    "Obra" significará la obra de autoría, ya sea en la Fuente o
    Formulario de objeto, disponible bajo la Licencia, según lo indicado por un
    aviso de derechos de autor que se incluye o se adjunta a la obra
    (Se proporciona un ejemplo en el Apéndice a continuación).

    "Obras Derivadas" significará cualquier trabajo, ya sea en Fuente u Objeto
    forma, que se basa en (o se deriva de) el Trabajo y para el cual el
    revisiones editoriales, anotaciones, elaboraciones u otras modificaciones
    representan, en su conjunto, una obra original de autoría. Para los fines
    de esta Licencia, los Trabajos Derivados no incluirán los trabajos que permanezcan
    separable de, o simplemente enlazar (o enlazar por nombre) a las interfaces de,
    la Obra y Obras Derivadas de la misma.

    "Contribución" significará cualquier trabajo de autoría, incluyendo
    la versión original de la Obra y cualquier modificación o adición
    a esa Obra o Obras derivadas de la misma, que es intencionalmente
    enviado al Licenciante para su inclusión en el Trabajo por el propietario de los derechos de autor
    o por una persona física o jurídica autorizada a presentar en nombre de
    el propietario de los derechos de autor. A los efectos de esta definición, "presentado"
    significa cualquier forma de comunicación electrónica, verbal o escrita enviada
    al Licenciante o sus representantes, incluidos, entre otros,
    comunicación en listas de correo electrónico, sistemas de control de código fuente,
    y sistemas de seguimiento de problemas que son administrados por, o en nombre de, el
    Licenciante con el propósito de discutir y mejorar el Trabajo, pero
    excluyendo la comunicación que está marcada de manera llamativa o de otra manera
    designado por escrito por el propietario de los derechos de autor como "No es una contribución".

    "Colaborador" significará el Licenciante y cualquier persona física o jurídica.
    en nombre del cual el Licenciante ha recibido una Contribución y
    posteriormente incorporado dentro de la Obra.

  2. Concesión de Licencia de Copyright. Sujeto a los términos y condiciones de
    esta Licencia, cada Colaborador le otorga a Usted una licencia perpetua,
    en todo el mundo, no exclusivo, sin cargo, libre de regalías, irrevocable
    licencia de derechos de autor para reproducir, preparar trabajos derivados de,
    mostrar públicamente, realizar públicamente, sublicenciar y distribuir el
    Trabajo y trabajos derivados en forma de fuente u objeto.

  3. Concesión de Licencia de Patente. Sujeto a los términos y condiciones de
    esta Licencia, cada Colaborador le otorga a Usted una licencia perpetua,
    en todo el mundo, no exclusivo, sin cargo, libre de regalías, irrevocable
    (excepto como se indica en esta sección) licencia de patente para hacer, haber hecho,
    usar, ofrecer para vender, vender, importar y transferir el Trabajo,
    donde dicha licencia se aplica solo a las reclamaciones de patente que se pueden licenciar
    por dicho Colaborador que sean necesariamente infringidos por su
    Contribución (es) sola o por combinación de su (s) Contribución (es)
    con el Trabajo al que se sometieron dichas Contribuciones. Si tu
    iniciar un litigio de patentes contra cualquier entidad (incluida una
    reclamación cruzada o reconvención en una demanda) alegando que el Trabajo
    o una Contribución incorporada dentro del Trabajo constituye una
    o infracción de patente contributiva, luego cualquier licencia de patente
    otorgada a Usted bajo esta Licencia para ese Trabajo terminará
    a partir de la fecha en que se presente dicho litigio.

  4. Redistribución. Puede reproducir y distribuir copias del
    Obra o Obras Derivadas de la misma en cualquier medio, con o sin
    modificaciones, y en forma de Fuente u Objeto, siempre que usted
    cumplen las siguientes condiciones:

    (a) Debe dar a cualquier otro destinatario del Trabajo o
    Obras derivadas una copia de esta licencia; y

    (b) Debe hacer que cualquier archivo modificado lleve avisos destacados
    indicando que usted cambió los archivos; y

    © Debe conservar, en la forma Fuente de cualquier Obra Derivada
    que distribuye, todos los derechos de autor, patentes, marcas comerciales y
    avisos de atribución del formulario Fuente del Trabajo,
    excluyendo aquellos avisos que no pertenecen a ninguna parte de
    las Obras Derivadas; y

    (d) Si la Obra incluye un archivo de texto “AVISO” como parte de ella
    distribución, entonces cualquier obra derivada que distribuya debe
    incluir una copia legible de los avisos de atribución contenidos
    dentro de dicho archivo de AVISO, excluyendo aquellos avisos que no
    pertenezcan a cualquier parte de las Obras Derivadas, en al menos una
    de los siguientes lugares: dentro de un archivo de texto AVISO distribuido
    como parte de los trabajos derivados; dentro del formulario Fuente o
    documentación, si se proporciona junto con los trabajos derivados; o,
    dentro de una pantalla generada por los trabajos derivados, si y
    dondequiera que aparezcan normalmente dichos avisos de terceros. Los contenidos
    del archivo AVISO tienen únicamente fines informativos y
    no modifique la Licencia. Puede agregar su propia atribución
    avisos dentro de los trabajos derivados que distribuye, junto con
    o como un apéndice al texto del AVISO del Trabajo, siempre que
    que dichos avisos de atribución adicionales no se pueden interpretar
    como modificar la Licencia.

    Puede agregar su propia declaración de derechos de autor a sus modificaciones y
    puede proporcionar términos y condiciones de licencia adicionales o diferentes
    para el uso, reproducción o distribución de sus modificaciones, o
    para cualquier obra derivada en su conjunto, siempre que su uso,
    reproducción y distribución de la Obra cumple con
    las condiciones establecidas en esta Licencia.

  5. Presentación de Contribuciones. A menos que usted indique explícitamente lo contrario,
    cualquier Contribución enviada intencionalmente para su inclusión en el Trabajo
    por Usted al Licenciante estará bajo los términos y condiciones de
    esta Licencia, sin términos o condiciones adicionales.
    No obstante lo anterior, nada en este documento reemplazará o modificará
    los términos de cualquier acuerdo de licencia por separado que pueda haber ejecutado
    con el Licenciante con respecto a dichas Contribuciones.

  6. Marcas registradas. Esta licencia no otorga permiso para utilizar el comercio
    nombres, marcas comerciales, marcas de servicio o nombres de productos del Licenciante,
    salvo que sea necesario para un uso razonable y habitual en la descripción del
    origen de la Obra y reproducir el contenido del archivo AVISO.

  7. Renuncia de garantía. A menos que lo exija la ley aplicable o
    acordado por escrito, el Licenciante proporciona el Trabajo (y cada
    El Colaborador proporciona sus Contribuciones) “TAL CUAL”,
    SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sea expresa o
    implícito, incluyendo, sin limitación, cualquier garantía o condición
    de TÍTULO, NO INFRACCIÓN, COMERCIABILIDAD o APTITUD PARA UN
    PROPÓSITO PARTICULAR. Usted es el único responsable de determinar la
    idoneidad de usar o redistribuir el Trabajo y asumir cualquier
    riesgos asociados con el ejercicio de los permisos bajo esta Licencia.

  8. Limitación de responsabilidad. En ningún caso y bajo ninguna teoría jurídica,
    ya sea por agravio (incluida la negligencia), contrato o de otro modo,
    a menos que sea requerido por la ley aplicable (como deliberada y groseramente
    actos negligentes) o acordados por escrito, cualquier Colaborador será
    responsable ante Usted por daños, incluidos los directos, indirectos, especiales,
    daños incidentales o consecuentes de cualquier carácter que surjan como
    resultado de esta Licencia o por el uso o la imposibilidad de usar el
    Trabajo (incluidos, entre otros, daños por pérdida de buena voluntad,
    paro laboral, falla o mal funcionamiento de la computadora, o todos y cada uno
    otros daños o pérdidas comerciales), incluso si dicho Contribuyente
    ha sido advertido de la posibilidad de tales daños.

  9. Aceptación de garantía o responsabilidad adicional. Mientras redistribuimos
    la Obra o las Obras derivadas de la misma, puede optar por ofrecer,
    y cobrar una tarifa por aceptación de soporte, garantía, indemnización,
    u otras obligaciones de responsabilidad y / o derechos consistentes con este
    Licencia. Sin embargo, al aceptar tales obligaciones, solo puede actuar
    en su propio nombre y bajo su exclusiva responsabilidad, no en nombre
    de cualquier otro Colaborador, y solo si acepta indemnizar,
    defender y eximir a cada Colaborador de cualquier responsabilidad
    incurrido por, o reclamaciones formuladas contra, dicho Contribuidor por razón
    de su aceptación de dicha garantía o responsabilidad adicional.

    FIN DE LOS TÉRMINOS Y CONDICIONES

    APÉNDICE: Cómo aplicar la licencia Apache a su trabajo.

    Para aplicar la licencia Apache a su trabajo, adjunte lo siguiente
    aviso repetitivo, con los campos entre corchetes "[]"
    reemplazado con su propia información de identificación. (No incluya
    los corchetes!) El texto debe incluirse en el
    sintaxis de comentarios para el formato de archivo. También recomendamos que un
    El nombre del archivo o clase y la descripción del propósito se incluirán en el
    misma “página impresa” que el aviso de derechos de autor para facilitar
    identificación dentro de archivos de terceros.

    Copyright [yyyy] [nombre del propietario de los derechos de autor]

    Licenciado bajo la Licencia Apache, Versión 2.0 (la “Licencia”);
    no puede utilizar este archivo, excepto en cumplimiento con la Licencia.
    Puede obtener una copia de la licencia en

    http://www.apache.org/licenses/LICENSE-2.0

    A menos que sea requerido por la ley aplicable o acordado por escrito, software
    distribuido bajo la Licencia se distribuye "TAL CUAL",
    SIN GARANTÍAS O CONDICIONES DE NINGÚN TIPO, ya sea expresa o implícita.
    Consulte la Licencia para el idioma específico que rige los permisos y
    Limitaciones bajo la Licencia.

Licencia = contrato

Una licencia libre, aunque es gratuita, no permite permisividad y ya hemos puesto ejemplos de restricciones. Elige una licencia teniendo en cuenta tanto tus intereses como los del usuario, porque el software de código abierto está diseñado específicamente para él. El usuario del proyecto debe percibir la licencia como una especie de acuerdo entre él y el titular de los derechos de autor, por lo que antes de realizar cualquier acción sobre el código fuente, estudie detenidamente las restricciones que le impone la licencia del proyecto.

Esperamos haber arrojado algo de luz sobre el tema de las licencias y, a pesar de la complejidad del tema, no debería convertirse en un obstáculo en su camino hacia el Código Abierto. Desarrolla tu proyecto y no te olvides de los derechos, los tuyos y los de los demás.

Enlaces de interés

Finalmente, algunos recursos útiles que nos ayudaron a la hora de buscar información sobre licencias existentes y seleccionar la más adecuada para nuestros propósitos:

Fuente: habr.com

Añadir un comentario