GNU Guix es un gestor de paquetes que se usa en GuixSD, una distribución completamente libre según los baremos de la Free Software Foundation.
Las compilaciones reproducibles es un concepto que introdujo Debian y por el que lleva trabajando un tiempo. Tal y como reza el título de la entrada que han publicado sobre este tema la gente de GNU Guix, su visión de las compilaciones reproducibles es que son un medio técnico para conseguir un fin.
Ese fin sería el de garantizar la autonomía del usuario y la seguridad. Y esto se conseguiría con la reproducibilidad de la compilación de los paquetes. De esa forma, el usuario tiene la posibilidad de verificar que los paquetes precompilados (con sólo binarios) se corresponden con la compilación del código fuente del que supuestamente proceden.
GNU Guix, como buen proyecto que sigue las directrices de la FSF, persigue mejorar la libertad y la autonomía de los usuarios de ordenadores y con esa máxima están desarrollando GuixSD. Todos los paquetes de Guix se compilan desde las fuentes incluyendo las cosas como los firmwares donde, según dicen, existe una tendencia a usar binarios precompilados.
Por otra parte, el hecho de que todo el software proceda de código fuente conocido garantiza que todo el sistema sea modificable por el usuario, algo que apoya una de las libertades que defiende la FSF.
La forma en que Guix está ofreciendo sus paquetes es compilándolos en un entorno completamente aislado. De esa forma se maximiza la reproducibilidad. Aunque no todos los parámetros se pueden tener bajo control (archivos accesibles, el nombre del host, variables de entorno, etc), estos no son relevantes a la hora de compilar.
Lo único que debe variar entre las máquinas donde se compiló el código y las máquinas donde se ejecuta es la versión del kernel y el hardware disponible. Estas discrepancias hacen que se arrojen binarios ligeramente diferentes en función del sistema en el que se compila.
El trabajo que se está realizando consiste precisamente en tener en cuenta esas pequeñas variaciones para conseguir que la compilación en distintas configuraciones sea verificable.
Si quieres saber más detalles del trabajo relativos a las compilaciones reproducibles que están haciendo en GNU Guix, puedes visitar esta entrada.