Cuando crea software que desea compartir, o utiliza un producto que desea adaptar, surgen preguntas sobre lo que es y lo que no es legal. Incluso los programas que tienen una licencia de código abierto no son gratuitos. Si no conoce los detalles de lo que permite la licencia, podría meterse en problemas legales. Conocer sus límites, o si los hay, le brinda la libertad de usar y compartir software con confianza.
Las licencias de código abierto siguen la definición de código abierto . Eso dice que el software o producto, su modelo, diseño y/o código fuente, se puede usar, modificar y/o compartir como el usuario quiera. En términos sencillos, el usuario puede personalizar el producto para satisfacer sus necesidades y luego compartir ese producto con otros.
Sin embargo, las condiciones de cómo compartirlo varían: las licencias de código abierto no son ilimitadas. Las estipulaciones incluyen conservar los nombres de los autores y redistribuir los derivados con la misma licencia. Además, si la licencia permite la modificación o redistribución del producto solo con fines no comerciales , no es de código abierto.
Una licencia de código abierto es un contrato legalmente vinculante entre el autor del software y el usuario. El software que se publica públicamente y está disponible de forma gratuita no es automáticamente de código abierto. La licencia lo hace oficialmente de código abierto. Una gran cantidad de software de código abierto es gratuito, pero eso no significa que ser libre sea un requisito o garantía del software de código abierto.
Dos tipos principales de licencias de código abierto: copyleft frente a permisivas
Copyleft y permisivo son las dos categorías principales de licencias de código abierto. Esos no son nombres de licencias de código abierto reales, pero son categorías en las que se incluyen licencias específicas.
Licencias de código abierto copyleft
Copyleft es un tipo de licencia de código abierto que requiere que el usuario aplique la misma licencia a su versión del producto. Eso significa que si el usuario modifica y comparte el software, debe mantener la licencia de código abierto.
Licencias permisivas de código abierto
Las licencias permisivas de código abierto son tan flexibles como parecen. No son licencias copyleft, por lo que no se requiere que el usuario mantenga su versión del producto de código abierto. Suelen tener pocas restricciones; los usuarios pueden crear trabajos derivados patentados sin tener que cumplir con muchas obligaciones.
Los tipos más comunes de licencias de código abierto
Hay muchos tipos diferentes de licencias de código abierto entre las que pueden elegir los autores y las empresas. Repasemos los más populares.
Licencia Apache
La Licencia Apache es una licencia de código abierto de Apache Software Foundation. Bajo la licencia, puede usar, modificar o distribuir cualquier producto con licencia de Apache.
Se han realizado dos cambios principales en la licencia de Apache. En 2000, se eliminó la cláusula de publicidad original. Ahora bien, si hay materiales publicitarios creados para un trabajo derivado, no es necesario que incluyan la atribución a la licencia de Apache, aunque la atribución debe permanecer en la documentación. En 2004, otra actualización de la licencia permitió derechos de patente.
Distribución de software de Berkeley (BSD)
Hay dos tipos de licencias BSD:
- Licencia BSD modificada (cláusula 3)
- Licencia BSD simplificada , también llamada Licencia FreeBSD (cláusula 2)
Cada licencia BSD otorga permiso para modificar y distribuir código de software, código fuente o binario. Sin embargo, debe conservar una copia de las condiciones, el aviso de derechos de autor y la exención de responsabilidad.
La licencia BSD original tenía cuatro cláusulas, incluidas cláusulas de publicidad y de no respaldo. La licencia modificada de 3 cláusulas no incluye la cláusula de publicidad. La licencia simplificada/libre de 2 cláusulas no tiene la cláusula de no respaldo.
Licencia común de desarrollo y distribución (CDDL)
La CDDL es una licencia de código abierto creada por Sun Microsystems (adquirida por Oracle). La CDDL actual es la versión 2, y es un giro en la Licencia Pública de Mozilla. También reemplazó la Licencia Pública de Sun, que vino con productos de Sun gratuitos y de código abierto hasta 2004.
Bajo la CDDL, puede reproducir y distribuir obras originales o derivadas de software con licencia. Sin embargo, no puede realizar cambios ni eliminar ningún aviso sobre derechos de autor, patentes o marcas comerciales. Adicionalmente, el usuario deberá conservar avisos o textos con atribución a colaboradores o desarrolladores.
Si distribuye el software en una forma ejecutable, es decir, una forma que no es el código fuente, debe hacer que el código fuente esté disponible. Puede liberar el formulario ejecutable bajo la CDDL o una licencia compatible con CDDL. Debe publicar el código fuente de sus contribuciones si cumplen con una o ambas de las siguientes pautas:
- Son adiciones, modificaciones o eliminaciones del software original.
- Son archivos nuevos que incluyen partes del producto original.
Cuando publica el código fuente, debe incluir una copia de la CDDL. Además, por cada modificación que realice, debe incluir un aviso en los archivos modificados de que usted es el modificador. Si realizó adiciones en archivos separados e independientes que no tienen nada del código original, no tiene que publicarlo con una CDDL.
Licencia pública de Eclipse (EPL)
La Licencia Pública de Eclipse es una licencia de código abierto con copyleft de la Fundación Eclipse. El objetivo de la EPL es proteger a los autores de meterse en problemas legales si una empresa utiliza su componente en un producto comercial. La licencia también ofrece una concesión de patente.
Si modifica un componente EPL y lo distribuye como código fuente, debe divulgar el código modificado. Si distribuye su producto en forma de código objeto, debe aclarar que entregará el código fuente a pedido. También hay que aclarar cómo solicitar el código fuente. Cuando redistribuye un programa que incluye parte de un producto con licencia EPL, debe incluir el texto completo de la licencia y los derechos de autor.
El EPL también dice que la interfaz o la interoperabilidad con un complemento no lo convierte automáticamente en un trabajo derivado. En pocas palabras, a menos que esté modificando parte del complemento, no es un trabajo derivado.
Licencia Pública General GNU (GPL)
La GPL es la licencia de código abierto más popular (los complementos y temas de WordPress deben tener esta licencia). Es una licencia copyleft, por lo que cualquier software que use cualquier componente GPL debe ser de código abierto, incluso si solo un pequeño porcentaje del código está en el código modificado.
El software se puede usar y modificar en cualquier lugar sin casi ninguna restricción, ya sea que lo esté usando de manera privada o comercial. Sin embargo, existen restricciones si distribuye fuera de su propia organización. En este caso, debe distribuir el código fuente completo, así como los mismos términos de licencia que el software original.
Si el nuevo producto contiene solo una parte del software GPL, ¿debe distribuir el código fuente completo? Tal vez. De acuerdo con GPL, todos los trabajos derivados deben obtener una licencia según los términos completos de la licencia. Sin embargo, si distribuye el software GPL junto con un sistema propietario y son dos trabajos separados, lo que significa que no comparten estructuras de datos y se ejecutan en procesos separados, entonces es posible que no tenga que publicar el código fuente de todo el software. .
Licencia pública general reducida de GNU (LGPL)
Según la LGPL , que es una versión más débil de la GPL, los productos con licencia pueden vincularse a aplicaciones propietarias. El código propietario aún puede seguir siendo propietario, dependiendo de si los programas están vinculados dinámica o estáticamente . Esta licencia a menudo acompaña al software libre, lo que permite que se incorpore al software libre o propietario. No es necesario que abra el código fuente de sus propias extensiones.
Licencia pública de Microsoft (MS-PL)
Ms -PL es una licencia de software libre y de código abierto de Microsoft, y acompaña a los propios proyectos de código abierto de Microsoft.
Los usuarios pueden crear y distribuir obras de software originales o derivadas, pero no pueden usar el nombre, el logotipo o la marca comercial del contribuyente. El Ms-PL requiere la retención de los avisos originales de atribución, derechos de autor, patentes y marcas registradas. Además, si el código no funciona en un trabajo derivado, el autor no es responsable; no hay garantías ni garantías con respecto al rendimiento del código.
Cuando distribuye un producto bajo Ms-PL, no está obligado a distribuir el código fuente, aunque puede hacerlo si lo desea. Si opta por distribuir el código fuente, o incluso una parte del código fuente, debe incluir una copia completa de la licencia Ms-PL.
Aquí es donde se vuelve más complicado: si distribuye cualquier parte del software en forma de código compilado o de objeto, la licencia que elija debe cumplir con el Ms-PL.
Código fuente frente a código objeto
Un programador escribe el código fuente. Es un documento (o archivo) basado en texto que está escrito en un lenguaje que es legible por humanos, y el archivo está en un lenguaje de programación. Sin embargo, las máquinas en realidad no pueden leer el código fuente tal como está escrito.
Para hacerlo legible por máquina, la máquina tiene que compilar el lenguaje del código fuente en código ejecutable por máquina, es decir, código objeto. El código objeto se escribe como dígitos binarios y el proceso de generación de código binario es «compilación». Si bien el código fuente no es específico del sistema, el código objeto sí lo es. El código fuente puede ser el mismo en diferentes sistemas, pero cada máquina puede compilarlo en un código objeto diferente.
Cuando se trata de otorgar licencias de código objeto con Ms-PL, esto es lo que necesita saber: puede establecer sus propios términos, pero no pueden otorgar a los destinatarios más derechos que la licencia Ms-PL. Sin embargo, pueden otorgar menos derechos.
Licencia del Instituto de Tecnología de Massachusetts (MIT)
La licencia MIT es una de las licencias de código abierto más flexibles que existen y otorga todos los derechos de usuario final que esperarías de una licencia de código abierto: copiar, distribuir, fusionar, modificar, etc. no incluye, en concreto, una cláusula de publicidad. Además, permite el nombre del propietario de los derechos de autor en el contenido promocional.
Puedes hacer prácticamente lo que tu corazón desee con un producto bajo esta licencia. Sin embargo, el año de copyright y la información del titular deben estar en la licencia de su derivado.
Licencia pública de Mozilla 2.0
La Licencia Pública de Mozilla 2.0 es una licencia con copyleft. Los colaboradores pueden compartir las modificaciones realizadas en el código. También pueden combinar código con código bajo otras licencias abiertas o propietarias.
Si desea utilizar el software MPL para cualquier propósito y distribuirlo dentro de su organización, no tiene que hacer nada especial. Si desea modificar el código fuente de MPL y distribuir su trabajo derivado fuera de su organización, debe:
- Indique a los destinatarios que el código fuente (incluido el código fuente para las modificaciones) está disponible para ellos de acuerdo con la MPL.
- Ofrecer subvenciones MPL a los destinatarios, lo que significa que tienen una licencia no exclusiva y libre de regalías para usar, modificar, exhibir, reproducir, distribuir, etc.
- Respete las restricciones sobre la eliminación o modificación de avisos en el código fuente. No puede eliminar ni cambiar los avisos de licencia sobre derechos de autor, patentes, garantías o responsabilidad.
Reflexiones finales sobre las licencias de código abierto
Elegir una licencia de código abierto para su producto o software no es tan sencillo como le gustaría que fuera. Si no le importa quién hace qué con su producto, puede optar por una de las licencias súper flexibles, como la licencia MIT. De lo contrario, querrá hablar con un profesional, ya sea un desarrollador experimentado o un abogado, para discutir lo que tiene, lo que quiere y qué licencia se adapta mejor. Sin embargo, conocer los conceptos básicos de antemano, particularmente la terminología y las licencias comunes que está obligado a cubrir, lo ayudará a comenzar con el pie derecho.
Consulte nuestro resumen de las 13 mejores aplicaciones de software de código abierto para profesionales de la web .