/home/lucio.albenga.es

De Software, Licencias, Morales y Éticas

De cuando en cuando ocurre que se genera un debate sobre temas de licencias de software libre y open source. En este tipo de debates siempre suelen haber acérrimos defensores del software libre que defienden la GPL y la AGPL a ultranza y acérrimos detractores del software libre y, más concretamente, de Richard Stallman y de la Free Software Foundation, que defienden a ultranza el open source y el que se utilicen licencias más permisivas como la MIT o las BSD.

En general cuando se habla de open source, una parte limita la cuestión estrictamente a lo técnico: desarrollo colaborativo, mejor calidad del producto al ser desarrollado por más gente, mayor seguridad al haber más ojos para revisarlo, etc., y otros se centran más en lo económico que principalmente es que no tienen que pagar por el software. Sin embargo cuando se habla de software libre, inevitablemente se habla de conceptos de caracter más humanista: de ética y de moral, de lo que es justo para la gente y de lo que no lo es, del bien de la mayoría por decirlo de algún modo.

Licencias más o menos libres

Dentro del mundillo open source el argumento clásico en contra de la GPL y de la AGPLv3 es que dichas licencias, al imponer determinadas restricciones, no son realmente libres mientras que las licencias más permisivas si que lo son. En pocas palabras, la queja es que las licencias GPL y, sobre todo, la AGPLv3 no permiten que alguien coja un programa libre y pueda hacer una versión cerrada del mismo.

El otro argumento bastante típico, al hilo de las "restricciones" de estas licencias, es el de que si pones tu proyecto bajo la GPLv3 o la AGPLv3 no lo va a usar nadie debido a dichas restricciones así que para qué quieres hacer algo que nadie va a usar. Este argumento es un despropósito ya que mucha gente usa software bajo estas licencias a diario, con mucha probabilidad incluso los que hacen este tipo de comentarios absurdos.

Para Stallman, la Free Software Foundation y el movimiento del software libre, cuando se habla de libertad, se habla de la libertad de los usuarios, entendiendo como usuario a alguien que utiliza un programa y/o el código fuente de un programa. Así que la libertad que se defiende es principalmente la libertad de los individuos. Por lo tanto la GPLv3 y la AGPLv3 procuran dar una serie de derechos al mismo tiempo que procuran eliminar la posibilidad de que alguien pueda restringir estos derechos.

Ese es el motivo de que estas licencias contengan cláusulas que "obligan" a entregarle a los usuarios el código fuente de los programas que utilizan, para que puedan estudiarlo y cambiarlo, y además se les permite redistribuir a su vez los programas con o sin cambios, de forma gratuita o cobrando por ello, con la obligación de hacerlo bajo la misma licencia. Por otro lado las licencias más permisivas no incluyen estas cláusulas "restrictivas" de obligar a usar la misma licencia por lo que en la práctica permiten que alguien pueda quitarle a los usuarios los derechos de los que él se está beneficiando.

Tanto la GPL como la AGPL dan estos derechos cuando se distribuye el programa, esto es, se le entrega al usuario una copia del mismo. La principal diferencia entre la GPLv3 y la AGPLv3 es lo que se entiende como distribución de un programa. Según la GPLv3, la distribución se produce cuando se le da al usuario el programa para que lo ejecute en su dispositivo, ya sea mediante una descarga online de un archivo o conjunto de archivos, ya sea mediante la distribución en un soporte físico: diskette, cinta de datos, pendrive, cdrom, etc. Como se suele decir, quién hizo la ley hizo la trampa y determinados actores encontraron un modo de aprovecharse del software libre, de lucrarse con él y de no dar nada a cambio precisamente buscando la forma de invalidar la distribución del softwmare según la definición de la GPL. Así nació el Software como Servicio, más conocido por las siglas SaaS (Software as a Service en inglés).

Los que ofrecen software como servicio, según los términos de la GPL, no lo "distribuyen" por lo tanto no tienen la obligación de darle a sus usarios el código fuente de la versión modificada. La AGPLv3 viene a resolver este vacío legal añadiendo en la cláusula 13 lo siguiente:

…if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version…

que se traduce como "…si modifica el Programa, su versión modificada debe ofrecer de manera visible a todos los usuarios que interactúen con él de forma remota a través de una red informática (si su versión admite dicha interacción), la oportunidad de recibir el Fuente Correspondiente…". Esta cláusula hace que sea prácticamente imposible ofrecer el software sin darle al usuario una copia del código fuente del mismo.

¿Quién se beneficia de qué?

