自动 RPM 构建

自动 RPM 构建

我正在制作我自己的个人 RPM 存储库。到目前为止,我已经构建了以下包:

  • x264
    • 库x264
    • libx264-开发
  • x265
    • 库x265
    • libx265-开发
    • libmp3lame
    • libmp3lame 开发
  • libmfx
    • libmfx 开发
  • libdvdcss
    • libdvdcss-开发
  • libfdk-aac
    • libfdk-aac-开发
  • ffmpeg
    • libav编解码器
    • libav设备
    • 库过滤器
    • libavresample
    • libavutil
    • libpostproc
    • 库重新采样
    • libswscale

我主要为 Fedora 打包它们,因为我希望在不久的将来将我的桌面迁移到 Fedora。我想在类似的东西上构建这些包,但其中许多包是被 Fedora 禁止

到目前为止我遇到的问题是:

  1. 我想要一个仅签入规范文件和补丁的 Git 存储库。
  2. 为此,我希望将源代码作为构建的一部分下载。
  3. 我正在构建的一些软件包(例如 FFMPEG)需要将其他构建中的一些开发软件包安装在主机上,从而产生先有鸡还是先有蛋的问题。
  4. 目前,我的所有构建都在 Fedora 23 Vagrant VM 中进行。如果我想为 rawhide 或 CentOS 7 进行构建,我是否必须在基于 CentOS 7 的单独虚拟机中运行这些构建,或者是否有办法为多个发行版提供一个主机构建包?

是否有软件可以帮助我以正确的顺序为我的存储库构建所有软件包,并向需要它们的其他软件包提供开发 RPM?我想尽可能地自动化此设置,因此我需要某种可以运行的简单构建脚本,它可以按正确的顺序构建内容,使标头可供需要它们的其他包使用,可能无需安装它们在主机上。

答案1

Mockchain(来自模拟包)可以做你想做的事。它接受 SRPM 列表作为参数,它有非常简单的算法尝试重建它们,那些失败的算法会在第二次迭代中尝试。只要至少在循环中成功构建了包,这些迭代就会继续。因此它可能会消耗大量 CPU 周期,但不需要您进行太多交互。

相关内容