En este artículo hablaremos un poco sobre derechos de autor, pero principalmente sobre la elección de una licencia libre para el marco RAD y para productos de código abierto basados en él. Hablaremos de la licencia permisiva Apache 2.0, de lo que nos llevó a ella y de las decisiones que enfrentamos en el proceso.
El proceso de elección de una licencia es bastante laborioso y debe abordarse con cierta preparación, y si no eres afortunado poseedor de un título en derecho, entonces se te abre un campo inexplorado de información sobre diversas licencias libres. Lo principal que hay que hacer es establecer una serie de criterios restrictivos. En el proceso de discusión y reflexión, tú y tu equipo podrán entender qué quieren permitir a los usuarios de su producto y qué desean prohibir. Una vez que tengas una descripción, es necesario superponerla a las licencias existentes y resaltar aquella donde más puntos coincidan. Suena, por supuesto, sencillo, pero en realidad, normalmente incluso después de la discusión, quedan preguntas.

Primero — un enlace a , un sitio útil que utilizamos activamente. Presta especial atención a la de licencias basada en 13 criterios principales. Que la suerte y la paciencia estén contigo.
Los tormentos de la elección
Comencemos con las características generales de las licencias para . El software libre implica una licencia completamente libre que no limita la distribución comercial y no comercial bajo el modelo . Por lo tanto, al publicar software bajo una licencia libre, no se puede restringir completamente su transferencia, distribución y venta por terceros, y esto debe ser solo una preparación moral.
Una licencia libre otorga al usuario el derecho de participar en la ingeniería inversa del software o modificarlo de otras maneras disponibles. La mayoría de las licencias no permiten renombrar el producto o realizar cualquier manipulación que altere los derechos del autor o del propietario del sistema.
Las principales preguntas que nos interesaban sobre las licencias libres eran:
- ¿Los cambios introducidos en el software deben ser registrados y no tienen relación con el titular de los derechos del sistema?
- ¿El nombre del software derivado no debe coincidir con el nombre del software del titular de los derechos?
- ¿Es posible cambiar la licencia para cualquier nueva versión a otra, incluida la propietaria?
Tras revisar cuidadosamente la lista de las licencias más comunes, seleccionamos algunas que examinamos más a fondo. Licencias potenciales para fueron: GNU GPLv3, Apache 2.0, MIT y MPL. MIT Prácticamente de inmediato descartamos, esta es una licencia permisiva no copyleft que permite el uso, modificación y distribución del código de prácticamente cualquier manera, y esa opción no nos convenía, ya que queríamos que la licencia regulara la relación entre el titular de los derechos y el usuario. La mayoría de los proyectos no tan grandes en GitHub están bajo la licencia MIT o sus diversas variaciones. La propia licencia es muy corta, y las únicas prohibiciones son la atribución al creador del software.
La siguiente fue la licencia MPL 2.0. Debo confesar que no llegamos a ella de inmediato, pero tras estudiarla con más detalle la excluimos rápidamente, ya que su principal desventaja es que la licencia se aplica no a todo el proyecto, sino a archivos individuales. Además, si un usuario modifica un archivo, no puede cambiar la licencia. De hecho, por más que trabajes en un proyecto de código abierto, no podrás monetizarlo debido a esta licencia. Esto, por cierto, no afecta al titular de los derechos.
Este problema persiste también con la licencia GNU GPLv3. Requiere que cualquier archivo permanezca bajo la misma. GNU GPL es una licencia copyleft que exige que el código fuente de las obras derivadas esté abierto y permanezca bajo esta misma licencia. Es decir: al reescribir dos líneas de código, estarás obligado a fijar tus cambios y, al utilizar o distribuir, mantener el código bajo GNU GPL. En este caso, es un factor restrictivo para el usuario de nuestro proyecto, y no para nosotros. Pero cambiar de GPL a cualquier otra licencia está prohibido, incluso dentro de las versiones de GPL. Por ejemplo, si cambias de LGPL (extensión sobre GPL) a GPL, ya no habrá un camino de regreso a LGPL. Y este punto fue decisivo en la votación en contra.
En general, nuestra elección inicialmente se inclinó hacia GPL3 esto es precisamente debido a la distribución de código modificado bajo la misma licencia. Pensamos que de este modo podríamos proteger nuestro producto, pero encontramos menos riesgos en la Apache 2.0. Según la Free Software Foundation, la GPLv3 es compatible con la Apache License v2.0, es decir, siempre existe la posibilidad de cambiar la licencia de Apache License v2.0 a GPL v3.0.
Apache 2.0
— una licencia permisiva equilibrada con un enfoque en los derechos de autor. Aquí están las respuestas que proporcionó a las preguntas que nos interesan. ¿Los cambios realizados en el software deben estar documentados y no tienen relación con el titular de los derechos del sistema? Sí, todos los cambios deben estar documentados y no somos responsables ni del código fuente ni de las modificaciones. Un archivo con los cambios debe adjuntarse al código en el que haya realizado estas modificaciones. ¿El nombre del software derivado no debe coincidir con el nombre del software del titular de los derechos? Sí, el software derivado debe salir bajo otro nombre y con otra marca registrada, pero indicando la autoría del titular de los derechos. ¿Se puede cambiar la licencia para cualquier nueva versión a otra, incluida la propietaria? Sí, se puede publicar bajo diferentes licencias, Apache 2.0 no restringe la aplicación de licencias comerciales y no comerciales.
Además, al lanzar nuevos productos basados en código abierto bajo la licencia Apache 2.0 o productos de funcionalidad adicional, no es obligatorio utilizar la misma licencia. A continuación, se puede ver una imagen con las condiciones y limitaciones de la licencia Apache 2.0.

La licencia exige la conservación y mención de los derechos de autor y la licencia bajo la cual se publica el software. Es obligatoria la existencia de copyright notice con el nombre del titular de los derechos y la licencia protege los derechos del autor original del software, ya que incluso si se renombra, se entrega o se vende bajo otra licencia, el signo del autor permanecerá. Para ello, también se puede utilizar un archivo NOTICE y adjuntarlo ya sea en el código fuente o en la documentación del proyecto.
Publicamos abiertamente en GitHub todos nuestros productos bajo la licencia Apache 2.0, excepto , cuyo código fuente fue publicado en abril de este año bajo la licencia GPLv3 en GitHub por el Centro del Lejano Oriente de Tecnologías Sociales. Hasta ahora, además del propio y su se publicaron realizados en el framework. Ya hemos hablado sobre esto en Habr. y sobre .
Detalles técnicos sobre el marco
IONDV. Framework – un marco de código abierto en node.js para la creación de aplicaciones web de alto nivel basadas en metadatos, que no requiere habilidades de programación avanzadas.
La base de la funcionalidad de la aplicación es el registro de datos — el módulo Registro. Este es el módulo clave, destinado específicamente a trabajar con datos basados en estructuras de metadatos, incluyendo la gestión de proyectos, programas, eventos, entre otros. También se utiliza un módulo de portal en el proyecto para mostrar plantillas de datos personalizadas – en él se ha desarrollado el front-end del registro de archivos archivados.
Para el SGBD se utiliza MongoDb — en ella se almacenan tanto la configuración de la aplicación, los metadatos como los propios datos.
¿Cómo aplicar la licencia a tu proyecto?
Añade el archivo LICENSE con el texto de la licencia en el repositorio de tu proyecto y voilà, el proyecto está protegido por Apache 2.0. Debes indicar el titular de derechos, que es copia de derechos. Esto se puede hacer en el código fuente o en el archivo NOTICE (archivo de texto que enumera todas las bibliotecas licenciadas bajo la licencia Apache junto con los nombres de sus creadores). El archivo debe colocarse en el código fuente o en la documentación que se distribuye junto con el trabajo. Esto se ve así:
Copyright © 2018 LLC «ION DV».
Licenciado bajo la Licencia Apache, Versión 2.0
Texto de la Licencia Apache 2.0
Licencia Apache
Versión 2.0, enero de 2004
TÉRMINOS Y CONDICIONES PARA EL USO, REPRODUCCIÓN Y DISTRIBUCIÓN
Definiciones.
«Licencia» significa los términos y condiciones para el uso, reproducción,
y distribución según lo definido por las Secciones 1 a 9 de este documento.«Licenciante» significa el propietario de los derechos de autor o entidad autorizada por
el propietario de los derechos de autor que otorga la Licencia.«Entidad Legal» significa la unión de la entidad que actúa y todas
las demás entidades que controlan, son controladas por, o están bajo el control común
de esa entidad. Para los propósitos de esta definición,
«control» significa (i) el poder, directo o indirecto, de causar la
dirección o gestión de tal entidad, ya sea por contrato o
de otro modo, o (ii) la posesión del cincuenta por ciento (50%) o más de las
acciones en circulación, o (iii) la propiedad beneficiosa de tal entidad.«Tú» (o «Tu») significa una persona o Entidad Legal
que ejerce las permissivas otorgadas por esta Licencia.La forma «Fuente» significa la forma preferida para realizar modificaciones,
incluyendo pero no limitándose al código fuente del software, documentación
fuente y archivos de configuración.La forma «Objeto» significa cualquier forma resultante de una transformación
mecánica o traducción de una forma Fuente, incluyendo pero
no limitándose a código objeto compilado, documentación generada,
y conversiones a otros tipos de medios.El «Trabajo» significa la obra de autoría, ya sea en forma Fuente o
Objeto, puesta a disposición bajo la Licencia, como se indica por una
noticia de copyright que se incluye en o se adjunta al trabajo
(se proporciona un ejemplo en el Apéndice a continuación).«Obras Derivadas» significa cualquier obra, ya sea en forma Fuente u Objeto
formulario, que se basa en (o se deriva de) la Obra y para la cual
revisiones editoriales, anotaciones, elaboraciones u otras modificaciones
representan, en su conjunto, una obra original de autoría. A los efectos
de esta Licencia, las Obras Derivadas no incluirán obras que permanezcan
separadas de, o simplemente enlacen (o vinculen por nombre) a las interfaces de,
la Obra y las Obras Derivadas de la misma.«Contribución» se refiere a cualquier obra de autoría, incluyendo
la versión original de la Obra y cualquier modificación o adición
a esa Obra o las Obras Derivadas de la misma, que es intencionadamente
enviada al Licenciante para su inclusión en la Obra por el propietario de los derechos de autor
o por un individuo o Entidad Legal autorizada para enviar en nombre de
el propietario de los derechos de autor. A los efectos de esta definición, «enviado»
significa cualquier forma de comunicación electrónica, verbal o escrita enviada
al Licenciante o sus representantes, incluyendo, pero no limitado a
comunicaciones en listas de correo electrónico, sistemas de control de código fuente,
y sistemas de seguimiento de problemas que son gestionados por, o en nombre de, el
Licenciante con el propósito de discutir y mejorar la Obra, pero
excluyendo la comunicación que esté marcada de manera conspicua o de otro modo
designada por escrito por el propietario de los derechos de autor como «No es una Contribución.»«Colaborador» se refiere al Licenciante y a cualquier individuo o Entidad Legal
en nombre de quien se ha recibido una Contribución por parte del Licenciante y
posteriormente incorporado dentro de la Obra.Concesión de Licencia de Derechos de Autor. Sujeto a los términos y condiciones de
esta Licencia, cada Colaborador por la presente otorga a Usted una licencia de derechos de autor
perpetua, mundial, no exclusiva, sin cargo, libre de regalías, irrevocable
para reproducir, preparar Obras Derivadas de,
mostrar públicamente, realizar públicamente, sublicenciar y distribuir la
Obra y dichas Obras Derivadas en forma de Código Fuente u Objeto.Concesión de Licencia de Patentes. Sujeto a los términos y condiciones de
esta Licencia, cada Colaborador por la presente otorga a Usted una licencia de derechos de autor
perpetua, mundial, no exclusiva, sin cargo, libre de regalías, irrevocable
(excepto lo indicado en esta sección) licencia de patentes para hacer, tener hechas,
usar, ofrecer para vender, vender, importar y transferir de otro modo la Obra,
donde dicha licencia se aplica solo a aquellas reivindicaciones de patentes licencibles
por tal Colaborador que sean infracciones necesarias por su
Contribución(s) sola o por combinación de su(s) Contribución(s)
con la Obra a la que dicha(s) Contribución(s) fue(en) enviada(s). Si Usted
inicia un litigio de patente contra cualquier entidad (incluyendo un
contrademanda en una demanda) alegando que la Obra
o una Contribución incorporada dentro de la Obra constituye una infracción
directa o contributiva de patente, entonces cualquier licencia de patente
otorgada a Usted bajo esta Licencia para esa Obra se dará por terminada
a partir de la fecha en que se presenta tal litigio.Redistribución. Usted puede reproducir y distribuir copias de la
Obra o las Obras Derivadas de la misma en cualquier medio, con o sin
modificaciones, y en forma de Código Fuente u Objeto, siempre que Usted
cumpla con las siguientes condiciones:(a) Debe dar a cualquier otro destinatario de la Obra o
Obras Derivadas una copia de esta Licencia; y(b) Debe hacer que cualquier archivo modificado lleve avisos prominentes
que indiquen que Usted cambió los archivos; y(c) Debe retener, en la forma de Código Fuente de cualquier Obra Derivada
que Usted distribuya, todos los avisos de derechos de autor, patentes, marcas comerciales y
de atribución de la forma de Código Fuente de la Obra,
excluyendo aquellos avisos que no se refieren a ninguna parte de
las Obras Derivadas; y(d) Si la Obra incluye un archivo de texto «NOTICE» como parte de su
distribución, entonces cualquier Obra Derivada que Usted distribuya debe
incluir una copia legible de los avisos de atribución contenidos
dentro de dicho archivo NOTICE, excluyendo aquellos avisos que no
se refieren a ninguna parte de las Obras Derivadas, en al menos uno
de los siguientes lugares: dentro de un archivo de texto NOTICE distribuido
como parte de las Obras Derivadas; dentro de la forma de Código Fuente o
documentación, si se proporciona junto con las Obras Derivadas; o,
dentro de una visualización generada por las Obras Derivadas, si y
donde sea que dichos avisos de terceros normalmente aparezcan. El contenido
del archivo NOTICE son solo con fines informativos y
no modifique la Licencia. Puede agregar su propia atribución
notificaciones dentro de las Obras Derivadas que distribuya, junto a
o como un apéndice al texto del NOTICE del Trabajo, siempre que
tales notificaciones adicionales de atribución no puedan interpretarse
como una modificación de 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 cualquiera de esas Obras Derivadas en su conjunto, siempre que su uso,
reproducción y distribución del Trabajo cumpla de otro modo con
las condiciones establecidas en esta Licencia.Presentación de Contribuciones. A menos que usted lo indique explícitamente,
cualquier Contribución enviada intencionalmente para 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 este documento reemplazará o modificará
los términos de cualquier acuerdo de licencia separado que haya firmado
con el Licenciante con respecto a dichas Contribuciones.Marcas Registradas. Esta Licencia no otorga permiso para usar los nombres comerciales,
marcas registradas, marcas de servicio o nombres de productos del Licenciante,
excepto según lo requerido para el uso razonable y habitual en la descripción del
origen del Trabajo y la reproducción del contenido del archivo NOTICE.Descargo de Responsabilidad de Garantía. A menos que lo exija la ley aplicable o
se acuerde por escrito, el Licenciante proporciona el Trabajo (y cada
Contribuyente proporciona sus Contribuciones) sobre una base «TAL CUAL»,
SIN GARANTÍAS O CONDICIONES DE NINGÚN TIPO, ya sean expresas o
implícitas, incluidas, sin limitación, cualquier garantía o condición
de TÍTULO, NO INFRACCIÓN, COMERCIALIZABILIDAD o ADECUACIÓN PARA UN
PROPÓSITO ESPECÍFICO. Usted es el único responsable de determinar la
idoneidad de usar o redistribuir el Trabajo y asumir cualquier
riesgo asociado con su ejercicio de permisos bajo esta Licencia.Limitación de Responsabilidad. En ningún caso y bajo ninguna teoría legal,
ya sea en responsabilidad (incluida negligencia), contrato u otra,
a menos que lo exija la ley aplicable (como actos deliberados y gravemente
negligentes) o se acuerde por escrito, ningún Contribuyente será
responsable ante usted por daños, incluidos daños directos, indirectos, especiales,
incidentales o consecuentes de cualquier tipo que surjan como un
resultado de esta Licencia o del uso o la incapacidad de usar el
Trabajo (incluidos, entre otros, daños por pérdida de buena voluntad,
parada de trabajo, fallas o mal funcionamiento informático, o cualquier y todos los
otros daños o pérdidas comerciales), incluso si dicho Contribuyente
ha sido advertido de la posibilidad de tales daños.Aceptación de Garantía o Responsabilidad Adicional. Al redistribuir
el Trabajo o Obras Derivadas de este, puede elegir ofrecer,
y cobrar una tarifa por, aceptación de soporte, garantía, indemnización,
u otras obligaciones de responsabilidad y/o derechos consistentes con esta
Licencia. Sin embargo, al aceptar tales obligaciones, usted solo puede actuar
en su propio nombre y bajo su propia responsabilidad, no en nombre
de ningún otro Contribuyente, y solo si acepta indemnizar,
defender y mantener a cada Contribuyente a salvo de cualquier responsabilidad
incurrida por, o reclamaciones presentadas contra, dicho Contribuyente por razón
de su aceptación de cualquier garantía o responsabilidad adicional.FIN DE TÉRMINOS Y CONDICIONES
APÉNDICE: Cómo aplicar la Licencia Apache a su trabajo.
Para aplicar la Licencia Apache a su trabajo, adjunte el siguiente
aviso estándar, con los campos encerrados por corchetes «[]»
reemplazados con su propia información identificativa. (No incluya
los corchetes). El texto debe estar encerrado en la sintaxis de comentario
apropiada para el formato del archivo. También recomendamos que un
nombre de archivo o clase y una descripción del propósito se incluyan en la
misma «página impresa» que el aviso de derechos de autor para una identificación más fácil
dentro de archivos de terceros.Derechos de autor [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 de la Licencia.
Puede obtener una copia de la Licencia enA menos que lo exija la ley aplicable o se acuerde por escrito, el software
distribuido bajo la Licencia se distribuye en una BASE «AS IS»,
SIN GARANTÍAS O CONDICIONES DE NINGÚN TIPO, ya sea expresa o implícita.
Consulte la Licencia para el lenguaje específico que rige los permisos y
las limitaciones bajo la Licencia.
Licencia = contrato
Es una licencia libre, aunque libre, no permite la anarquía y ya hemos dado ejemplos de restricciones. Elija la licencia considerando tanto sus intereses como los del usuario, porque el software abierto está dirigido a él. El usuario del proyecto debe ver la licencia como una especie de contrato entre él y el titular de los derechos, por lo tanto, antes de realizar cualquier acción sobre el código fuente, revise 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 de la cuestión, no debería ser un obstáculo en su camino hacia el Open Source. Desarrolle su proyecto y no olvide los derechos, los suyos y los de los demás.
Enlaces útiles
Por último, algunos recursos útiles que nos ayudaron a buscar información sobre las licencias existentes y a seleccionar la más adecuada para nuestros objetivos:
- Súper útil desde
Fuente: habr.com
