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

En este artículo hablaremos un poco sobre los derechos de autor, pero principalmente sobre la elección de una licencia gratuita para el marco IADV RAD . Marco y para productos de código abierto basados ​​en él. Hablaremos sobre la licencia de licencia Apache 2.0 , qué nos llevó a ella y qué soluciones encontramos en el proceso.


El proceso de elegir una licencia lleva bastante tiempo y debe abordarse con bastante atención, y si no es un feliz propietario de un título en derecho, verá un campo de información intacto sobre una variedad de licencias gratuitas. Lo principal que debe hacerse es elaborar una serie de criterios limitantes. En el proceso de discusión y reflexión, usted y el 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 imponerla en las licencias existentes y seleccionar la que coincida con más puntos. Suena, por supuesto, simple, pero en realidad, generalmente incluso después de la discusión, las preguntas permanecen.



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


Harina de elección


Comencemos con las características comunes de las licencias de software libre . El software de código abierto implica una licencia exclusivamente gratuita, que no limita la distribución comercial y no comercial bajo el modelo Open Core . En consecuencia, poner el software bajo una licencia gratuita en la red no puede limitar por completo su transferencia, distribución y venta por parte de terceros, y solo necesita estar mentalmente preparado para esto.


Una licencia gratuita le da al usuario el derecho de participar en el desarrollo inverso del software o cambiarlo de otras maneras disponibles. La mayoría de las licencias no le permiten cambiar el nombre de un producto ni realizar ninguna manipulación con él, lo que cambia los derechos del autor y / o propietario del sistema.


Las principales preguntas que nos interesaron sobre las licencias gratuitas fueron:


  1. Los cambios realizados en el software deben ser corregidos y no tener nada que ver con el titular de los derechos de autor del sistema.
  2. ¿Debe el nombre del software derivado coincidir con 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 la propiedad?

Después de mirar cuidadosamente la lista de las licencias más comunes, seleccionamos algunas que se consideraron con más detalle. Posibles licencias para IONDV. Los marcos fueron: GNU GPLv3, Apache 2.0, MIT y MPL. El MIT se descartó casi de inmediato, es una licencia permisiva sin copyleft que permite el uso, la modificación y la distribución del código casi de cualquier manera, pero no nos gustó esta opción, aún queríamos que la licencia regulara la relación entre el titular de los derechos de autor y el usuario. La mayoría de los proyectos no más grandes en GitHub se presentan bajo la licencia MIT o sus diversas variaciones. La licencia en sí es muy corta y las prohibiciones son solo una indicación de la autoría del creador del software.


El siguiente fue MPL 2.0 . No lo confesamos de inmediato, pero después de estudiarlo con más detalle, lo eliminamos rápidamente, 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 modifica el archivo, no puede cambiar la licencia. De hecho, no importa cuán diligentemente cambie el proyecto de código abierto, nunca podrá monetizarlo debido a dicha licencia. Por cierto, esto no se aplica 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 códigos fuente de los trabajos derivados estén abiertos y permanezcan bajo la misma licencia. Es decir: después de reescribir dos líneas de código, se verá obligado a confirmar sus cambios y guardar el código bajo la GNU GPL con uso o distribución futuros. En este caso, este es el 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 de la GPL. Por ejemplo, si cambia la LGPL (complemento sobre la GPL) a la GPL, entonces no habrá forma de volver a la LGPL. Y este tema fue decisivo en la votación en contra.


En general, nuestra elección se inclinó inicialmente a GPL3 precisamente debido a la distribución de código modificado bajo la misma licencia. Pensamos que de esta manera podríamos asegurar nuestro producto, pero vimos menos riesgos en Apache 2.0. De acuerdo con la Free Software Foundation, GPLv3 es compatible con Apache License v2.0. Es decir, siempre es posible cambiar la licencia de Apache License v2.0 a GPL v3.0.


Apache 2.0


Apache 2.0 es una licencia de licencia equilibrada con un enfoque en los derechos de autor. Aquí están las respuestas que dio a nuestras preguntas. ¿Los cambios realizados en el software deben corregirse y no tener nada que ver con el titular de los derechos de autor del sistema? Sí, todos los cambios deben documentarse y no somos responsables del código fuente ni del cambio. El archivo con los cambios debe aplicarse al código en el que realizó estos cambios. ¿Debe el nombre del software derivado coincidir con el nombre del software del titular de los derechos de autor? Sí, el software derivado debe aparecer con un nombre diferente y con una marca comercial diferente, pero con el titular de los derechos de autor. ¿Es posible cambiar la licencia de cualquier versión nueva a otra, incluida la propiedad? Sí, se puede lanzar bajo diferentes licencias, Apache 2.0 no limita el uso de ninguna licencia comercial y no comercial.


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



La licencia requiere la preservación y mención de los derechos de autor y la licencia bajo la cual se emite el software. La presencia obligatoria de un aviso de derechos de autor con el nombre del titular de los derechos de autor y la licencia protegen los derechos del autor original del software, ya que incluso si se renombra, se regala o se vende con una licencia diferente, la marca del autor permanecerá. Para esto, también puede usar el archivo AVISO y adjuntarlo al código fuente o a la documentación del proyecto.


Lanzamos todos nuestros productos bajo la licencia Apache 2.0, excepto IONDV , en GitHub . Archivo de guerra , cuyo código fuente fue publicado en abril de este año bajo la licencia GPLv3 en GitHub por el Far Eastern Center for Social Technologies. Por el momento, además del marco en sí y sus módulos , se publican las aplicaciones publicadas en el marco. En un habr ya hablamos sobre el Sistema de Gestión de Proyectos y sobre el Registro de Comunicación .


Tech. detalles sobre el marco

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


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 específicamente para trabajar con datos basados ​​en estructuras de metadatos, incluidos aquellos para administrar proyectos, programas, eventos, etc. El proyecto también utiliza un módulo de portal para mostrar plantillas de datos arbitrarias: implementa el frente del registro de archivos de archivo.


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


¿Cómo aplicar una licencia a su proyecto?


Agregue el archivo de LICENCIA con el texto de la licencia al repositorio de su proyecto y voilà, un proyecto protegido por Apache 2.0. Debe especificar el titular de los derechos de autor, este es un aviso de copyright . Puede hacerlo en el código fuente o en el archivo AVISO (un archivo de texto que enumera todas las bibliotecas con licencia de Apache junto con los nombres de sus creadores). El archivo debe colocarse en el código fuente o en la documentación distribuida con el trabajo. Se ve así para nosotros:


Copyright © 2018 LLC "ION DV".
Licenciado bajo la licencia Apache, versión 2.0

Texto de licencia de Apache 2.0

Licencia de 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 como se define en las Secciones 1 a 9 de este documento.


    "Licenciante" se refiere al propietario de los derechos de autor o entidad autorizada por
    el propietario de los derechos de autor que otorga la Licencia.


    "Entidad legal" significará la unión de la entidad actuante y todos
    otras entidades que controlan, son controladas o están en común
    control con esa entidad. A los fines de esta definición,
    "control" significa (i) el poder, directo o indirecto, para 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 del
    acciones en circulación, o (iii) titularidad de dicha entidad.


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


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


    La forma de "objeto" significará cualquier forma resultante de la mecánica
    transformación o traducción de un formulario fuente, que incluye pero
    no limitado a código objeto compilado, documentación generada,
    y conversiones a otros tipos de medios.


    "Trabajo" significará el trabajo de autoría, ya sea en Fuente o
    Formulario de objeto, disponible bajo la Licencia, como lo indica un
    aviso de copyright incluido o adjunto a la obra
    (se proporciona un ejemplo en el apéndice a continuación).


    "Trabajos derivados" significará cualquier trabajo, ya sea en Fuente u Objeto
    forma, que se basa en (o deriva de) el Trabajo y para el cual
    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 trabajos que permanezcan
    separable de, o simplemente enlace (o enlace por nombre) a las interfaces de,
    El trabajo y los trabajos derivados, por lo tanto.


    "Contribución" significará cualquier trabajo de autoría, incluyendo
    La versión original de la Obra y cualquier modificación o adición.
    a ese trabajo o trabajos derivados, por lo tanto, eso 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 gestionados por, o en nombre de,
    Licenciante con el propósito de discutir y mejorar el Trabajo, pero
    excluyendo la comunicación que esté marcadamente marcada o de otra manera
    designado por escrito por el propietario de los derechos de autor como "No es una contribución".


    "Colaborador" significa el Licenciante y cualquier persona física o jurídica.
    en nombre de quién ha recibido una Contribución el Licenciante y
    posteriormente incorporado dentro del Trabajo.


  2. Concesión de licencia de copyright. Sujeto a los términos y condiciones de
    esta Licencia, cada Colaborador por la presente le otorga un perpetuo,
    mundial, no exclusivo, sin cargo, libre de regalías, irrevocable
    licencia de copyright para reproducir, preparar trabajos derivados de,
    mostrar públicamente, realizar públicamente, sublicenciar y distribuir el
    Trabajo y tales 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 por la presente le otorga un perpetuo,
    mundial, 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 vender, vender, importar y transferir el Trabajo,
    donde dicha licencia se aplica solo a aquellas solicitudes de patente con licencia
    por dicho Colaborador que necesariamente son infringidos por su
    Contribuciones solo o en combinación de sus Contribuciones
    con el trabajo al que se enviaron tales contribuciones. Si tu
    instituir litigios de patentes contra cualquier entidad (incluida una
    reclamación cruzada o contrademanda en una demanda) alegando que el Trabajo
    o una Contribución incorporada dentro del Trabajo constituye directa
    o infracción de patente contributiva, entonces cualquier licencia de patente
    otorgado a Usted bajo esta Licencia para que el Trabajo terminará
    a partir de la fecha en que se presenta dicho litigio.


  4. Redistribución Puede reproducir y distribuir copias de
    Trabajo o trabajos derivados, por lo tanto, en cualquier medio, con o sin
    modificaciones, y en forma de Fuente u Objeto, siempre que Usted
    cumplir las siguientes condiciones:


    (a) Debe entregar a cualquier otro destinatario del Trabajo o
    Derivado trabaja una copia de esta licencia; y


    (b) Debe hacer que los archivos modificados lleven avisos destacados
    declarando que ha cambiado los archivos; y


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


    (d) Si el Trabajo incluye un archivo de texto "AVISO" como parte de su
    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
    pertenecer 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 dichos avisos de terceros. Los contenidos
    del archivo AVISO son solo para fines informativos y
    No modifique la licencia. Puede agregar su propia atribución
    avisos dentro de obras derivadas que distribuye, junto con
    o como una adición al texto de AVISO del Trabajo, siempre que
    que dichos avisos de atribución adicionales no pueden interpretarse
    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 uso, reproducción o distribución de sus modificaciones, o
    para tales trabajos derivados en su conjunto, siempre que su uso,
    la 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 de lo descrito sustituirá o modificará
    los términos de cualquier acuerdo de licencia por separado que pueda haber ejecutado
    con el Licenciante con respecto a tales Contribuciones.


  6. Marcas registradas Esta licencia no otorga permiso para usar el comercio
    nombres, marcas comerciales, marcas de servicio o nombres de productos del Licenciante,
    excepto según sea necesario para un uso razonable y habitual al describir el
    origen del Trabajo y reproducción del contenido del archivo AVISO.


  7. Descargo de responsabilidad de la 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 O CONDICIONES DE NINGÚN TIPO, ya sea expreso o
    implícito, incluidas, entre otras, cualquier garantía o condición
    de TÍTULO, NO INFRACCIÓN, COMERCIABILIDAD O APTITUD PARA UN
    PROPÓSITO EN PARTICULAR. Usted es el único responsable de determinar el
    conveniencia de usar o redistribuir el Trabajo y asumir cualquier
    riesgos asociados con su ejercicio de permisos bajo esta Licencia.


  8. Limitación de responsabilidad. En ningún caso y bajo ninguna teoría legal,
    ya sea en agravio (incluyendo negligencia), contrato o de otra manera,
    a menos que lo exija la ley aplicable (como deliberada y groseramente
    actos negligentes) o acordado por escrito, cualquier contribuyente 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 fuera del uso o incapacidad para usar el
    Trabajo (incluidos, entre otros, daños por pérdida de buena voluntad,
    paro laboral, falla de la computadora o mal funcionamiento, o cualquiera
    otros daños o pérdidas comerciales), incluso si dicho Colaborador
    ha sido advertido de la posibilidad de tales daños.


  9. Aceptando Garantía o Responsabilidad Adicional. Mientras se redistribuye
    el trabajo o los trabajos derivados del mismo, puede optar por ofrecer,
    y cobrar una tarifa por la aceptación del soporte, la garantía, la indemnización,
    u otras obligaciones de responsabilidad y / o derechos consistentes con esto
    Licencia. Sin embargo, al aceptar tales obligaciones, solo puede actuar
    en su propio nombre y bajo su exclusiva responsabilidad, no en nombre de
    de cualquier otro colaborador, y solo si acepta indemnizar,
    defender y eximir de responsabilidad a cada colaborador
    incurrido por, o reclamaciones afirmadas en contra, de dicho Colaborador por razón
    de su aceptación de dicha garantía o responsabilidad adicional.


    FIN DE TÉRMINOS Y CONDICIONES


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


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


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


    Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia");
    no puede usar 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 lo exija la ley aplicable o se acuerde por escrito, el 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 ver los permisos de idioma específicos y
    limitaciones bajo la Licencia.



Licencia = contrato


Una licencia gratuita, aunque gratuita, no permite la permisividad y ya hemos dado ejemplos de restricciones. Elija una licencia teniendo en cuenta tanto sus intereses como el 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 tomar cualquier medida sobre el código fuente, estudie detenidamente las restricciones impuestas por la licencia del proyecto.


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


Enlaces utiles


Finalmente, algunos recursos útiles que nos ayudaron a encontrar información sobre las licencias existentes y seleccionar las más adecuadas para nuestros propósitos:


Source: https://habr.com/ru/post/459732/


All Articles