バグ #1040
完了ユーザのプロフィールを開くと落ちる
説明
こんにちは.初めて投稿します.よろしくお願いします.
RubyとRuby/Gtk2のバージョンのせいかもしれませんが,プロフィールを開くとmikutterが落ちます.
エラーの内容は,uninitialized constant Pango::FontDescription::WEIGHT_BOLD (name error)というものです.
これに伴い./core/plugin/user_detail_view/user_detail_view.rbの298行目と299行目のPango::FontDescription::WEIGHT_BOLDとPango::AttrUnderline::SINGLEを削除したところ,動きはしましたが,見た目の変化はよくわかりませんでした.添付ファイルに変更箇所のスクリーンショットをつけます.
Rubyのバージョンは2.4.1p111,Ruby/Gtk2は3.1.3を使っております.また,mikutterのバージョンは3.5.7です,
ファイル
関連するチケット
toshi_a 初音 さんが7年以上前に更新
ググっても同様の問題は出てきませんね。
見た目の変化はよくわかりませんでした
定数名の通り、ユーザのスクリーンネームに下線を引くのと、太字にするためのコードです。ここを削除すると、これらの装飾が外れると思います。
gtk2 gemを3.1.1ではなく3.1.3に変更してみたところ、同様の問題が再現しました。mikutterではgtk2 gemは3.1.1にしか対応していないため、gtk2 gemのバージョンを合わせるか、見た目の些細な変化しかないのであれば、mikutter側が対応するまで説明にあったような修正を適用したものを利用してください。
調査結果¶
簡単に調査したところ、どうやらgtk2ではなく、pangoの問題のよう。
notice: {MIKUTTER_DIR}/core/boot/delayer.rb:37:in `block in terminate': uninitialized constant Pango::FontDescription::WEIGHT_BOLD Did you mean? Pango::Weight from {MIKUTTER_DIR}/core/plugin/user_detail_view/user_detail_view.rb:303:in `user_name' from {MIKUTTER_DIR}/core/plugin/user_detail_view/user_detail_view.rb:282:in `profile_head' from {MIKUTTER_DIR}/core/plugin/user_detail_view/user_detail_view.rb:49:in `show_profile' from {MIKUTTER_DIR}/core/plugin/user_detail_view/user_detail_view.rb:20:in `block (4 levels) in <top (required)>' from {MIKUTTER_DIR}/vendor/bundle/ruby/2.4.0/gems/delayer-deferred-1.1.1/lib/delayer/deferred/deferredable.rb:94:in `_execute' from {MIKUTTER_DIR}/vendor/bundle/ruby/2.4.0/gems/delayer-deferred-1.1.1/lib/delayer/deferred/deferredable.rb:72:in `block (3 levels) in _call' from {MIKUTTER_DIR}/vendor/bundle/ruby/2.4.0/gems/delayer-deferred-1.1.1/lib/delayer/deferred/deferredable.rb:71:in `catch' from {MIKUTTER_DIR}/vendor/bundle/ruby/2.4.0/gems/delayer-deferred-1.1.1/lib/delayer/deferred/deferredable.rb:71:in `block (2 levels) in _call' from {MIKUTTER_DIR}/vendor/bundle/ruby/2.4.0/gems/delayer-deferred-1.1.1/lib/delayer/deferred/deferred.rb:73:in `block (2 levels) in _gen_new_fiber' from {MIKUTTER_DIR}/vendor/bundle/ruby/2.4.0/gems/delayer-deferred-1.1.1/lib/delayer/deferred/deferred.rb:72:in `loop' from {MIKUTTER_DIR}/vendor/bundle/ruby/2.4.0/gems/delayer-deferred-1.1.1/lib/delayer/deferred/deferred.rb:72:in `block in _gen_new_fiber'
また、Ruby-GNOME2のWebページ を軽く見たところ、PangoがGIを使って書き直されたようで、今までの傾向から言っても定数名が大幅に変わっていそう。
Ruby/Pango
Improvements
Migrated to GObject Introspection bindings. [GitHub#1007][GitHub#1008][GitHub#1009][GitHub#1010] [GitHub#1011][Patch by cedlemo] [GitHub#1013][GitHub#1014][Patch by Detlef Wagner]
Gemfileではgtk2 gemは3.1.1に縛っているが、ディストリによっては最新の3.1.3を利用してしまうので、mikutter側も早く3.1.3を使うように変更したほうがよさそう。
toshi_a 初音 さんが7年以上前に更新
- 関連している バグ #1050: pango 3.1.1以前を利用していると、ユーザのプロフィールを開いたときにクラッシュする を追加