Cómo se puede cerrar el código abierto
El sábado nos preguntábamos que significaba la decisión de Canonical de hacerse cargo del proyecto LXD y excluir como mantenedores a quienes no sean empleados de la empresa. Esa es una de las formas cómo se puede cerrar el código abierto, pero, no es la única.
Ya habíamos hablamos bastante en Linux Adictos de la movida de Red Hat (IBM) para restringir el acceso al código fuente de la distribución
De principios y finales
Una vieja máxima del marxismo (Linea Groucho) es «Estos son mis principios, pero si no les gusta tengo estos otros. Pero, también es posible respetar la letra y violar el espíritu.
Comencemos recordando cuáles son esos principios:
Las 4 libertades del software libre
- La libertad de ejecutar el programa como se desee, con cualquier propósito (libertad 0.
- La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que se desee (libertad 1). El acceso al código fuente es una condición necesaria.
- La libertad de redistribuir copias para ayudar a otros (libertad 2)
- La libertad de distribuir copias de sus versiones modificadas a terceros (libertad 3).
Los 10 criterios del código abierto
- Libre redistribución: Para ser considerada de código abierto una licencia no podrá restringir la venta o distribución gratuita ni exigir una regalía cuando se produzca, Esto se aplica tanto si el programa se distribuye en forma individual o como parte de un conjunto de programas.
- Disponibilidad del código fuente: El código fuente tiene que distribuirse con el programa o haber una forma bien publicitada y razonablemente accesible de conseguirlo. No debe ofuscarse de ninguna manera el código fuente ni cambiarlo por el código procesado por un compilador.
- Trabajos derivados: La licencia debe permitir la creación de programas derivados y que estos sean distribuidos bajo la misma licencia.
- Integridad del código fuente del autor: Una licencia puede limitar la libre distribución del código fuente con modificaciones con la condición de permitir en cambio la distribución de «archivos de parches» junto al código fuente que hagan posible modificar el programa en el momento de la compilación. También debe garantizar explícitamente la distribución de software creado a partir del código fuente modificado estableciendo si se desea que los trabajos derivados lleven un nombre o número de versión diferente del software original.
- No discriminar usuarios: No establecer discriminación entre personas o grupos de personas.
- No discriminar usos: La licencia no puede establecer en que actividades se usa el programa.
- Distribución de licencia: Todos los derechos establecidos en la licencia se aplican a todos los usuarios sin necesidad de un trámite adicional.
- La licencia no es específica de un producto: La licencia del programa no depende del contexto. Una parte de un programa se puede distribuir y aplicar en otro contexto bajo los mismos términos.
- La licencia no debe limitar a otros programas: Una licencia de código abierto no puede exigir que los demás programas distribuidos con ella sean de código abierto.
- Licencia tecnológicamente neutral: La licencia no debe obligar al uso de determinada tecnología.
Cómo se puede cerrar el código abierto
Cabe mencionar que en este post nos tomamos la licencia de usar software libre y código abierto como sinónimos. En ese sentido hablamos de «cerrar» como una forma de restringir el acceso al código fuente, la libertad de modificarlo o la capacidad de redistribuirlo.
Algunas formas de hacerlo son:
- Controlando el financiamiento: Desarrollar software es algo muy costoso y cuando el financiamiento depende de una empresa, esta determina el rumbo del proyecto, aunque nominalmente esté en manos de la comunidad. El caso más conocido es el de CentOS que dejó de ser compatible con la última versión de Red Hat para pasar a ser su banco de pruebas.
- Acoso y derribo de personas molestas: Desde muchos proyectos comunitarios se alentó hace un par de años un ataque contra Richard Stallman por supuestos comentarios políticamente incorrectos. Stallman es el principal obstáculo para el proceso que estamos describiendo.
- Falsa meritocracia: Muchas comunidades de código abierto se basan en un sistema de ascenso en base a lo valioso de las contribuciones. Sin embargo, los que valoran las contribuciones son los líderes de los proyectos. Una forma genial de sacarse de encima a los disidentes.
En teoría cualquiera de nosotros puede crear su propio proyecto de código abierto o una bifurcación de uno existente. Sin embargo, sin los recursos necesarios es difícil que prospere.