Poudriere: Tente obter dependências em vez de construí-las localmente

Criado em 31 mai. 2015  ·  21Comentários  ·  Fonte: freebsd/poudriere

Testar as portas antes de confirmar as alterações é caro. Portanto, está construindo sobreposição de algumas portas com opções não padrão.

  • /head é um alvo que se move rapidamente, ports -u muitas vezes torna muitos desatualizados
  • O suporte Tier1 consiste em 4 * 2 = 8 combinações de plataforma
  • redports.org (CI) ainda não está disponível depois que caiu há um ano
  • O layout do repo ainda não suporta NO_ARCH , NO_OSREL , NO_OPSYS
  • algumas portas podem exigir muita memória / tempo / atividade de disco para construir

Felizmente, pkg.freebsd.org já oferece pacotes prontos para uso. Por que não aproveitar? Advertência: só é útil quando a árvore de portas locais e o instantâneo remoto no momento não divergem muito.

Performance

Comentários muito úteis

Ainda não foi implementado no Poudriere, mas estou programado para depois do próximo lançamento.

Todos 21 comentários

Sim, este é um recurso desejado. Eu chamei isso de 'sementeira de pacote'. O script de compilação pkg.freebsd.org realmente faz isso sozinho para que possamos construir em sistemas diferentes entre cada compilação. Ele está no TODOLIST há muito tempo, mas ainda não foi implementado no Poudriere.

Também recentemente começou a usar o poudriere ativamente para construir pacotes para eles próprios e gostaria de uma função semelhante para -f pkg-list.txt se fosse parte de um pacote com as opções alteradas, então construí-los localmente, e com opções padrão buscar repositório upstream.

Isso já está implementado em um branch, gostaria de ajudar a testar.

Ainda não foi implementado no Poudriere, mas estou programado para depois do próximo lançamento.

Olá, @bdrewery , alguma atualização sobre este patch? Realmente preciso de seu feedback sobre como posso refinar este patch. Qualquer sugestão é apreciada. Muito obrigado.

Desculpe, tenho estado muito ocupado ultimamente. Vou tentar olhar nas próximas semanas.

alguma informação nova? obrigado!

Esse seria um recurso muito bom de se ter. Acabei de atualizar para 3.3.99.20190311, mas não vi uma opção para propagação de pacote. Há novidades sobre esse recurso?

Nesse ínterim, estou usando uma maneira hackeada de fazer isso: https://github.com/lwhsu/freebsd-ports-libreoffice/blob/master/porttest.sh

Bem, tente poudriere testport que precisa do GCC 9.x e do Clang 8.0 para construir ....
levou cerca de um dia da última vez que precisei testar isso.

@bdrewery alguma esperança de ver esse recurso em breve?

Provavelmente não, pois meu foco está em outro lugar, como construir menos em build incremental e suporte distribuído.

Alguma atualização para esse problema? Podemos fazer algo para ajudar?

Desculpe por outro "eu também". Eu gosto de construir algumas portas que estou usando, pois selecionei sinalizadores especiais nelas. Coisas como Mesa et al. preciso de uma versão específica do LLVM e, bem, eu realmente não quero ou preciso construí-la sozinho. Portanto, seria ótimo se eu pudesse dizer a poudriere para algumas portas selecionadas para nunca criá-los, mas buscá-los em vez disso.

Caso contrário, minha corrida termina assim:

[freebsd:12:x86:64-default] [2020-06-22_09h45m06s] [parallel_build:] Queued: 1616 Built: 97   Failed: 0    Skipped: 0    Ignored: 0    Tobuild: 1519  Time: 02:21:47
        [01]: devel/llvm80              | llvm80-8.0.1_3            build           (01:50:32 / 01:51:56)
        [02]: devel/llvm90              | llvm90-9.0.1_1            build           (01:50:59 / 01:52:03)
        [03]: lang/gcc9                 | gcc9-9.3.0_1              build           (01:51:28 / 01:51:54)

Eu gostaria de evitar essa agitação inútil. Obrigado!

@uqs estou ouvindo você. Eu também acho que há outra maneira de resolver esse problema específico, que é construir pacotes oficiais usando os sinalizadores que você deseja. Você poderia compartilhar detalhes sobre quais sinalizadores você mudou?

Outro eu também aqui. Ou seja, eu preciso da porta dns / unbound com python, mas não preciso ter todas as dependências subjacentes construídas.

+1

+1

Esse recurso ou alguma documentação sobre como usar ganchos para conseguir o mesmo seria ótimo!

797 irá cobrir isso

797 é mesclado, mas há muitas armadilhas que tornam isso não tão útil quanto parece. Por exemplo, llvm e todas as outras coisas importantes ainda são compiladas. # 822 provavelmente será necessário para consertar isso.

Esta página foi útil?
0 / 5 - 0 avaliações