Rails 4.2.z からレガシーの mysql アダプタを外す PR を送った

Rails 4.2.z を Ruby 2.4.0-dev で動かそうとした場合に、Unified Integer の影響でいろいろと動かないわけだけど、最初に bundle install で native のエラーになる mysql への依存を切るコミットをバックポートして PR を送った。

github.com

mysql アダプタ自体を Ruby 2.4 の Unified Integer に対応することも考えたけれど、その他のメンテナンスまでを行うかと言われるとそんな気がしなかったのと、既に Rails 5 が依存を切っているので、その方針に乗っかった形になる。

ちなみに Rails 4.2.7.1 と ruby 2.4.0dev (2016-08-04 trunk 55812) の組み合わせで bundle install すると以下のようなエラーとなる。

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/koic/.rbenv/versions/2.4.0-dev/lib/ruby/gems/2.4.0/gems/mysql-2.9.1/ext/mysql_api
/Users/koic/.rbenv/versions/2.4.0-dev/bin/ruby -r ./siteconf20160812-60286-1e62436.rb extconf.rb
checking for mysql_ssl_set()... yes
checking for rb_str_set_len()... yes
checking for rb_thread_start_timer()... no
checking for mysql.h... yes
creating Makefile

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/koic/.rbenv/versions/2.4.0-dev/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-13/2.4.0-static/mysql-2.9.1/mkmf.log

current directory: /Users/koic/.rbenv/versions/2.4.0-dev/lib/ruby/gems/2.4.0/gems/mysql-2.9.1/ext/mysql_api
make "DESTDIR=" clean

current directory: /Users/koic/.rbenv/versions/2.4.0-dev/lib/ruby/gems/2.4.0/gems/mysql-2.9.1/ext/mysql_api
make "DESTDIR="
compiling mysql.c
mysql.c:1320:74: error: use of undeclared identifier 'rb_cFixnum'
        else if (argv[i] == rb_cNumeric || argv[i] == rb_cInteger || argv[i] == rb_cFixnum)
                                                                                ^
1 error generated.
make: *** [mysql.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/koic/.rbenv/versions/2.4.0-dev/lib/ruby/gems/2.4.0/gems/mysql-2.9.1 for inspection.
Results logged to /Users/koic/.rbenv/versions/2.4.0-dev/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-13/2.4.0-static/mysql-2.9.1/gem_make.out