O Fedora 43 se prepara para compilações de pacotes totalmente reproduzíveis

Compilação de pacote repetível do Fedora

o fesco, a principal autoridade técnica por trás do desenvolvimento do Fedora, anúncio faz alguns dias uma mudança fundamental que será introduzido na versão de outono do "Fedora 43". E o objetivo foi oficialmente aprovado fornecer compilações de pacotes totalmente reproduzíveis para pelo menos 99% do repositório.

Atualmente, cobertura de compilações reproduzíveis no Fedora já chega a 90%. Os 10% restantes estão concentrados em pacotes que ainda necessitam de intervenção. pelos seus mantenedores. Para incentivar a resolução desses problemas, foi decidido que bugs relacionados a compilações não repetíveis serão tratados como erros de compilação, o que acelerará sua correção.

O que são builds jogáveis ​​e por que elas são importantes?

Uma construção jogável garante que qualquer pessoa pode pegar o código-fonte de um pacote e, usando o mesmo ambiente, produzem exatamente o mesmo binário que é oferecido. Isso significa que os usuários podem reconstruir pacotes RPM e verificar se eles correspondem aos distribuídos oficialmente, pelo menos em todos os elementos relevantes do pacote: arquivos incluídos, metadados essenciais, etc. As únicas diferenças permitidas serão detalhes como o registro de data e hora, o nome do host de compilação ou a assinatura digital.

Com a adição de builds jogáveis ​​em Fedora 43, o projeto dá um passo decisivo em direção a um modelo de distribuição mais transparente. Um dos benefícios mais imediatos e significativos dessa iniciativa é que os usuários não precisarão mais depender cegamente da infraestrutura de compilação do Fedora. A partir de agora, qualquer pessoa poderá verificar se os binários distribuídos correspondem exatamente ao código-fonte publicado, sem alterações ou manipulações ocultas.

El O objetivo do projeto Fedora é ambicioso, mas alcançável: que pelo menos 99% dos pacotes em seu repositório podem ser reconstruídos. Atualmente, a cobertura de reprodutibilidade já está em torno de 90%, o que mostra um progresso significativo. Para cobrir os 10% restantes, será necessária a colaboração ativa dos mantenedores dos pacotes.

Como parte do processo, O Fedora começará a abrir relatórios de bugs automaticamente sempre que um pacote falha em um teste de reconstrução reproduzível. Esses relatórios servirão como notificações diretas para que os mantenedores investiguem discrepâncias e implementem as correções necessárias.

Estamos cientes de alguns problemas que não podem ser facilmente resolvidos:

Pacotes Haskell não podem ser reproduzidos quando compilados com mais de um thread. A equipe de desenvolvimento está trabalhando no problema; a próxima versão do ghc pode corrigir isso completamente.
Os pacotes mingw têm dados de depuração irreproduzíveis.
Os pacotes Golang têm dados de depuração irreproduzíveis
O kernel usa uma chave efêmera para assinaturas de módulos. 
Os pacotes assinados do SecureBoot usam uma chave privada (shim, grub2).
Alguns BuildRequires em SRPMs dependem da arquitetura.
Isso se deve principalmente à maneira como preparamos o ambiente para as compilações. Não afeta diretamente os rpms binários.

Criaremos um sistema de rastreamento de bugs para problemas que afetam vários pacotes (Haskell, Mingw, Golang). Esperamos que essas questões sejam resolvidas tanto no desenvolvimento original quanto nos subsequentes.

Segurança e múltiplos benefícios

Assim, é mencionado que o A obtenção da reprodutibilidade total vai além da questão puramente técnicaComo representam um avanço na segurança permitindo a verificação de que o software não foi manipulado durante sua construção. Mas eles também têm um impacto tangível em outros aspectos importantes do ciclo de desenvolvimento.

Em termos de controle de qualidade, o processo ajuda a detectar erros sutis nas embalagens. Por exemplo, se um pacote marcado como "noarch" (independente de arquitetura) produz binários diferentes em plataformas diferentes, isso pode indicar uso indevido de dependências específicas de hardware.

Do ponto de vista da manutenção, Compilações reproduzíveis facilitam a visualização do que mudou após uma pequena edição.- Somente diferenças diretamente associadas a essa modificação serão refletidas nos novos binários, facilitando a análise, a depuração e o controle de versão.

Benefício para o Fedora

Os desenvolvedores do Fedora observam que obter compilações reproduzíveis envolve controlar vários fatores técnicos, como garantir a consistência nas dependências, versões da ferramenta de compilação, configurações padrões e a ordem dos arquivos gerados. O compilador também deve ser configurado para não inserir valores voláteis, como caminhos absolutos, registros de data e hora ou dados aleatórios. Também é essencial evitar condições de corrida e erros ocultos na cadeia de ferramentas.

O Fedora preparou sua infraestrutura para enfrentar esses desafios. Mudanças anteriores em seu sistema de construção já permitiram que metadados de modificação de arquivo (mtime) fossem sincronizados com aqueles do código-fonte de referência e garantiram que as estruturas internas dos binários fossem consistentes entre as execuções.

Enfim sim você está interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir