Fedora 12上でRuby 1.9.1のビルド
Fedora 12上でRuby 1.9.1-p376のビルドを試みたところ、コンパイルエラーが発生しました。Fedora 12では、OpenSSLのバージョンが従来の0.9.8系から1.0 (beta) に置き換わった影響で、そのままではRubyのビルドに失敗するようです。
makeのログから抜粋:
make[1]: ディレクトリ `/home/m-kawato/src/ruby-1.9.1-p376/ext/openssl' に入ります ... ossl_pkcs7.c:575: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
【参考1】 http://cohakim.wordpress.com/2009/11/25/fedora-12-%E3%81%A7-ruby-enterprise-edition-%E3%82%92%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%99%E3%82%8B/
【参考2】 http://redmine.ruby-lang.org/issues/show/2022
【参考2】中に、Ruby 1.9.1/1.8.7に適用可能な OpenSSL 1.0環境向けパッチが提供されている (投稿日: 2009年09月01日) ので、これを適用します。
該当箇所を ruby-openssl.patch のような名前で保存して、以下のようにパッチを適用します。
~/src/ruby-1.9.1-p376> patch -p0 < ruby-openssl.patch patching file ext/openssl/ossl.c patching file ext/openssl/ossl_pkcs7.c patching file ext/openssl/ossl_ssl.c Hunk #1 succeeded at 89 (offset -8 lines). Hunk #2 succeeded at 100 (offset -8 lines). Hunk #3 succeeded at 149 (offset -8 lines). Hunk #4 succeeded at 592 (offset -77 lines). Hunk #5 succeeded at 1220 (offset -205 lines).
ついでに、2009年09月29日投稿の1行パッチも適用しておきます (こちらは手動)。
2009年11月26日の投稿、
Fedora 12 uses openssl 1.0 Beta 3; So Fedora people can't build ruby now.
が若干気になりますが、とりあえずRuby 1.9.1のビルドには成功しました。
(hello worldとmake testに通っただけなので、opensslライブラリが正常に動作するかどうかは未確認)