Fedora 41 vai facilitar compilações de pacotes

A distribuição Fedora Linux 41 que sairá no final deste ano vai tornar as compilações de pacotes mais reproduzíveis. Isso vem logo depois de outra mudança importante: as otimizações para Python -O3 que também estarão na próxima versão do sistema.

Ambas as decisões são do Fedora Engineering and Steering Committee (FESC). Eles aprovaram esta semana, por unanimidade, uma proposta de mudança do Fedora 41 para tornar as compilações de pacotes RPM mais reproduzíveis.

O Fedora 41 está de olho em compilações de pacotes mais reproduzíveis graças a um programa Rust. O “determinismo adicional” baseado em Rust seria parte do processo de limpeza pós-compilação para compilações de pacotes RPM para abordar causas comuns de irreprodutibilidade de compilação.

Esta mudança é capaz de tornar a maioria das compilações de pacotes RPM do Fedora reproduzíveis em nome da segurança e auditabilidade.

Conforme explicado nessa proposta de mudança:

“add-determinism é um programa Rust que, como o próprio nome sugere, adiciona determinismo a arquivos que são dados como entrada, tentando padronizar metadados contidos em arquivos binários ou de origem para garantir consistência e fixação para $SOURCE_DATE_EPOCH em todas as instâncias. add-determinism é a “versão Fedora” do strip-nondeterminism do projeto Debian. Como o strip-nondeterminism é escrito em perl, é indesejável para uso no Fedora, pois não queremos puxar perl no buildroot para cada pacote.

Vale a pena notar que esta mudança não pretende impor quaisquer requisitos específicos de reprodutibilidade nos pacotes do Fedora. Uma vez que essa mudança seja implementada e tenhamos passado por uma reconstrução em massa e possamos verificar que as causas comuns de irreprodutibilidade foram de fato removidas, podemos considerar novos passos. Mas isso será pelo menos um lançamento mais tarde.

Fedora 41 vai facilitar compilações de pacotes

Essa alteração adiciona uma pequena quantidade de tempo ao processamento de RPMs no final de uma compilação. Assim, pacotes contendo grandes quantidades ou tamanhos de arquivos são mais lentos, mas esse efeito não deve ser perceptível. Add-determinism toma medidas para garantir que ele não interfira com outros processadores POST buildroot como mangle-shebangs, python-hardlink, python-bytecompile. O padrão é não fazer modificações caso não entenda o arquivo de entrada ou haja outros problemas.”

Todos os membros do FESCo estão de acordo com a proposta e ela já foi aprovada para o lançamento do Fedora 41 neste outono.