• 作成:

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を書いてほしい.