La libertad para usar un programa significa la libertad para cualquier persona u organización de utilizarlo en cualquier tipo de sistema informático, para cualquier clase de trabajo, y sin tener obligación de comunicárselo a su creador o a alguna otra entidad específica. La libertad de distribuir copias debe incluir, tanto las formas binarias o ejecutables del programa, como su código fuente, sean versiones modificadas o sin modificar (distribuir programas de modo ejecutable es necesario para que los sistemas operativos libres sean fáciles de instalar). Está bien si no hay manera de producir un binario o ejecutable de un programa concreto (porque algunos lenguajes no tienen esta capacidad), pero se debe tener la libertad de distribuir estos formatos si se encuentra o desarrolla la manera de crearlos. Para que las libertades de hacer modificaciones y de publicar versiones mejoradas tengan sentido, se debe tener acceso al código fuente del programa. Por lo tanto, la posibilidad de acceder al código fuente es una condición necesaria para la existencia del software libre. Para que estas libertades sean reales, deben ser irrevocables mientras no se haga nada incorrecto. Si el desarrollador del software tiene el poder de revocar la licencia aunque no se le haya dado motivos, el software no es libre.