User:Ktdreyer/Gitorious

From FedoraProject

< User:Ktdreyer
Revision as of 02:49, 13 August 2012 by Ktdreyer (Talk | contribs)

Jump to: navigation, search

This document outlines the steps to get Gitorious into Fedora and EPEL.

Contents

High Level Steps and Issues

Fedora

  1. Get all Gitorious' dependencies into Fedora.
  2. Get Gitorious into Fedora.
    • Bundled libraries: Gitorious bundles several things, including Rails. Upstream bug for Rails
    • Bundler issues: If we use different Gem versions than upstream, Bundler wants to write to Gemfile and Gemfile.lock. We must patch upstream's Gemfile/Gemfile.lock to make this work.
    • Init scripts: Create equivalent systemd unit files for Fedora & RHEL 7.
    • Ruby version: Upstream master works with Ruby 1.8; verify Ruby 1.9.x compatability.
    • 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.
    • Javascript libs: There are a couple Git submodules in upstream (buster-core, capillary-js, raphael, spin.js). We should find a way to unbundle these and package them separately.
    • 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.

EPEL

  1. 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.
    • mod_passenger. See "Fedora" above.
  2. Get Gitorious into EPEL.
    • Ruby 1.8 may make things easier, since this is what upstream uses.
    • EPEL has RSpec 1, but some gems (eg riddle) require RSpec 2.

Dependencies

  • Fail - The package is not in Fedora/EPEL
  • Pass - The package is not in Fedora/EPEL, and I'm unsure how to proceed (lib might be deprecated, etc.)
  • Inprogress - The package spec is written, but not yet accepted into Fedora/EPEL
  • Pass - The package is present in Fedora/EPEL and versions differ from upstream
  • Pass - The package is present in Fedora/EPEL and versions match upstream

