Construções automatizadas de RPM

3

Estou fazendo meu próprio repositório RPM pessoal. Até agora, eu construí os seguintes pacotes:

  • x264
    • libx264
    • libx264-devel
  • x265
    • libx265
    • libx265-devel
  • coxo
    • libmp3lame
    • libmp3lame-devel
  • libmfx
    • libmfx-devel
  • libdvdcss
    • libdvdcss-devel
  • libfdk-aac
    • libfdk-aac-devel
  • ffmpeg
    • libavcodec
    • libavdevice
    • libavfilter
    • libavresample
    • libavutil
    • libpostproc
    • libswresample
    • libswscale

Estou principalmente empacotando-os para o Fedora, já que estou procurando migrar meus desktops para o Fedora em um futuro próximo. Eu gostaria de construir esses pacotes em algo como Copr , mas muitos desses pacotes são proibido pelo Fedora .

Os problemas que encontrei até agora são:

  1. Gostaria de ter um repositório Git com apenas arquivos de especificações e patches marcados.
  2. Para isso, gostaria que o código-fonte fosse baixado como parte da versão.
  3. Alguns pacotes que estou construindo como o FFMPEG requerem alguns pacotes de desenvolvimento de outras compilações para serem instalados no host, criando um problema de ovo e galinha.
  4. Atualmente, tenho todas as minhas construções acontecendo em uma VM do Vagrant do Fedora 23. Se eu quiser criar rawhide ou CentOS 7, terei que executar essas compilações em uma VM separada com base no CentOS 7 ou há uma maneira de ter um host que compile pacotes para várias distros?

Existe software lá fora que me ajudará a construir todos os pacotes para o meu repositório na ordem correta e fornecer os RPMs devel para outros pacotes que os requeiram? Eu gostaria de automatizar o máximo possível para esta configuração, então eu preciso de algum tipo de script de construção simples que possa executar, que possa construir as coisas na ordem correta, disponibilizando cabeçalhos para os outros pacotes que precisam deles, possivelmente sem instalá-los na máquina host.

    
por Naftuli Kay 15.01.2016 / 21:28

1 resposta

1

Mockchain (do pacote simulado) pode fazer o que você quiser. Aceita lista de SRPM como parâmetro, tem algoritmo muito ingênuo que tenta reconstruí-los, aqueles que falham são tentados em segunda iteração. Essa iteração continua enquanto pelo menos o pacote for construído com êxito no loop. Por isso, pode consumir muitos ciclos de CPU, mas não requer muita interação de você.

    
por 18.01.2016 / 12:06