GPL
La licencia GPL se enfoca en proteger al usuario del software. Además, obliga a los desarrolladores ser transparentes y a respetar los mismos derechos que garantiza en obras derivadas.
- Ejecutar el software como quieran.
- Ver el código y modificarlo
- Distribuirlo libremente.
- Distribuir versiones modificadas.
- Es copyleft, o sea, exige que las obras derivadas respeten estos derechos (si alguien produce una versión modificada, está obligado a cumplir los requisitos de arriba con su propio software, o sea, si lo pescan vendiendo algo mejorado sin publicar su código, puede ser llevado a juicio).
La licencia GPL se mejoró a medida que evolucionó la tecnología a la GPL v2.
Luego, hubo un conflicto por patentes en el cual Microsoft fue el agresor. Había cosas que tenían licencia GPL pero, aún así (aunque se respeten los derechos de autor) usaban patentes de Microsoft (patentes son métodos o ideas para hacer algo, y se consideran por separado de las obras protegidas por el copyright).
TomTom es un fabricante de dispositivos GPS’s portátiles que usan el kernel de Linux como sistema operativo empotrado. En febrero de este año [2009] Microsoft inició una disputa por las patentes que cubren al sistema de archivos FAT, que es usado por TomTom a través del kernel de Linux.
Fuente: https://www.fayerwayer.com/2009/03/microsoft-y-tomtom-llegan-a-un-acuerdo-por-disputa-de-patentes/
El gigante informático Microsoft y su rival Novell han llegado a un acuerdo que permitirá que los productos de las dos compañías operen juntos. Además, también han pactado no imponer a los clientes los derechos sobre patentes que cada compañía tiene sobre sus respectivos productos. Estos acuerdos tendrán vigencia al menos hasta el año 2012.
Fuente: https://www.elperiodico.com/es/tecnologia/20061103/microsoft-novell-firman-acuerdo-abrir-5401222
La estrategia de Microsoft era asustar a las empresas que querían adoptar GNU/Linux, para que obligarlas a quedarse bajo su ecosistema (por miedo a un litigio). Algunas empresas firmaron un acuerdo para no sufrir una demanda a cambio de pagarle a Microsoft una suma (¡a pesar de que estaban usando software libre!), intentando dar tranquilidad a sus clientes.
Toda esta situación derivó en la creación de la GPL v3, que obliga a quien publica un software a conceder permiso para usar las patentes necesarias en caso de que el software lo necesite. Además, defiende contra la tivoización (que el software sea libre pero el hardware donde funciona nos exija una determinada firma para forzar que las versiones del software desarrolladas por otros no funcionen en el dispositivo, ya que el hardware las rechazaría por no tener la firma del fabricante, en efecto inutilizando el software de terceros).
Linus Torvalds consideró esta licencia exagerada, por querer resolver todos los problemas en el texto de una simple licencia. Además, no estaba de acuerdo con tener que preocuparse por el hardware. Así, el kernel de Linux no pasó a la GPL v3. De hecho, Android usa una versión del kernel de Linux tivoizada (para horror de Richard Stallman, quien lamentó que Linux no adoptara la GPL v3).
https://www.gnu.org/licenses/gpl-3.0.html
MIT y BSD
La primera parte parte es igual, pero BSD tiene una cláusula extra. Estas licencias son ideales para herramientas de desarrollo y son muy permisivas.
- El usuario tiene la obligación de compartir el texto de esta licencia en sus distribuciones, donde se reconoce la autoría y explícitamente dice lo que la licencia hace.
- El usuario no recibe ninguna garantía (no puede reclamar por ninguna razón en un tribunal, ya que esta licencia le niega el derecho a reclamar).
- Puede usar el software como desee, modificarlo y lo que sea.
- Las obras derivadas pueden tener cualquier licencia, incluso no ser libre.
La licencia BSD añade que no deben asociar el nombre del autor a los proyectos derivados sin su permiso.
https://opensource.org/license/BSD-3-Clause
Apache 2.0
Generalmente lo usan empresas grandes, donde otros usarían MIT y BSD.
- Básicamente lo que dice la MIT: lo usas bajo tu propio riesgo, poner la licencia al distribuirlo.
- Ayuda a reunir contribuciones hechas con distintas licencias.
- Protege contra los problemas legales de patentes y también de marcas.
https://www.apache.org/licenses/LICENSE-2.0
Creative Commons
No es lo que un desarrollador usaría más (veo estas licencias sobre todo en obras artísticas y literarias). Pero hay cierto beneficio:
- Las licencias CC permiten definir lo que el autor quiere de manera muy sencilla de entender.
- Las licencias CC habilitan a liberar obras para el dominio público (imposible de otra forma).
Para hacer un paralelo, veamos las opciones:
- En vez de CC-BY (sólo exigir mostrar el autor), usaría una MIT.
- En vez de CC-BY-SA (mostrar el autor y compartir igual las obras derivadas), usaría una GPL v3.
- CC-BY-ND (mostrar autor y sin obras derivadas), esto no tiene sentido en el mundo del software (queremos que aporten mejoras).
- CC-BY-NC (mostrar el autor y no comercial), esto tampoco es común, pero algunas empresas y organizaciones tienen software con una licencia sólo para uso personal o educativo que encerraría la idea. El software libre siempre permite el uso comercial. Lo que yo haría en ese caso, sería publicar el código en un repositorio personal (no podría en los que exigen que sea software libre), colocando mi licencia propietaria y diciendo que es sólo para uso personal. O lo distribuiría directamente a los usuarios finales, agregando una nota de que sólo es para uso personal y que se contacten si desean un uso comercial (o les prohibo ese uso).
- CC0 (dominio público, menciona al creador en la licencia por motivos legales, para establecer su autoría). Es el único camino que existe hoy para publicar bajo dominio público y el único caso en el que veo la necesidad de usar Creative Commons para el software, si es que quisiera usarla.
https://creativecommons.org/public-domain/cc0/
Resumen
Usa MIT o BSD para herramientas (como librerías, frameworks y motores), donde deseas permitir que lo que crean con tu software pueda tener otras licencias (por ejemplo, una típica licencia cerrada con copyright). Permites que usen tu software sin obligaciones de ninguna clase excepto poner la licencia al distribuir y no reclamarte nada. La BSD agrega que no pongan tu nombre como relacionado.
Usa la GPL v3 cuando quieras forzar a otros a liberar el software modificado bajo la misma licencia (como aplicaciones de uso doméstico: una suite de oficina, un reproductor de música, un juego). Si mejoran algo, es tuyo (de forma automática). Esto les impide tomar tu código y, de forma deshonesta, luego querer superarte y dejarte atrás. Al menos, tendrían que compartir el código creado para cumplir con la licencia. Ellos sí pueden vender el software (incluso si no desarrollan ni una sola línea).
Usa la típica licencia propietaria si no estás seguro. Puedes publicar tu software y decirles que es para uso personal donde lo compartas, si deseas eso. Puedes compartir el código fuente también allí, si lo deseas. Conservarías todos los derechos legales.
Aclaración 1: la obligación de compartir igual se refiere a software que integre el tuyo (no puede un programa de diseño con GPL exigir que las fotos retocadas sean libres).
Aclaración 2: las licencias de software libre permiten el uso comercial.
