Elegir la licencia de mi proyecto

licencia de software
Dic21Elegir la licencia bajo la que se va a distribuir tu proyecto es sin duda una decisión difícil... hoy te damos algunas ideas para que esto te resulte más sencillo.

Por :NO{legaltech}
// Son 1016 palabras. Esto se lee en, nah, 5 minutos, 4 segundos.

Sin duda esta es una de las preguntas que más nos hacéis: ¿qué licencia sería la adecuada para mi proyecto X? y siempre os respondemos los mismo: depende. Hoy trataremos de explicaros los pasos lógicos que tenéis que seguir a la hora de elegir la licencia que gobernará vuestro proyecto.

Lo primero que tenemos que hacer es diferenciar cuando vamos a contribuir a un proyecto de software libre u open source, pongamos el ejemplo de que encuestra un bug en el kernel de GNU/Linux y dedices arreglarlo y decirle a Linus "he encontrado esto y lo he arreglado, ¿me aceptas la pull?"...todos sabemos la respuesta :)

Pero si obviamos este ejemplo en donde probablemente no te acepten tu contribución, lo normal es que sí de verdad estás ayundado al proyecto te acepten la pull y su solución se incorpore al proyecto, en este caso, no tienes margen para decidir la licencia, básicamente porque quien inició y/o mantiene el proyecto ya habrá elegido una y tu simplemente al hacer la contribución aceptas que tu aportación se haga con esa licencia y en el 100% de los casos con esa contribución cederás el control sobre tu aportación.

En caso de que decidas iniciar tu propio proyecto, en el 99.999999% de los casos reutilizarás algo, es prácticamente imposible hacer algo desde cero, básicamente porque es poco eficiente y si algo hemos aprendido de vosotros durante este tiempo es que seguís a raja tabla la ley de "si ya lo ha hecho alguien para que lo voy a hacer yo"...no os creáis que los legulellos somos diferentes, todos tiramos de modelos o de asuntos ya resueltos para ahorrarnos trabajo.

Aquí nos encontramos en una situación parecida a la del ejemplo anterior, esas librerías que estáis reutilizando probablemente ya tendrán su propia licencia y para poder utilizarla y que vuestro pequeño Frankestein nazca sano necesitáis cumplir tus condiciones, por ello, es altamente recomendable que leáis y que sobretodo que entendáis lo que esas licencias imponen. Sabemos que es altamente tentador reutilizar aquello que sabemos que funciona y que todo el mundo está utilizando y que te ahorra muchas horas de trabajo, pero insistimos, puede que la licencia no te permita luego hacer lo que tenías pensado con tu proyecto y conseguir un unicornio.

Llegados a esta situación se mezclan consideraciones legales y filosóficas; quiero más a papá o a mamá. Puede que nos encontremos ante una situación en la que nosotros nos aprovechamos de las aportaciones de la comunidad y luego queremos que nuestro proyecto sea privativo y que nadie nos pueda copiar o puede que nos encontremos ante una situación en la que no nos importa o incluso consideramos beneficioso para nuestro proyecto que cualquiera pueda conseguir una copia del mismo y mejorarlo o incluso hacernos la competencia.

Esta decisión tenemos que tenerla clara antes de empezar a desarrollar porque esto determinará que determinadas licencias sean incompatibles con nuestra idea...así por ejemplo si tenemos en mente hacer nuestro proyecto privativo bajo ninguna circunstancia debemos reutilizar software licenciado por GPL porque esta licencia hace casi imposible poder conseguir privar el proyecto; decimos casi imposible porque la Free Software Fundation (FSF) si se lo explicas muy bien y logras convercerlos puede que hagan una excepción contigo y te dejen usar software licenciado con GPL para un proyecto privativo...pero esto es muy complicado. Si por el contrario eres un fiel seguidor de la concepción de software libre defendida por la FSF, sin duda tu idea se tiene que guiar por poner licenciar tu proyecto con la GPL.

Una vez que ya tenemos este problema solucionado el dilema se reducirá a cual elegir dentro del catálogo de aquellas que están disponibles...puede que incluso se te pase por la cabeza la idea de crear tu propia licencia y como decimos los gallegos cuando tomamos una decisión complicada: "fago a miña licencia y al carallo" ... esta expresión no tiene fácil traducción pero básicamente viene a ser algo así como jugártela todo a una carta y rezar para que todo salga bien.

Si se te ha encendido la bombilla a leer esto...te recomendamos que la apagues inmediatamente, crear tu propia licencia no es algo recomendable, de hecho, se incrementan exponencialmente las posibilidades de que se produzca alguan incompatibilidad con las que rigen las líneas de código que has reutilizado y que todo tu esfuerzo se vaya a la basura...lo que sí te recomendamos es que hagas una licencia de uso pero eso se escapa al tema de este post.

Una vez descartada la idea de crear tu licencia os recomendamos elegir entre alguna de las ampliamente conocidas y utilizadas, básicamente porque nos asegura una mayor posibilidad de combinación entre ella y las otras y porque las dudas que puedan surgir o sus problemas prácticos probablemente ya se hayan solucionado. Además de esta característica os recomendamos que utilicéis alguna licencia que esté bien escrita, sin ambiguedades y que sea entendible por el común de los mortales, dentro de estas podeis elegir entre aquellas que son mas sencillas (MIT, BSD) y aquellas otras que son más detallistas como por ejemplo la Apache, la Mozilla o la GPL.

Y finalmente no os olvidéis de respetar los requisitos formales de cada una de ellas, como por ejemplo incluir una copia de la misma y mantener los avisos de copyright (MIT, BSD); demoniar específicamente la carpeta en donde se encuentra en la manera que la propia licencia te dice (la GPL dice que la carpeta debe llamarse COPYING).

En resumen, os recomendamos:

  1. Pensar lo que queréis hacer con vuestro proyecto (privativo/FOSS).
  2. NO crear vuestra propia licencia.
  3. Elegir entre alguna de las licencias ampliamente utilizadas y conocidas.
  4. Cumplir con las formalidades que cada licencia imponga.

¡Feliz navidad a todos y Happy coding!

 

 

Photo by Paolo Nicolello on Unsplash 

 

 


Publicado el 21 de diciembre de 2018