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.
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
oumultilib-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
LANG=C
estar definido e o Arch não oferecer suporte aLANG=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
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
- #archlinux-reproducible — Canal principal para o progresso de compilações reproduzíveis no Arch Linux