Reproducible builds (Português)

From ArchWiki
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.

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.

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.

This article or section is out of date.

Reason: glibc 2.35-6 inclui C.UTF-8. (Discuss in Talk:Reproducible builds (Português))
  • Falha ao executar testes, essas falhas estão fortemente no ambiente de teste. Provavelmente devido a LANG=C estar definido e o Arch não oferecer suporte a LANG=C.UTF-8.

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

Nota: O ambiente de reprodução contínua em tests.reproducible-builds.org NÃO reproduz pacotes oficiais do arch. Sua finalidade é apenas mexer com os pacotes e tentar encontrar o maior número possível de bugs, para que possam ser relatados no upstream.

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