La definición de software libre estipula que un programa es libre si otorga a los usuarios la libertad de ejecutar el programa para cualquier propósito, estudiar y modificar el código fuente, y redistribuir copias sin restricciones. Para ser considerado software libre, un programa debe conceder estas libertades de manera adecuada y no imponer restricciones injustificadas.