Teniendo en cuenta todo lo anterior, es bastante fácil darse cuenta de que un programa bajo una licencia open source más permisiva beneficia principalmente a empresas de cierta envergadura que tienen los medios para explotar este software ya sea vendiéndolo como servicio, ya sea haciéndole algunos cambios y revendiéndolos de forma cerrada. Los casos típicos son, como no, las empresas conocidas como big tech. Apple cogió software licenciado de forma permisiva bajo BSD, lo modificó y lo revendió de forma cerrada dentro de Mac OS X e iOS. Microsoft y Amazon con sus plataformas de computación en la nube son un ejemplo de cómo lucrarse con software licenciado bajo GPL sin tener que dar nada a cambio.

En lo referente al argumento de para qué haces algo si nadie va a usarlo, creo que ese "nadie" hace referencia principalmente a este tipo de empresas ya que mismamente Google prohíbe a sus ingenieros el uso de cualquier código licenciado bajo la AGPLv31, aunque con esta licencia si solamente "venden el servicio", sin realizar ningún tipo de cambio, con enlazar al código fuente del proyecto original tienen más que suficiente para cumplir.

Entre los perjudicados hay muchos casos dónde escoger. Algunos ejemplos famosos son el caso de los paquetes de javascript colors y faker2 (licenciados bajo la licencia MIT), el caso de Log4j3 (licenciado bajo Apache APL 2.0) y los cambios de licencias de Redis4 (originalmente licenciado bajo BSD 3-clause license), MongoDB5 (originalmente licenciado bajo AGPLv3) y ElasticSearch6 (originalmente licenciado bajo Apache APL 2.0) que además fueron muy criticados por dichos cambios de licencias.

Pero sea como sea el software tiene que ser libre u open source, ¿no?

Viendo la cantidad de críticas realizadas por parte de miembros de la comunidad open source a Redis, MongoDB, ElasticSearch e incluso al desarrollador de colors y faker, Marak Squires, cualquiera podría pensar que la única cosa en la que parecen estar prácticamente todos deacuerdo es que sea como sea el software tiene que ser libre u open source. Sin embargo los hechos parecen indicar que, como todo en esta vida, depende.

Si eres un actor pequeño como un desarrollador independiente, un pequeño equipo de desarrollo o una empresa que no sea extremadamente grande, importa y mucho el que tu software no sea privativo. Por el contrario se le da mucha menos importancia al tema cuando el software privativo resulta ser el sistema operativo MacOS de un MacBook, portátiles bastante utilizados entre lo desarrolladores de la comunidad open source, o si sirve para que funcionen adecuadamente las tarjetas gráficas de nVidia y los chipsets WiFi de Qualcomm en los sistemas con kernel Linux.

Claro que esto no debería de extrañar a nadie ya que un número importante de los que van dando lecciones de ética y moral, y aconsejan sobre licencias de software al resto, lo hacen mientras van de camino al banco a ingresar su cheque de RedHat (IBM), Google, Meta, o Microsoft, por mencionar a algunos. En este panorama tenemos casos para todos los gustos, desde líderes de la comunidad open source que entran en barrena porque alguien intenta hacer ingeniería inversa para hacer una versión libre de un programa privativo7, hasta el buque insignia de las empresas open source que directamente coge todo el software libre que quiere y lo convierte, de facto, en un producto de software privativo8.

Conclusión

El tiempo y la experiencia me han enseñado que se pueden hacer y usar programas de software libre y open source con fines abusivos de igual manera que también he visto desarrolladores individuales y pequeños equipos de desarrollo hacer programas privativos que les proporcionan unos ingresos dignos sin explotar ni extorsionar a nadie, por lo tanto opino que cada cual puede hacer con su tiempo y su dinero lo que considere siempre y cuando no dañe a nadie.

A mi me parece bien que alguien haga software libre bajo la licencia que sea, aunque yo siempre recomiende la AGPLv3, porque quiere contribuir de forma altruista a la sociedad y/o ganarse los garbanzos con ello, y también me parece bien que otros quieran ganarse la vida honradamente haciendo software privativo y venderlo. Lo que no me parece bien son las personas que actúan de mala fe, que dicen una cosa mientras están haciendo la contraria, que pretenden dar una apariencia de compromiso con la sociedad cuando en realidad manipulan las cosas para que las corporaciones que firman sus cheques obtengan pingües beneficios, engañando y explotando a todos los demás.

Lo malo no está en las licencias ni en los programas. Lo malo no está en si haces software libre, open source o privativo. Lo malo reside en la falta de criterio y de honestidad. Lo malo está en los egos y ambiciones enfermizas de las personas.