FERRAMENTAS LINUX: Fedora 41: Compilações de Pacotes RPM Mais Reproduzíveis

terça-feira, 7 de maio de 2024

Fedora 41: Compilações de Pacotes RPM Mais Reproduzíveis

 


Esta semana, o Comitê de Engenharia e Direção do Fedora (FESCo) aprovou por unanimidade uma proposta de mudança para o Fedora 41. 

O objetivo é tornar as compilações de pacotes RPM mais reproduzíveis, além de aprovar compilações Python otimizadas para o  -O3.

Programa Rust para Compilações Reproduzíveis

O Fedora 41 está em busca de compilações de pacotes mais reproduzíveis, graças a um programa baseado em Rust chamado “add-determinism”. Este programa será parte do processo de limpeza pós-compilação para compilações de pacotes RPM, abordando causas comuns de irreprodutibilidade de compilação. A mudança tem o potencial de tornar a maioria das compilações de pacotes RPM do Fedora reproduzíveis, aumentando a segurança e a auditabilidade.

Como Funciona o Add-Determinism?

O add-determinism é um programa Rust que adiciona determinismo aos arquivos fornecidos como entrada. Ele tenta padronizar os metadados contidos em arquivos binários ou de origem para garantir consistência e fixação a $SOURCE_DATE_EPOCH em todas as instâncias. O 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 extrair o Perl no buildroot para cada pacote.

Impacto da Mudança

Essa mudança adiciona um pouco de tempo ao processamento de RPMs no final de uma compilação. Portanto, pacotes contendo grandes quantidades ou tamanhos de arquivos serão mais lentos, mas esse efeito não é esperado para ser perceptível. O add-determinism toma medidas para garantir que não interfira com outros pós-processadores buildroot, como mangle-shebangs, python-hardlink, python-bytecompile.

Aprovação da FESCo

Todos os membros da FESCo concordam com a proposta e agora ela foi aprovada para o lançamento do Fedora 41 neste outono.

Para os interessados, o programa add-determinism pode ser encontrado no GitHub.




Fonte 

Até a próxima !!

Nenhum comentário:

Postar um comentário