(FYI, the ordering in these tables matches upstream's Gemfile.)

Gitorious Web Application Gems

Gem Upstream Gemfile Fedora 17 EPEL 6
chronic 0.3.0
Warning warn
0.6.6
Fail fail
geoip 0.8.9[1]
Inprogress inprogress
1.1.2, git
Fail fail
daemons 1.1.0
Warning warn
1.0.10
Warning warn
1.0.10
hoe 2.8.0
Warning warn
2.12.5
Fail fail
echoe 4.3.1
Warning warn
4.3.1
Fail fail
gemcutter Dep for echoe
Pass pass
0.3.0
Fail fail
rubyforge Dep for echoe (2.0.4)
Pass pass
2.0.4
Fail fail
json_pure 1.5.0
Warning warn
1.6.3
Warning warn
1.6.3
ruby-yadis 0.3.4
Inprogress inprogress
0.3.4, git
Fail fail
ruby-openid 2.1.8
Warning warn
2.1.7
Fail fail
rdiscount 1.3.1.1
Warning warn
1.6.3.2
Fail fail
mime-types 1.16
Pass pass
1.16
Pass pass
1.16
diff-lcs 1.1.2
Pass pass
1.1.2
Pass pass
1.1.2
oauth 0.4.4
Pass pass
0.4.4
Fail fail
paperclip 2.4.5
Inprogress inprogress
3.1.4, git
Fail fail
activesupport Dep for paperclip (2.3.8)
Warning warn
3.0.11
Fail fail
activerecord Dep for paperclip (2.3.8)
Warning warn
3.0.11
Fail fail
cocaine Dep for paperclip
Inprogress inprogress
0.2.1, git
Fail fail
bourne Dep for cocaine
Inprogress inprogress
1.1.2, git
Fail fail
state_machine 0.9.4
Warning warn
1.1.2
Warning warn
1.1.2
rack 1.0.1
Warning warn
1.4.0
Warning warn
1.1.0
riddle 1.2.2
Inprogress inprogress
1.5.2, git
Fail fail
mysql2 Dep for riddle
Inprogress inprogress
0.3.11, git
Fail fail
yard Dep for riddle
Pass pass
0.7.4
Fail fail
rspec-core Dep for yard
Pass pass
0.7.4
Fail fail
rspec-expectations Dep for rspec-core
Pass pass
2.8.0
Fail fail
rspec-mocks Dep for rspec-core
Pass pass
2.8.0
Fail fail
builder 3.0.0
Warning warn
2.1.2
Fail fail
mysql 2.8.1
Warning warn
2.8.2?
Warning warn
2.8.2?
validates_url_format_of 0.1.1
Inprogress inprogress
0.3.0, git
Fail fail
acts-as-taggable-on 2.0.6
Inprogress inprogress
2.3.3, git
Fail fail
will_paginate 2.3.15
Warning warn
3.0.2
Fail fail
hodel_3000_compliant_logger 0.1.0
Inprogress inprogress
0.1.0, git
Fail fail
ruby-net-ldap 0.0.4
Warning warn
Use net-ldap[2]
Fail fail
Use net-ldap[2]
capillary 1.0.1
Inprogress inprogress
1.0.1, git
Fail fail
mini_shoulda Dep for capillary (0.4.0)
Inprogress inprogress
0.4.0, git
Fail fail
nokogiri 1.5.0
Warning warn
1.5.5
Warning warn
1.4.3.1
exception_notification 1.0.20090728
Inprogress inprogress
2.6.1, git
Fail fail
revo-ssl_requirement 1.1.0
Warning warn
unneeded?[3]
Fail fail
ruby-hmac 0.4.0
Warning warn
unneeded
Fail fail
json 1.5.4
Warning warn
(not needed)
Warning warn
1.4.6

Test suite Gem dependencies

Gem Upstream Gemfile Fedora 17 EPEL 6
mocha 0.9.10
Warning warn
0.11.0
Warning warn
0.9.8
factory_girl 1.3.3
Warning warn
2.3.2
Fail fail
shoulda 2.9.1
Warning warn
2.11.3
Warning warn
2.11.3
tuxml 0.0.1
Fail fail
Fail fail
rots git clone (!)
Fail fail
Fail fail
capybara 1.0.1
Warning warn
1.1.2
Fail fail
rack-test Dep for capybara (0.6.1)
Warning warn
0.6.0
Warning warn
0.5.4
selenium-webdriver Dep for capybara (2.4.0)
Warning warn
2.3.2
Fail fail
childprocess Dep for selenium-webdriver (0.2.1)
Warning warn
0.2.0
Fail fail
ffi Dep for selenium-webdriver (1.0.9)
Pass pass
1.0.9
Fail fail
multi_json Dep for selenium-webdriver (1.0.4)
Warning warn
1.0.3
Fail fail
rubyzip Dep for selenium-webdriver (0.9.4)
Pass pass
0.9.4
Fail fail
xpath Dep for capybara (0.1.4)
Pass pass
0.1.4
Fail fail
launchy 2.0.5
Warning warn
0.4.0
Warning warn
0.3.7
addressable Dep for launchy (2.2.6)
Pass pass
2.2.6
Fail fail
(unneeded?)


Possibly optional Gem dependencies

Gem Upstream Gemfile Fedora 17 EPEL 6
foreman (for dev) 0.41.0
Fail fail
Fail fail
thor (for dev) Dep for foreman (0.14.6)
Pass pass
0.14.6
Fail fail
stompserver (for dev) 0.9
Fail fail
Fail fail
thin (for dev) 1.2
Warning warn
1.3.1
Warning warn
1.2.8
proxymachine (for dev, and git proxy) 1.2.4
Warning warn
1.3.1
Warning warn
1.2.8
eventmachine Dep for proxymachine (0.12.10)
Pass pass
0.12.10
Pass pass
0.12.10
rake (for git proxy) 0.8.7
Warning warn
0.9.2.2
Pass pass
0.8.7
resque (for resque) 1.9.8
Fail fail
Fail fail
redis (for resque) 2.2.0
Fail fail
Fail fail
redis-namespace (for resque) 0.7.0
Fail fail
Fail fail
sinatra 1.0
Fail fail
Fail fail
vegas (for resque) 0.1.11
Fail fail
Fail fail
SystemTimer (for resque) 1.2.3
Warning warn
(gone from Ruby[4])
Fail fail
stomp (for stomp) 1.1
Warning warn
1.2.2
Warning warn
1.1.8
activemessaging (for active messaging) 0.7.1 (gone from rails?)
Fail fail


Bundled (vendored) dependencies

These deps are bundled in /vendor:

Name Bundled version Fedora 17 EPEL 6
diff-display  ???
Fail fail
Fail fail
grit  ???
Warning warn
2.4.1
Fail fail
rails  ???
Warning warn
3.0/3.2 in F18
Fail fail
ruby-git  ???
Warning warn
1.2.5[5]
Fail fail
plugins/localized_dates  ???
Unknown unknown
Fail fail
plugins/localized_dates  ???
Unknown unknown
Fail fail
plugins/open_id_authentication  ???
Unknown unknown
Fail fail
plugins/restful_authentication  ???
Unknown unknown
Fail fail
plugins/routing-filter  ???
Unknown unknown
Fail fail
plugins/ultrasphinx  ???
Fail fail
Fail fail

These deps are git submodules under public/javascripts/lib/:

Name Bundled version Fedora 17 EPEL 6
buster-core  ???
Fail fail
Fail fail
capillary-js  ???
Fail fail
Fail fail
raphael  ???
Fail fail
Fail fail
spin.js  ???
Fail fail
Fail fail


  1. Upstream ships data/GeoIP.dat, which Fedora already ships in GeoIP.
  2. 2.0 2.1 https://gitorious.org/gitorious/mainline/merge_requests/191
  3. SSL requirement is built into Rails 3
  4. does not build on Fedora 17
  5. Called "rubygem-git" in Fedora