1 puntos por GN⁺ 2025-04-12 | 7 comentarios | Compartir por WhatsApp
  • Fedora está impulsando en Fedora 43 cambios para que el 99% de todos sus paquetes sean reproducibles
  • Ya alcanzó el 90% mediante mejoras en la infraestructura existente, y planea incentivar a los empaquetadores para que reconozcan y resuelvan los casos restantes como bugs
  • El objetivo es reforzar la seguridad y mejorar la calidad de los paquetes, y también está previsto introducir la herramienta de verificación independiente rebuilderd

Panorama general de las compilaciones reproducibles en software de código abierto

  • Las "compilaciones reproducibles" están ganando importancia para reforzar la seguridad del software de código abierto y verificar su integridad
  • Una compilación reproducible es aquella en la que cualquiera puede generar el mismo resultado usando el mismo código fuente, entorno de compilación y comandos de compilación
  • Debian lleva más de 10 años de ventaja en este campo, y actualmente incluso sus Live CD oficiales pueden producirse de forma reproducible
  • Fedora empezó a trabajar en compilaciones reproducibles más recientemente, pero está evaluando una propuesta para hacer reproducible el 99% de todos sus paquetes durante el ciclo de desarrollo de Fedora 43

Diferencias entre Fedora y Debian

  • Debian permite subir paquetes compilados localmente, lo que puede hacer que la confiabilidad sea menor
  • Fedora compila todos los paquetes de forma centralizada en una infraestructura fuertemente controlada
  • Fedora facilita el seguimiento de paquetes al incluir el código fuente e información de hash en un repositorio Git llamado dist-git

Definición propia de Fedora para compilaciones reproducibles

  • Fedora usa una definición distinta a la de Debian
    • Excluye la firma (signature) y parte de los metadatos, y se enfoca en el contenido real (payload) del archivo RPM
  • La razón es que el formato RPM y su método de firma incluyen información como la hora de compilación (BUILDTIME) y el host de compilación (BUILDHOST)
  • openSUSE resuelve esto configurando BUILDHOST como reproducible

Avances técnicos de Fedora hacia las compilaciones reproducibles

  • Desde Fedora 38 se aplicó un cambio que usa SOURCE_DATE_EPOCH para fijar la hora de modificación de los archivos
  • En Fedora 41 se introdujo una herramienta basada en Rust llamada add-determinism, que estandariza los metadatos de los archivos compilados
  • Debian usa una biblioteca en Perl llamada strip-nondeterminism, pero Fedora eligió una herramienta propia para evitar dependencias de Perl
  • Hasta ahora se ha logrado aproximadamente un 90% de reproducibilidad en los paquetes

Planes a futuro

  • El 9% restante se abordará incentivando a los empaquetadores a tratar los problemas de no reproducibilidad como bugs y corregirlos
  • Se ofrecerá la utilidad fedora-repro-build para probar localmente si una compilación de Koji es reproducible
  • Se planea operar públicamente un sistema de verificación independiente llamado rebuilderd, que analiza los metadatos de los paquetes y verifica la reproducibilidad mediante recompilaciones
  • rebuilderd puede generar reportes de diferencias mediante diffoscope

Guías de empaquetado y mejora de calidad

  • Las guías de empaquetado de Fedora se actualizarán a "debe compilarse de forma reproducible cuando sea posible"
  • Las compilaciones reproducibles contribuyen no solo a la seguridad, sino también a mejorar la calidad de los paquetes
    • Ejemplo: si se detecta una dependencia de hardware en un paquete independiente de la arquitectura, probablemente se trate de un bug

Casos de excepción no reproducibles

  • Haskell no es reproducible en compilaciones multihilo, y ya se está trabajando en una corrección
  • Go no es reproducible porque el archivo de depuración .gdb_index no es consistente, y no hay una solución
  • La firma de módulos del kernel de Linux usa claves temporales, y ya se propuso un parche relacionado

Retroalimentación de la comunidad

  • El equipo de infraestructura de Fedora planteó preguntas sobre la ubicación y el mantenimiento de rebuilderd
  • También se discutió si rebuilderd podría integrarse en Koji
  • También hay opiniones de que, para una verificación independiente, es preferible usar un sistema fuera de Koji
  • Algunos incluso propusieron aprovechar Copr en lugar de rebuilderd
  • En general, se prefiere avanzar en una dirección que aumente la integración con las herramientas existentes de Fedora

Próximos pasos

  • Se prevé presentar un ticket de propuesta ante FESCo (Fedora Engineering Steering Committee)
  • Si se aprueba, planean impulsar seriamente la ejecución hasta octubre, objetivo de lanzamiento de Fedora 43
  • Los usuarios finales probablemente no notarán grandes diferencias, pero es un cambio muy valioso desde la perspectiva de la seguridad de la cadena de suministro

7 comentarios

 
bbulbum 2025-04-14

El equipo de Fedora siempre me sorprende y da la sensación de que la mayoría de sus decisiones avanzan en la dirección correcta. Lo uso con agradecimiento hacia todas las personas que contribuyen cada vez.

 
kandk 2025-04-14

Siento que antes se usaba mucho, pero ¿por qué hoy en día parece que quedó en el olvido?

 
bbulbum 2025-04-14

Sigue siendo muy popular dentro de la comunidad Linux para usarse como escritorio Linux.
Como no es una distribución orientada a servidores, parece que en nuestro país no tiene tanta notoriedad, ya que el escritorio Linux no es muy activo.

 
kandk 2025-04-14

Ajá, hoy en día, si no eres un usuario avanzado, parece que terminas eligiendo Ubuntu, que puede usarse tanto en servidor como en escritorio.

 
bbulbum 2025-04-14

Me alegra ver algo sobre Linux, así que quería agregar mi comentario.. jaja
Ubuntu, desde la adopción de snap, perdió mucho apoyo entre quienes usan escritorio.. y Unity DE siempre ha dividido bastante las opiniones.. además, su ciclo de lanzamientos es demasiado largo, así que el soporte para los drivers más recientes tampoco es muy bueno..
Si están considerando usar Linux de escritorio, de verdad les recomiendo Fedora.
Fedora usa un Gnome muy cercano al original, y Gnome también ha venido con actualizaciones muy sólidas últimamente, así que estoy realmente satisfecho.

 
kandk 2025-04-14

Gracias jaja
Cuando pienso en Fedora, me trae viejos recuerdos.

 
GN⁺ 2025-04-12
Comentarios de Hacker News
  • El amigo que conociste en el camino es el verdadero tesoro
  • Me gustaría ver más binarios enlazados estáticamente. Por ejemplo, Python es una pesadilla de instalar y usar
  • Qué bueno ver que ellos también están participando en este proyecto
  • Los paquetes de Haskell actualmente no son reproducibles cuando se compilan con varios hilos. Pero no creo que eso sea un gran problema. El compilador gcc no admite compilación multihilo. En C, el paralelismo viene de compilar en paralelo varias unidades de traducción
  • Me sorprende ver este avance. Aplausos para todas las personas que han puesto esfuerzo en esto
  • Como noticia relacionada, en marzo se informó que las imágenes live de Debian bookworm se volvieron completamente reproducibles
  • Como usuario de Fedora, me pregunto qué me aporta esto realmente. Entiendo el caso para compilaciones cerradas, pero me pregunto por qué es necesario
  • La reproducibilidad entra en conflicto con la optimización guiada por perfiles, especialmente cuando involucra redes y otras operaciones de E/S no consistentes
  • ¡Sí! Quiero que más herramientas sean deterministas. En la parte más alta de mi lista de deseos está la configuración de Proxmox