From Fedora Project Wiki
(→‎Dependencies: add more dependencies)
(add more deps and fix ordering)
Line 9: Line 9:
#* Bundler issues: If we use different Gem versions than upstream, Bundler wants to write to Gemfile and Gemfile.lock. We must patch Gemfile
#* Bundler issues: If we use different Gem versions than upstream, Bundler wants to write to Gemfile and Gemfile.lock. We must patch Gemfile
#* Init scripts: Create equivalent systemd unit files for Fedora & RHEL 7.
#* 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. Same for newer rails.
#* 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.
#* LDAP library: Upstream still uses ruby-net-ldap. This package has been [http://pkgs.fedoraproject.org/cgit/rubygem-ruby-net-ldap.git/tree/dead.package obsoleted] in Fedora by net-ldap. I don't know how much porting work this would involve.


=== EPEL ===
=== EPEL ===
Line 18: Line 20:
# Get Gitorious into EPEL.
# Get Gitorious into EPEL.
#* Ruby 1.8 may make things easier, since this is what upstream uses.
#* 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 ==
== Dependencies ==
Line 24: Line 27:
* [[File:Test-result-warn.png|alt=Pass|link=]] - The package is present and versions differ from upstream
* [[File:Test-result-warn.png|alt=Pass|link=]] - The package is present and versions differ from upstream
* [[File:Test-result-pass.png|alt=Pass|link=]] - The package is present and versions match upstream
* [[File:Test-result-pass.png|alt=Pass|link=]] - The package is present and versions match upstream
(FYI, the ordering in this table matches [https://gitorious.org/gitorious/mainline/blobs/master/Gemfile upstream's Gemfile].)


{|
{|
! Gem !! Upstream Gemfile !! Fedora 17 !! EPEL 6
! Gem !! Upstream Gemfile !! Fedora 17 !! EPEL 6
|-
|-
| rake            || 0.8.7 || {{result|warn}} 0.9.2.2 || {{result|pass}} 0.8.7
| chronic        || 0.3.0  || {{result|warn}} 0.6.6  || {{result|fail}}
|-
| geoip          || 0.8.9  || {{result|fail}}  || {{result|fail}}
|-
| daemons        || 1.1.0 || {{result|warn}} 1.0.10 || {{result|warn}} 1.0.10
|-
| hoe            || 2.8.0  || {{result|warn}} 2.12.5  || {{result|fail}}
|-
| echoe          || 4.3.1  || {{result|warn}} 4.3.1  || {{result|fail}}
|-
|-
| SystemTimer    || 1.2.3 || (gone from Ruby?) || {{result|fail}}
| gemcutter      || Dep for echoe  || {{result|pass}} 0.3.0 || {{result|fail}}
|-
|-
| activesupport  || 2.3.8 || {{result|warn}} 3.0.11  || {{result|fail}}
| ruby-yadis      || 0.3.4 || {{result|fail}} || {{result|fail}}
|-
|-
| activemessaging || 0.7.1 || (gone from rails?) || {{result|fail}}
| ruby-openid      || 2.1.8  || {{result|warn}} 2.1.7 || {{result|fail}}
|-
| rdiscount      || 1.3.1.1 || {{result|fail}} || {{result|fail}}
|-
|-
| activerecord    || 2.3.8  || {{result|warn}} 3.0.11  || {{result|fail}}
| mime-types      || 1.16  || {{result|pass}} 1.16 || {{result|pass}} 1.16
|-
|-
| acts-as-taggable-on || 2.0.6 || not in Fedora || {{result|fail}}
| diff-lcs        || 1.1.2  || {{result|pass}} 1.1.2  || {{result|pass}} 1.1.2
|-
|-
| addressable    || 2.2.6 || {{result|pass}} 2.2.6 || {{result|fail}}
| oauth          || 0.4.4 || {{result|fail}} || {{result|fail}}
|-
|-
| builder        || 3.0.0 || {{result|warn}} 2.1.2  || {{result|fail}}
| paperclip      || 2.4.5 || {{result|fail}} || {{result|fail}}
|-
|-
| json            || 1.5.4 || {{result|warn}} 1.6.|| {{result|warn}} 1.4.6
| activesupport  || Dep for paperclip (2.3.8) || {{result|warn}} 3.0.11  || {{result|fail}}
|-
|-
| capillary      || 1.0.0 || {{result|fail}} || {{result|fail}}
| activerecord    || Dep for paperclip (2.3.8) || {{result|warn}} 3.0.11  || {{result|fail}}
|-
|-
| mime-types      || 1.16  || {{result|pass}} 1.16 || {{result|pass}} 1.16
| cocaine        || Dep for paperclip  || {{result|fail}} || {{result|fail}}
|-
|-
| nokogiri        || 1.5.0 || {{result|warn}} 1.5.|| {{result|warn}} 1.4.3.1
| state_machine  || 0.9.4 || {{result|warn}} 1.1.2 || {{result|warn}} 1.1.2
|-
|-
| rack            || 1.0.1  || {{result|warn}} 1.4.0  || {{result|warn}} 1.1.0
| rack            || 1.0.1  || {{result|warn}} 1.4.0  || {{result|warn}} 1.1.0
|-
|-
| rack-test      || 0.6.1  || {{result|warn}} 0.6.0  || {{result|warn}} 0.5.4
| riddle          || 1.2.2
| {{result|fail}}
| {{result|fail}}<ref>Riddle 1.5.1 requires rake 0.9.2. RHEL 6 Base has 0.8.7-2.1.</ref> <ref>Riddle 1.5.1 requires rspec 2.5.0. RHEL 6 EPEL has 1.3.0-2.</ref>
|-
|-
| ffi            || 1.0.9 || {{result|pass}} 1.0.9 || {{result|fail}}
| yard            || Dep for riddle || {{result|pass}} 0.7.4 || {{result|fail}}
|-
| rspec-core      || Dep for yard || {{result|pass}} 0.7.4 || {{result|fail}}
|-
| rspec-expectations || Dep for rspec-core || {{result|pass}} 2.8.0 || {{result|fail}}
|-
| rspec-mocks    || Dep for rspec-core || {{result|pass}} 2.8.0 || {{result|fail}}
|-
| builder        || 3.0.0  || {{result|warn}} 2.1.2  || {{result|fail}}
|-
| mysql          || 2.8.1 || {{result|warn}} 2.8.2? || {{result|warn}} 2.8.2?
|-
| validates_url_format_of || 0.1.1 || {{result|fail}} || {{result|fail}}
|-
| acts-as-taggable-on || 2.0.6 || {{result|fail}} || {{result|fail}}
|-
| will_paginate  || 2.3.15 || {{result|warn}} 3.0.2 || {{result|fail}}
|-
|-
| childprocess    || 0.2.|| {{result|warn}} 0.2.0  || {{result|fail}}
| hodel_3000_compliant_logger || 0.1.0 || {{result|fail}} || {{result|fail}}
|-
|-
| json_pure      || 1.5.|| {{result|warn}} 1.6.3  || {{result|warn}} 1.6.3
| ruby-net-ldap  || 0.0.4 || {{result|fail}} Use net-ldap || {{result|fail}} Use net-ldap
|-
|-
| rubyzip        || 0.9.4 || {{result|pass}} 0.9.4 || {{result|fail}}
| capillary      || 1.0.0 || {{result|fail}} || {{result|fail}}
|-
|-
| selenium-webdriver || 2.4.0 || {{result|warn}} 2.3.2 || {{result|fail}}
| nokogiri        || 1.5.0 || {{result|warn}} 1.5.|| {{result|warn}} 1.4.3.1
|-
|-
| xpath          || 0.1.4  || {{result|pass}} 0.1.4 || {{result|fail}}
| exception_notification || 1.0.20090728 || {{result|fail}} || {{result|fail}}
|-
|-
| capybara        || 1.0.1  || {{result|warn}} 1.1.2  || {{result|fail}}
| rubygem-revo-ssl_requirement || 1.1.0 || {{result|fail}} || {{result|fail}}
|-
|-
| chronic        || 0.3.0 || {{result|warn}} 0.6.6  || {{result|fail}}
| rubygem-ruby-hmac || 0.4.0 || {{result|warn}} unneeded || {{result|fail}}
|-
|-
| daemons        || 1.1.0 || {{result|warn}} 1.0.10 || {{result|warn}} 1.0.10
| foreman*        || 0.41.0 || {{result|fail}} || {{result|fail}}
|-
|-
| diff-lcs        || 1.1.2  || {{result|pass}} 1.1.2 || {{result|pass}} 1.1.2
| stompserver*    || 0.9 || {{result|fail}}  || {{result|fail}}
|-
|-
| rubyforge      || 2.0.4  || {{result|pass}} 2.0.4 || {{result|fail}}
| thin*          || 1.2 || {{result|warn}} 1.3.1 || {{result|warn}} 1.2.8
|-
|-
| echoe          || 4.3.1  || {{result|warn}} 4.3.1 || {{result|fail}}
| proxymachine*  || 1.2 || {{result|warn}} 1.3.1 || {{result|warn}} 1.2.8
|-
|-
| gemcutter      || Dep for echoe || {{result|pass}} 0.3.|| {{result|fail}}
| rake*          || 0.8.7 || {{result|warn}} 0.9.2.2 || {{result|pass}} 0.8.7
|-
|-
| eventmachine    || 0.12.10 || {{result|pass}} 0.12.10 || {{result|pass}} 0.12.10
| json            || 1.5.|| {{result|warn}} (not needed) || {{result|warn}} 1.4.6
|-
|-
| exception_notification || 1.0.20090728 || {{result|fail}} || {{result|fail}}
| resque          || 1.9.|| {{result|fail}} || {{result|fail}}
|-
|-
| factory_girl    || 1.3.3  || {{result|warn}} 2.3.2 || {{result|fail}}
| SystemTimer    || 1.2.3  || {{result|warn}}(gone from Ruby?) || {{result|fail}}
|-
|-
| thor            || 0.14.6 || {{result|pass}} 0.14.6 || {{result|fail}}
| stomp          || 1.|| {{result|warn}} 1.2.2 || {{result|warn}} 1.1.8
|-
|-
| foreman        || 0.41.0 || {{result|fail}}  || {{result|fail}}
| activemessaging || 0.7.|| (gone from rails?) || {{result|fail}}
|-
|-
| geoip          || 0.8.9  || {{result|fail}}  || {{result|fail}}
 
|}
 
 
 
 
Other deps, not explicitly listed in Gemfile
{|
! Gem !! Upstream Gemfile !! Fedora 17 !! EPEL 6
|-
|-
| hodel_3000_compliant_logger || 0.1.0 || {{result|fail}} || {{result|fail}}
| ffi            || 1.0.9  || {{result|pass}} 1.0.9 || {{result|fail}}
|-
|-
| hoe            || 2.8.0 || {{result|warn}} 2.12.5  || {{result|fail}}
| childprocess    || 0.2.1 || {{result|warn}} 0.2.|| {{result|fail}}
|-
|-
| launchy        || 2.0.5 || {{result|warn}} 0.4.0 || {{result|warn}} 0.3.7
| json_pure      || 1.5.0  || {{result|warn}} 1.6.|| {{result|warn}} 1.6.3
|-
|-
| mocha          || 0.9.10 || {{result|warn}} 0.11.0 || {{result|warn}} 0.9.8
| rubyzip        || 0.9.|| {{result|pass}} 0.9.4 || {{result|fail}}
|-
|-
| mysql          || 2.8.|| {{result|warn}} 2.8.2? || {{result|warn}} 2.8.2?
| selenium-webdriver || 2.4.0 || {{result|warn}} 2.3.2 || {{result|fail}}
|-
|-
| validates_url_format_of || 0.1.1 || {{result|fail}} || {{result|fail}}
| xpath          || 0.1.4 || {{result|pass}} 0.1.4 || {{result|fail}}
|-
|-
| oauth          || 0.4.4 || {{result|fail}} || {{result|fail}}
| capybara        || 1.0.1 || {{result|warn}} 1.1.2  || {{result|fail}}
|-
|-
| paperclip       || 2.4.5 || {{result|fail}} || {{result|fail}}
| rack-test       || Dep for capybara (0.6.1) || {{result|warn}} 0.6.0  || {{result|warn}} 0.5.4
|-
|-
| cocaine        || Dep for paperclip || {{result|fail}} || {{result|fail}}
| rubyforge      || 2.0.4 || {{result|pass}} 2.0.4 || {{result|fail}}
|-
|-
| proxymachine   || 1.2.|| {{result|fail}} || {{result|fail}}
| eventmachine   || 0.12.10 || {{result|pass}} 0.12.10 || {{result|pass}} 0.12.10
|-
|-
| rdiscount      || 1.3.1.1 || {{result|fail}} || {{result|fail}}
| factory_girl    || 1.3.|| {{result|warn}} 2.3.2 || {{result|fail}}
|-
|-
| redis          || 2.2.|| {{result|fail}} || {{result|fail}}
| thor            || 0.14.6 || {{result|pass}} 0.14.6 || {{result|fail}}
|-
|-
| redis-namespace || 0.7.0 || {{result|fail}} || {{result|fail}}
| launchy        || 2.0.5 || {{result|warn}} 0.4.0 || {{result|warn}} 0.3.7
|-
|-
| sinatra        || 1.0    || {{result|fail}} || {{result|fail}}
| addressable    || Dep for launchy (2.2.6)  || {{result|pass}} 2.2.6 || {{result|fail}} (unneeded?)
|-
|-
| riddle          || 1.2.2
| mocha          || 0.9.10 || {{result|warn}} 0.11.0 || {{result|warn}} 0.9.8
| {{result|fail}}
| {{result|fail}}<ref>Riddle 1.5.1 requires rake 0.9.2. RHEL 6 Base has 0.8.7-2.1.</ref> <ref>Riddle 1.5.1 requires rspec 2.5.0. RHEL 6 EPEL has 1.3.0-2.</ref>
|-
|-
| yard            || Dep for riddle || {{result|pass}} 0.7.4 || {{result|fail}}
| proxymachine    || 1.2.4  || {{result|fail}} || {{result|fail}}
|-
|-
| rspec-core      || Dep for yard || {{result|pass}} 0.7.4 || {{result|fail}}
| redis          || 2.2.0  || {{result|fail}} || {{result|fail}}
|-
|-
| rspec-expectations || Dep for rspec-core || {{result|pass}} 2.8.0 || {{result|fail}}
| redis-namespace || 0.7.0  || {{result|fail}} || {{result|fail}}
|-
|-
| rspec-mocks    || Dep for rspec-core || {{result|pass}} 2.8.0 || {{result|fail}}
| sinatra        || 1.0    || {{result|fail}} || {{result|fail}}
|}
|}
<references />

Revision as of 16:13, 3 August 2012

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

High Level Steps and Issues

  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 Gemfile
    • 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.
    • LDAP library: Upstream still uses ruby-net-ldap. This package has been obsoleted in Fedora by net-ldap. I don't know how much porting work this would involve.

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 missing
  • Pass - The package is present and versions differ from upstream
  • Pass - The package is present and versions match upstream

(FYI, the ordering in this table matches upstream's Gemfile.)

Gem Upstream Gemfile Fedora 17 EPEL 6
chronic 0.3.0
Warning warn
0.6.6
Fail fail
geoip 0.8.9
Fail fail
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
ruby-yadis 0.3.4
Fail fail
Fail fail
ruby-openid 2.1.8
Warning warn
2.1.7
Fail fail
rdiscount 1.3.1.1
Fail fail
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
Fail fail
Fail fail
paperclip 2.4.5
Fail fail
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
Fail fail
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
Fail fail
Fail fail
[1] [2]
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
Fail fail
Fail fail
acts-as-taggable-on 2.0.6
Fail fail
Fail fail
will_paginate 2.3.15
Warning warn
3.0.2
Fail fail
hodel_3000_compliant_logger 0.1.0
Fail fail
Fail fail
ruby-net-ldap 0.0.4
Fail fail
Use net-ldap
Fail fail
Use net-ldap
capillary 1.0.0
Fail fail
Fail fail
nokogiri 1.5.0
Warning warn
1.5.5
Warning warn
1.4.3.1
exception_notification 1.0.20090728
Fail fail
Fail fail
rubygem-revo-ssl_requirement 1.1.0
Fail fail
Fail fail
rubygem-ruby-hmac 0.4.0
Warning warn
unneeded
Fail fail
foreman* 0.41.0
Fail fail
Fail fail
stompserver* 0.9
Fail fail
Fail fail
thin* 1.2
Warning warn
1.3.1
Warning warn
1.2.8
proxymachine* 1.2
Warning warn
1.3.1
Warning warn
1.2.8
rake* 0.8.7
Warning warn
0.9.2.2
Pass pass
0.8.7
json 1.5.4
Warning warn
(not needed)
Warning warn
1.4.6
resque 1.9.8
Fail fail
Fail fail
SystemTimer 1.2.3
Warning warn
(gone from Ruby?)
Fail fail
stomp 1.1
Warning warn
1.2.2
Warning warn
1.1.8
activemessaging 0.7.1 (gone from rails?)
Fail fail



Other deps, not explicitly listed in Gemfile

Gem Upstream Gemfile Fedora 17 EPEL 6
ffi 1.0.9
Pass pass
1.0.9
Fail fail
childprocess 0.2.1
Warning warn
0.2.0
Fail fail
json_pure 1.5.0
Warning warn
1.6.3
Warning warn
1.6.3
rubyzip 0.9.4
Pass pass
0.9.4
Fail fail
selenium-webdriver 2.4.0
Warning warn
2.3.2
Fail fail
xpath 0.1.4
Pass pass
0.1.4
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
rubyforge 2.0.4
Pass pass
2.0.4
Fail fail
eventmachine 0.12.10
Pass pass
0.12.10
Pass pass
0.12.10
factory_girl 1.3.3
Warning warn
2.3.2
Fail fail
thor 0.14.6
Pass pass
0.14.6
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?)
mocha 0.9.10
Warning warn
0.11.0
Warning warn
0.9.8
proxymachine 1.2.4
Fail fail
Fail fail
redis 2.2.0
Fail fail
Fail fail
redis-namespace 0.7.0
Fail fail
Fail fail
sinatra 1.0
Fail fail
Fail fail
  1. Riddle 1.5.1 requires rake 0.9.2. RHEL 6 Base has 0.8.7-2.1.
  2. Riddle 1.5.1 requires rspec 2.5.0. RHEL 6 EPEL has 1.3.0-2.