This document outlines the steps to get Gitorious into Fedora and EPEL.
High Level Steps and Issues
- Get all Gitorious' dependencies into Fedora.
- Several Rubygems.
- Get Gitorious into Fedora.
- Bundler issues: If we use different Gem versions than upstream, Bundler wants to write to Gemfile and Gemfile.lock. We will use bundler_ext to work around this. This will require the rubygem-bundler_ext package and a lot of testing.
- Init scripts: Create equivalent systemd unit files for Fedora & RHEL 7.
- Ruby version: Upstream "next" branch works with Ruby 1.9.3 and 2.0.0. I'm working with upstream to maintain this compatibility via Jenkins.
- Gem versions: Upstream uses different Gem versions than Fedora has. The biggest difference is Rails, but others are documented below. Plan of attack is to ensure that the test suite passes with both.
- GeoIP data: Gitorious bundles GeoIP.dat, which is already available in Fedora as the "GeoIP" package.
- FHS considerations: for the Gitorious web application itself, we need to discover how to split up the package to fit the FHS conventions of /etc/, /usr/, and so on.
- Get all Gitorious's dependencies into EPEL.
- Rails. I don't have experience packaging Rails, and there's been questions about which version to put into EPEL.
- Various Rubygems must be branched for EPEL.
- Get Gitorious into EPEL.
- Unfortunately upstream has dropped support for Ruby 1.8, so formal EPEL inclusion can only happen after RHEL 7 is released and EPEL 7 is branched.
Open review requests
Please review some of these. I'm willing to trade reviews.
|Gem||Package Review Request|
Checking progress with rhgc.rb
In order to see the list of gems that must still be packaged:
git clone git://gitorious.org/gitorious/mainline.git gitorious
git clone git://gist.github.com/movitto/6086381 rhgc
./rhgc/rhgc.rb --gemfile gitorious/Gemfile
You will need rubygem-gemnasium-parser and rubygem-pkgwat in order to run rhgc.rb, but these packages are not yet in Fedora. You can find them here: http://ktdreyer.fedorapeople.org/rhgc/
Gem dependency graph