• 作成日時:
  • 更新日時:

mikutter-3.6.1.ebuildを書こうとしたけれどidn-ruby-0.1.0.ebuildが書けないので正常に動作するものが書けなかった

現在Gentooの公式portageリポジトリのmikutterは3.5.4-r1です.公式で提供しているdelayer-deferredの最新版に対応していないので古いものをインストールする奇妙な状況になっていました.

ならばとりあえず私のoverlayにmikutter-3.6.1を追加しようと思いました.

mikutter-3.6.1がdivaを要求して,divaがportageに存在しないためこれを追加する必要がありましたが,これ自体は他のfakegemを要求するebuildを参考にして簡単に追加できました.

というわけで起動するところまではすんなりいきました.mikutter自身の最小要求と依存関係の最大要求からruby 2.3でしか動かないことを突き止めたりする必要などがありましたが,些細なことです.

問題は起動した後クラッシュしてしまうことで,クラッシュする場所のgit logを見るとa7666e13 * twitter-text 2.1.0を要求 refs #1130らしいです.

なるほどportageのtwitter-textは1.14.7ですね.クラッシュするわけです.

というわけでtwitter-textの2.1.0を追加しようとして,その依存するライブラリのidn-rubyを追加するところで問題が起きました.

これまではrubyのgemをebuild化するのはpureなRubyライブラリだったので簡単にいきましたが,idn-rubyはC言語ライブラリのバインディングです.これを他のinherit ruby-fakegemするだけのようにebuild化してもライブラリがインストールされない.

RubyのC言語拡張ライブラリのgem関係などの仕様を把握していないのでidn-rubyをインストールされるようにebuild化する方法がわからなくて詰みました.

他のebuildを見てもよくわからない.gemのグローバル周りかなりつらい.

誰かidn-rubyのebuildを書いてほしい.