3

I'm making my own personal RPM repository. So far, I've built the following packages:

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

I'm primarily packaging them for Fedora, as I'm looking to migrate my desktops to Fedora in the near future. I'd like to build these packages on something like Copr, but many of these packages are forbidden by Fedora.

The problems I've encountered so far are:

  1. I'd like to have a Git repository with only spec files and patches checked in.
  2. To that end, I'd like the source code to be downloaded as part of the build.
  3. Some packages that I'm building like FFMPEG require some development packages from the other builds to be installed on the host, creating a chicken and egg problem.
  4. I've currently got all of my builds happening in a Fedora 23 Vagrant VM. If I want to build for rawhide or CentOS 7, will I have to run those builds in a separate VM based on CentOS 7 or is there a way to have one host build packages for multiple distros?

Is there software out there which will help me build all packages for my repository in the right order and provide the devel RPMs to other packages that require them? I'd like to automate as much as possible for this setup, so I need some kind of simple build script I can run which can build things in the proper order, making headers available to the other packages that need them, possibly without installing them on the host machine.

  • 4. mock is your friend if you are interested in build for different Fedora version/rhel. In the other questions I am not so well versed. But I believe you can run your own instance of Copr to automate most of the things. – Jakuje Jan 15 '16 at 23:53
  • At least some of the packages are already available for Fedora via rpmfusion and livna. What is the reason to build a personal rpm repository? – maxschlepzig Jan 16 '16 at 13:29
  • @maxschlepzig Security, and I want my own compile options for FFMPEG. There is inevitably software that I'd like to build for myself that doesn't exist in a repository, so I'd like to automate things as much as possible. – Naftuli Kay Jan 17 '16 at 5:29
  • Also came across tito – Naftuli Kay Jan 17 '16 at 22:28
1

Mockchain (from mock package) can do what you want. It accept list of SRPM as parameter, It has very naive algorithm which tries to rebuild them, those which fails are tried in second iteration. Those iteration continues as long as at least package is built successfully in the loop. So it can consume lots of CPU cycles, but it does not require too much interaction from you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.