Reproducible builds (Português)

O Arch Linux está atualmente trabalhando para tornar todos os pacotes reproduzíveis. Isso permite que usuários e pesquisadores verifiquem os pacotes distribuídos do Arch Linux. Para a definição exata de compilações reproduzíveis e seus benefícios, dê uma olhada no site do projeto.

Status de tradução: Esse artigo é uma tradução de Reproducible builds. Data da última tradução: 2022-09-05. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Compilações de verificação

Repositório vs. recompilação

Uma instância experimental rebuilderd foi configurada em nossa própria infraestrutura com uma página de status. O Rebuilderd recompila nossos pacotes de repositório e verifica se eles são idênticos bit a bit. Se eles não forem reproduzíveis, há um bug no conjunto de ferramentas, o pacote não é reproduzível ou o pacote não foi construído corretamente.

Uma lista de problemas conhecidos está localizada em /Status.


Recompilação vs. outra recompilação com variações

O projeto Reproducible Builds recompila pacotes do Arch Linux e os compara com outra recompilação em um ambiente diferente. O status do pacote e variações do ambiente estão listadas na página dedicada do Arch Linux.

Ajudando

Ferramental

Ajude a corrigir bugs e adicionar recursos ao repro.

Executando uma instância de Rebuilder

A Configuração do rebuilderd para compilar pacotes do Arch Linux ajuda a verificar de forma independente os pacotes dos repositórios.

Verificando pacotes com repro e encontrando problemas

Uma ótima maneira de ajudar é encontrar um pacote não reproduzível e descobrir como ele pode ser reproduzido.

  • Baixe um pacote Arch Linux ou obtenha um do Arch Linux Archive
  • Execute repro no pacote baixado ou em um pacote do cache do pacman. Idealmente com repro -d para obter a saída do difoscope. Por exemplo, repro -d /var/cache/pacman/pkg/curl-7.73.0-1-x86_64.pkg.tar.zst
  • Investigue se é um problema com o empacotamento do Arch Linux ou do upstream, problemas podem ser adicionados na página de status. Mais informações podem ser encontradas no site Reproducible Builds[link inativo 2022-09-23 ].

Trabalhar em problemas na infraestrutura de tests.reproducible-builds.org

Os usuários do Arch podem ajudar a contribuir para os problemas do Reproducible Build consultando o ambiente de reprodução contínua. Existem vários problemas que podem ser resolvidos:

  • FTBS (falha ao compilar a partir da fonte): reproduza a falha de compilação localmente e crie um relatório de bug se o pacote não puder ser compilado a partir de um chroot limpo (extra-x86_64-build ou multilib-build).
  • Falha ao baixar fontes, reproduzir o problema (makepkg -o -d) e criar um relatório de bug no rastreador de erros do Arch.
  • Falha ao reproduzir. Localmente você pode reproduzir pacotes usando reprotest. Observe que nem todas as variações podem ser usadas. Para testes simples relacionados ao tempo:
    $ reprotest --variations '+time' 'sudo extra-x86_64-build' '*.pkg.tar.zst'

Pode haver várias razões para um pacote não ser reproduzível, mas antes de investigar dê uma olhada no repositório upstream ou o status reprodutível no Debian.

  • Falha ao executar testes, essas falhas estão fortemente no ambiente de teste. Provavelmente devido a estar definido e o Arch não oferecer suporte a .

Se você estiver interessado no código que executa o ambiente de reprodução contínua, o primeiro código de compilação começa aqui em salsa

Problemas conhecidos

Verificação de GPG

Existe um possível cenário de reconstrução em que as chaves GPG não serão verificadas, pois o empacotador foi removido do chaveiro ou revogado, pois usamos o chaveiro mais recente e um pacote no arquivo que precisamos ser assinado por uma chave revogada que não podemos verificar e a compilação falhará.

Contato

gollark: Multiple concurrent reads, though.
gollark: Well, the main limit is that it can only have one concurrent writer.
gollark: I see. Makes sense.
gollark: Which is a lot.
gollark: This is unlikely to need to scale beyond the amount of data SQLite can handle.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.