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.
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:
¿Deben registrarse los cambios realizados en el software y no tener relación con el titular de los derechos de autor del sistema?
¿El nombre del software derivado no debería ser el mismo que el nombre del software del titular de los derechos de autor?
¿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.
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í:
TÉRMINOS Y CONDICIONES DE USO, REPRODUCCIÓN Y DISTRIBUCIÓN
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.
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.
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.
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
(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.
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.
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.
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.
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.
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
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: