Bug #16490
closedmkmf.rbの非互換な変更
Description
tmailのrubygem 1.2.7.1をインストールする際に、
make "DESTDIR="
make: don't know how to make /usr/pkg/include/ruby-2.7.0/defines.h. Stop
といったエラーを起こします。Makefileの最後の依存関係の記述は
###
tmailscanner.o: tmailscanner.c $(hdrdir)/ruby.h $(arch_hdrdir)/ruby/config.h $(hdrdir)/defines.h Makefile
となっていますが、Ruby 2.6では$(hdrdir)/defines.h
ではなく$(hdrdir)/ruby/defines.h
となっていました。
なお、tmail側を見るとext/tmailscanner/tmail/depend
の内容が、
tmailscanner.o: tmailscanner.c $(hdrdir)/ruby.h $(topdir)/config.h $(hdrdir)/defines.h Makefile
となっていて、defines.h
だけ置き換えられていない様に見えます。
r 67033 のmkmf.rbのdepend_rules()に対する変更を戻すとRuby 2.6と同じ挙動になる様です。
Updated by hsbt (Hiroshi SHIBATA) over 4 years ago
- Subject changed from mkimf.rbの非互換な変更 to mkmf.rbの非互換な変更
Updated by jeremyevans0 (Jeremy Evans) about 3 years ago
Reverting the line removed from mkmf.rb in r67033 (3d1c86a26f0c96a9c1d0247b968aa96e6f3c30bb) allows for the tmail gem to install on the master branch. I've submitted a pull request for that: https://github.com/ruby/ruby/pull/4738
Updated by nobu (Nobuyoshi Nakada) about 3 years ago
- Status changed from Open to Third Party's Issue
depend
ファイルを直してコンパイルしてみてもエラーになりますので、tmail gem自体をもっと修正する必要があると思います。
tmailscanner.c:105:11: error: implicit declaration of function 'rb_get_kcode' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
tmp = rb_get_kcode();
^
Updated by taca (Takahiro Kambe) about 3 years ago
本件は少なくともRuby 2.7.3辺りでは起きなくなっていますので、チケット自体はcloseしていただいても問題ないと考えています。
dependファイルを直してコンパイルしてみてもエラーになりますので、
これは、コンパイラのオプションに-Werror付けている環境の問題と考えられます。
実際、-Werrorの付かない環境ではウォーニングを出すものの、正常にコンパイルは完了しています。
もちろん、ウォーニングを出さない様に修正すべきでしょうけれど。
(そもそも、tmailは現在はメンテされてるのでしょうか...?)