Software libre

El software libre es una cuestión de la libertad de los usuarios de ejecutar, copiar, distribuir, estudiar, cambiar

y mejorar el software. Más precisamente, significa que los usuarios de programas tienen las cuatro libertades esenciales.

* La libertad de ejecutar el programa, para cualquier propósito (libertad 0).

* La libertad de estudiar cómo trabaja el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.

* La libertad de redistribuir copias para que pueda ayudar al prójimo (libertad 2).

* La libertad de distribuir copias de sus versiones modificadas a terceros (la 3ª libertad). Si lo hace, puede dar a toda la comunidad una oportunidad de beneficiarse de sus cambios. El acceso al código fuente es una condición necesaria para ello.

Un programa es software libre si los usuarios tienen todas esas libertades. Entonces, debería ser libre de redistribuir copias, tanto con o sin modificaciones, ya sea gratis o cobrando una tarifa por distribución, a cualquiera en cualquier parte. El ser libre de hacer estas cosas significa, entre otras cosas, que no tiene que pedir o pagar el permiso.

También debería tener la libertad de hacer modificaciones y usarlas en privado, en su propio trabajo u obra, sin siquiera mencionar que existen. Si publica sus cambios, no debería estar obligado a notificarlo a alguien en particular, o de alguna forma en particular.

La libertad de ejecutar el programa significa la libertad para cualquier tipo de persona u organización de usarlo en cualquier tipo de sistema de computación, para cualquier tipo de trabajo y propósito, sin estar obligado a comunicarlo a su programador, o alguna otra entidad específica. En esta libertad, el propósito de los usuarios es el que importa, no el propósito de los programadores. Como usuario es libre de ejecutar un programa para sus propósitos; y si lo distribuye a otra persona, también es libre para ejecutarlo para sus propósitos, pero usted no tiene derecho a imponerle sus propios propósitos.

La libertad de redistribuir copias debe incluir las formas binarias o ejecutables del programa, así como el código fuente; tanto para las versiones modificadas como para las no lo están.

(Distribuir programas en forma de ejecutables es necesario para que los sistemas operativos libres se puedan instalar fácilmente). Resulta aceptable si no existe un modo de producir un formato binario o ejecutable para un programa específico, dado que algunos lenguajes no incorporan esa característica, pero debe tener la libertad de redistribuir dichos formatos si encontrara o programara una forma de hacerlo.

La 1ª libertad incluye la libertad de usar su versión modificada en lugar de la original. Si el programa se entrega con un producto diseñado para ejecutar versiones modificadas de terceros, pero rechaza ejecutar las suyas, una práctica conocida como «tivoization» o «arranque seguro» (mediante listas negras); la 1ª libertad se convierte más en una ficción teórica que en una libertad práctica.

Esto no es suficiente. En otras palabras, estos binarios no son software libre, incluso si se compilaron desde un código fuente que es libre.

Una manera importante de modificar un programa es fusionando subrutinas y módulos libres disponibles. Si la licencia del programa dice que no puede fusionar un módulo existente con una debida licencia, así como si le requiere ser el titular de los derechos de autor de lo que agregue, entonces la licencia es demasiado restrictiva para calificarla como libre.

Para que estas libertades puedan ser reales, deben ser irrevocables siempre que no se cometa ninguna equivocación; si el programador del software tiene el poder de revocar la licencia, o de cambiar retroactivamente sus términos, sin que se haya equivocado para justificarlo, el software no es libre.

Sin embargo, ciertos tipos de reglas sobre la manera de distribuir software libre son aceptables, cuando no entran en conflicto con las libertades principales. Por ejemplo, el copyleft es la regla en base a la cual, cuando redistribuye el programa, no puede agregar restricciones para denegar a las demás personas las libertades principales. Esta regla no entra en conflicto con las libertades principales; más bien las protege.

Si una modificación constituye una mejora es un asunto subjetivo. Si sus modificaciones se limitan, en esencia, a los cambios que otra persona considera una mejora, eso no se trata de libertad.

En algunos casos las regulaciones de control de exportación y las sanciones comerciales pueden limitar sus libertades de distribuir copias de programas intencionalmente. Los desarrolladores de software no tienen el poder de eliminar o pasar por alto estas restricciones, pero lo que pueden y deben hacer es rechazar imponerlas como condiciones para el uso del programa. De este modo, las restricciones no afectarán a las actividades ni a las personas fuera de las jurisdicciones de dichos gobiernos. Por ende, las licencias de software libre no deben requerir la obediencia a ninguna regulación de exportaciones como condición de cualquiera de las libertades esenciales.

La mayoría de las licencias de software libre están basadas en el copyright, y existen límites en los tipos de requisitos que pueden ser impuestos a través del copyright. Si una licencia basada en el copyright respeta la libertad en las formas antes mencionadas, es poco probable tener otro tipo de problema que no hayamos anticipado (a pesar de que esto ocurre ocasionalmente). Sin embargo, algunas licencias de software libre están basadas en contratos, y los contratos pueden imponer un rango mucho más grande de restricciones posibles. Esto significa que existen muchas maneras posibles de que tal licencia pueda ser inaceptablemente restrictiva y que no sea libre.

Posiblemente no podamos enumerar todas las formas en las que eso puede pasar. Si una licencia basada en un contrato restringe al usuario de un modo que no puedan hacer las licencias basadas en el copyright, y que no está mencionado aquí como legítimo, tendremos que pensar sobre ello; y probablemente concluyamos que no es libre.

Finalmente, se debe tener en cuenta que los criterios, como los establecidos en esta definición de software libre, requieren pensar con cuidado su interpretación. Para decidir si una licencia de software específica es una licencia de software libre, la juzgamos en base a estos criterios para determinar si concuerda su espíritu, conjuntamente con la terminología precisa. Si una licencia incluye restricciones demasiado grandes, la rechazamos, incluso si no anticipamos la cuestión en este criterio. Algunas veces, los requisitos de una licencia muestran una cuestión que hace necesaria una reflexión más profunda, incluyendo la discusión con un abogado, antes que podamos decidir si el requisito es aceptable. Cuando llegamos a una conclusión sobre una nueva cuestión, solemos actualizar estos criterios para que resulte más fácil ver por qué ciertas licencias se califican o no.

## Libertades

De acuerdo con tal definición, el software es "libre" si garantiza las siguientes libertades

* Usar el programa, con cualquier propósito.
* Estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades.
* Distribuir copias del programa, con lo cual puedes ayudar a tu prójimo.
* Mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.

La primera y la tercera libertad requieren acceso al Código fuente porque estudiar y modificar software sin su código fuente es muy poco viable.