Can you share what tools/procedures you use to pkg ruby app (Foreman/Sat6) as a RPM/puppet install-able app?

Foreman team,

Could you share how you are able to get out from under gem/bundler and turn a rails app (Foreman/Satellite) into an RPM based install?

I have not had any good success finding tools that can help me take say a Gemfile and automate downloading all the gems and dependency gems then create RPM installs for all the GEMs with the correct metadata for each as to what depends on what so that I can create a rails app, packlage it to RPMs, and install it via Sat6/puppet.

Any help greatly appreciated! Thx!

Hi Steve,

We use gem2rpm in order to convert gems to rpm.
You can take a look our packaging repo that might help you better: https://github.com/theforeman/foreman-packaging

A nice example from that repo is the following directory. It has several templates for generating .spec files to pack all foreman requirements including itself to .rpm’s.

I hope this gives you some pointers of how to start :slight_smile:

I will add to that it’s huge amount of manual work, the gem2rpm tool does not always give you working SPEC. And that’s only part of the problem, we do have many RPMs which are not rubygems, these are regular RPMs. And we do have bunch of javascript dependencies now which also uses a generator. Because of granularity of these node packages, it can do bundled RPMs as well.

Yes, I’ved started looking into that myself, that’s how I was able to point to the beginning of stuff :slight_smile:
Good packaging is hard and @ekohl does amazing work here .

1 Like

“By age of 35, you should have created a decently sized SPEC file that works.” :wink:

been there, done that at my early 30’s, now I’m over 35 :frowning: