プロジェクト

全般

プロフィール

致命的 #525

完了

Debian Squeezeでmikutterが起動しない

Satoshi Okuno さんが11年以上前に追加. 11年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2012-10-07
期日:
進捗率:

0%

プラグイン名:

説明

おはようございます。

Debian Squeeze(ruby 1.9.2p0)にてmikutterを起動すると、プラグイン周り(openimg、search、activity他多数)で例外(Name Error)が発生してmikutterが起動しません。

Plugin.create内でGtk::で始まるネームスペースを指定した際に、Plugin::Gtk::と解釈されてしまうため、クラスを見つけられないようです。
(Xebuntuの1.9.3p0やSqueeze上で野良コンパイルした1.9.3p183では発生しないので、1.9.3で何かが起きたみたいです。)

回避策は、::Gtk::の様に絶対パス?指定することです。

ひと通り上記の回避策を行ったpatchを添付します。
(単純置換→動作確認の流れを取ったので、コメント部分やPlugin.create外のGtk::も書き変わってます。)

触り切れていない機能もある気がするので、Debian使いの方は一度使って頂きたいです。


ファイル

a.diff (64.8 KB) a.diff Satoshi Okuno, 2012-10-07 08:12

toshi_a 初音 さんが11年以上前に更新

  • 担当者toshi_a 初音 にセット

まだよく調べていませんが、特定の環境でトップレベルのGtkモジュール以下の定数が見つけられないようです。rubyのバージョンではないかと思いますが、今のところ意味のある報告をもらえた事例はいずれもDebian squeezeでした。こちらでも環境を作って調査してみます。
起動しない環境では、今回から、Plugin::Gtkというモジュールが追加されたので、そちらを参照していると思われます。修正していただいたとおり、トップレベルのGtkモジュールを参照するなら左辺のない::演算子をつけるべきだと思います。これは、通常のプラグインはトップレベルのGtkを基本的に使わないはずだからです。Plugin::GUIにconst_missingを定義する方法も使えそうですが、ちょっと対応は考えます。

toshi_a 初音 さんが11年以上前に更新

  • ステータスパッチ適用待ち から レビュー待ち に変更

こちらでもDebian squeezeをVirtualBox上にインストールして再現することが出来ました。
もらったパッチで問題ないことは確認したのですが、スコープがPluginでなければトップレベルから指定する必要はないので、そのまま取り込まずに一つひとつ確認して必要なところだけを書き換えました。いくつかそれに付随してパッチにはない変更もしてますが、基本的には削っただけです。
こちらでも充分確認したつもりですが、念のためそちらでも動作チェックをお願いします。

toshi_a 初音 さんが11年以上前に更新

  • 担当者toshi_a 初音 から Satoshi Okuno に変更

Satoshi Okuno さんが11年以上前に更新

  • ステータスレビュー待ち から 解決 に変更

お疲れ様でした。

思いつく分一通りの機能を動作させて、取り敢えず問題ないようです。
しばらく使い続けてみます。

toshi_a 初音 さんが11年以上前に更新

  • ステータス解決 から 終了 に変更

他の形式にエクスポート: Atom PDF