環境対応 #1260
完了gtk2 3.2.7を利用する
0%
説明
#1221-5 の修正を含むruby-gnome2 3.2.6/3.2.7がリリースされたので、3.2.7が利用できるか検証して適用する。
3.2.6 NEWS
https://github.com/ruby-gnome2/ruby-gnome2/blob/3.2.6/NEWS
3.2.7 NEWS
https://github.com/ruby-gnome2/ruby-gnome2/blob/3.2.7/NEWS
ファイル
関連するチケット
Akira Ouchi さんが6年以上前に更新
core/plugin/gtk2/Gemfileを書き換えたあと、bundleを実行したところgtk2のGem以外がインストールされませんでした。
$ bundle Your Gemfile lists the gem httpclient (>= 0) more than once. You should probably keep only one of them. While it's not a problem now, it could cause errors if you change the version of one of them later. Fetching gem metadata from https://rubygems.org/................ Resolving dependencies... Using rake 10.5.0 Using public_suffix 3.0.2 Using addressable 2.5.2 Using bundler 1.16.1 Using safe_yaml 1.0.4 Using crack 0.4.3 Using delayer 0.0.2 Using delayer-deferred 2.0.0 Using diva 0.3.2 Using egison 1.0.0 Using eventmachine 1.2.7 Using multipart-post 2.0.0 Using faraday 0.15.1 Using faraday_middleware 0.10.1 Using websocket-extensions 0.1.3 Using websocket-driver 0.7.0 Using faye-websocket 0.10.7 Using locale 2.1.2 Using text 1.3.1 Using gettext 3.0.9 Fetching gtk2 3.2.6 (was 3.2.1) Installing gtk2 3.2.6 (was 3.2.1) with native extensions Using hashdiff 0.3.7 Using httpclient 2.8.3 Using idn-ruby 0.1.0 Using instance_storage 1.0.0 Using json_pure 1.8.6 Using matsuya 0.1.1 Using memoist 0.16.0 Using metaclass 0.0.4 Using mini_portile2 2.3.0 Using mocha 0.14.0 Using moneta 1.0.0 Using multi_json 1.13.1 Using nokogiri 1.8.2 Using oauth 0.5.4 Using pluggaloid 1.1.1 Using power_assert 1.1.1 Using ruby-hmac 0.4.0 Using ruby-prof 0.17.0 Using slack-api 1.6.0 Using terminal-notifier 2.0.0 Using test-unit 3.2.8 Using totoridipjp 0.1.0 Using unf_ext 0.0.7.5 Using unf 0.1.4 Using twitter-text 2.1.0 Using typed-array 0.1.2 Using watch 0.1.0 Using webmock 1.24.6 Bundle complete! 27 Gemfile dependencies, 49 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed.
この状態で起動しても、glib2がないと言われて起動に失敗します。
akkie@172-16-5-168 ~/mikutter (master)$ ruby mikutter.rb --debug notice: {MIKUTTER_DIR}/core/miquire_plugin.rb:155:in `block in load': plugin loaded: {MIKUTTER_DIR}/core/plugin/gtk/gtk.rb Traceback (most recent call last): 40: from mikutter.rb:42:in `<main>' 39: from /Users/akkie/mikutter/core/miquire.rb:18:in `miquire' 38: from /Users/akkie/mikutter/core/miquire.rb:75:in `miquire' 37: from /Users/akkie/mikutter/core/miquire.rb:75:in `each' 36: from /Users/akkie/mikutter/core/miquire.rb:76:in `block in miquire' 35: from /Users/akkie/mikutter/core/miquire.rb:95:in `file_or_directory_require' 34: from /Users/akkie/mikutter/core/miquire.rb:98:in `miquire_original_require' 33: from /Users/akkie/mikutter/core/miquire.rb:98:in `require' 32: from /Users/akkie/mikutter/core/boot/load_plugin.rb:10:in `<top (required)>' 31: from /Users/akkie/mikutter/core/miquire_plugin.rb:96:in `load_all' 30: from /Users/akkie/mikutter/core/miquire_plugin.rb:36:in `each_spec' 29: from /Users/akkie/mikutter/core/miquire_plugin.rb:33:in `each' 28: from /Users/akkie/mikutter/core/miquire_plugin.rb:33:in `each' 27: from /Users/akkie/mikutter/core/miquire_plugin.rb:38:in `block in each_spec' 26: from /Users/akkie/mikutter/core/miquire_plugin.rb:98:in `block in load_all' 25: from /Users/akkie/mikutter/core/miquire_plugin.rb:146:in `load' 24: from /Users/akkie/mikutter/core/utils.rb:278:in `atomic' 23: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize' 22: from /Users/akkie/mikutter/core/utils.rb:278:in `block in atomic' 21: from /Users/akkie/mikutter/core/miquire_plugin.rb:147:in `block in load' 20: from /Users/akkie/mikutter/core/miquire_plugin.rb:147:in `each' 19: from /Users/akkie/mikutter/core/miquire_plugin.rb:149:in `block (2 levels) in load' 18: from /Users/akkie/mikutter/core/miquire_plugin.rb:146:in `load' 17: from /Users/akkie/mikutter/core/utils.rb:278:in `atomic' 16: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize' 15: from /Users/akkie/mikutter/core/utils.rb:278:in `block in atomic' 14: from /Users/akkie/mikutter/core/miquire_plugin.rb:147:in `block in load' 13: from /Users/akkie/mikutter/core/miquire_plugin.rb:147:in `each' 12: from /Users/akkie/mikutter/core/miquire_plugin.rb:149:in `block (2 levels) in load' 11: from /Users/akkie/mikutter/core/miquire_plugin.rb:146:in `load' 10: from /Users/akkie/mikutter/core/utils.rb:278:in `atomic' 9: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize' 8: from /Users/akkie/mikutter/core/utils.rb:278:in `block in atomic' 7: from /Users/akkie/mikutter/core/miquire_plugin.rb:158:in `block in load' 6: from /Users/akkie/mikutter/core/miquire_plugin.rb:158:in `load' 5: from /Users/akkie/mikutter/core/plugin/gtk/gtk.rb:5:in `<top (required)>' 4: from /Users/akkie/mikutter/core/plugin/gtk/gtk.rb:5:in `require' 3: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gtk2-3.2.6/lib/gtk2.rb:11:in `<top (required)>' 2: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gtk2-3.2.6/lib/gtk2.rb:11:in `require' 1: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gtk2-3.2.6/lib/gtk2/base.rb:12:in `<top (required)>' /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gtk2-3.2.6/lib/gtk2/base.rb:12:in `require': cannot load such file -- glib2 (LoadError)
他の方もそうなるようであればruby-gnome側の問題かなと思います。
よくわかってないけど、gemspec周りがいじられているようです。。
(またなのか…?)
Akira Ouchi さんが6年以上前に更新
core/plugin/gtk2/Gemfileを以下の通り書きこんでbundleした結果動作しました。3.2.5の問題も解消されているようです。以下の通り書くべきなのかどうかが問題っぽい気がしますが。
source 'https://rubygems.org' gem 'atk', '3.2.6' gem 'cairo' gem 'cairo-gobject', '3.2.6' gem 'gdk_pixbuf2', '3.2.6' gem 'gio2', '3.2.6' gem 'glib2', '3.2.6' gem 'gobject-introspection', '3.2.6' gem 'gtk2', '3.2.6' gem 'pango', '3.2.6'
toshi_a 初音 さんが6年以上前に更新
前も同様の問題がありましたが、程なく次のリリースがあったため特に対応はしませんでした。
今回も上流のアップデートを待っても良いですが、直近のバージョンは相次いでmikutterでは問題が発生していて依然3.2.1を使っている状態なので、これだけでアップデートできるならやってしまってもいいかもしれません。
Izumi Tsutsui さんが6年以上前に更新
https://rubygems.org/ の表示でも Runtime Dependencies の表示が消えているので
明示的に upstream でバグっていますね……
https://rubygems.org/gems/gtk2/versions/3.2.5
https://rubygems.org/gems/gtk2/versions/3.2.6
以下の変更っぽいですが。
https://github.com/ruby-gnome2/ruby-gnome2/commit/54ad9751c34a19e1748ccd8cab424e4c83b2e8a4
Akira Ouchi さんが6年以上前に更新
- 題名 を gtk2 3.2.6を利用する から gtk2 3.2.7を利用する に変更
- 説明 を更新 (差分)
新しくチケット作るのあれだったのでタイトルかえました
Izumi Tsutsui さんが6年以上前に更新
pkgsrc も ruby-gnome2 3.2.7 にして、それで mikutter 3.7.1 は特に問題なく動いているようです
http://mail-index.netbsd.org/pkgsrc-changes/2018/06/09/msg176947.html
Izumi Tsutsui さんが6年以上前に更新
Izumi Tsutsui さんは書きました:
pkgsrc も ruby-gnome2 3.2.7 にして、それで mikutter 3.7.1 は特に問題なく動いているようです
http://mail-index.netbsd.org/pkgsrc-changes/2018/06/09/msg176947.html
ruby-gnome2 3.2.7 にすると 3.2.5 と比べて mikutter のメモリ消費量がかなり増えるような気がする、
という話があります。
https://social.mikutter.hachune.net/@tsutsuii/100181781857287528
Izumi Tsutsui
@tsutsuiimikutter 3.7.2 ではまだ検証していないのですが、 ruby-gnome2 3.2.5 と 3.2.7 とで mikutter を動かしてみると、 3.2.7 のほうが明らかにメモリ消費量の増え方が激しいですね……(起動後2時間でのなんとなくの比較)
2018年6月11日 2:44 · mikutter Worldon
https://social.mikutter.hachune.net/@tsutsuii/100181799514917663
Izumi Tsutsui
@tsutsuiitoshi_a 初音 感覚的な数字だけでちゃんと条件をそろえた記録ができていませんが
・3.2.5: 600MB くらいから始まって 4,5日経ってようやく 1GB 超えるかどうか(昔と比べるとかなり優秀)
・3.2.7: 起動して6時間で 2GBに迫っている(えっ、どういうこと)
みたいな印象
2018年6月11日 2:49 · mikutter Worldon
とりあえず ておくれ Live Image で
mikutter 3.7.2 + ruby-gnome2 3.2.5 の VM
mikutter 3.7.2 + ruby-gnome2 3.2.7 の VM
を作ってみたので同時実行でメモリ消費量を調べてみます。
開始早々差があるような気も……
なお、上記 pkgsrc の 3.2.5 の ruby-gnome2 には #1221#note-5 の修正も含まれています。
http://mail-index.netbsd.org/pkgsrc-changes/2018/05/26/msg176376.html
Izumi Tsutsui さんが6年以上前に更新
Izumi Tsutsui さんが6年以上前に更新
Izumi Tsutsui さんが6年以上前に更新
寝れないのでメモ
- upstream に issue 投げました
https://github.com/ruby-gnome2/ruby-gnome2/issues/1230 - bisect できないかとのことだったのでひたすらトライ
https://social.mikutter.hachune.net/@tsutsuii/100299627316297309
https://social.mikutter.hachune.net/@tsutsuii/100299723543315108
https://social.mikutter.hachune.net/@tsutsuii/100299888862385222
https://social.mikutter.hachune.net/@tsutsuii/100300071843482694
https://social.mikutter.hachune.net/@tsutsuii/100300149933113588
https://social.mikutter.hachune.net/@tsutsuii/100300239387355034
https://social.mikutter.hachune.net/@tsutsuii/100300331178566857 - 以下の2つのいずれか? と報告
https://github.com/ruby-gnome2/ruby-gnome2/commit/438be7c505f1f4f5a7e19235bc6d00f1b6d045f6
https://github.com/ruby-gnome2/ruby-gnome2/commit/2e1ce20ac6dceb151abb8978114e3a368676c051
https://github.com/ruby-gnome2/ruby-gnome2/issues/1230#issuecomment-401619864
3.2.7 + 上記前者の 438be7c の pango の変更(ファイル削除)を戻すと
メモリ消費について 3.2.5 と同様に戻るっぽいので、
各パッケージシステムで個別に暫定対処するならこれ?
https://social.mikutter.hachune.net/@tsutsuii/100300621463258235
ruby-gnome2 3.2.7 に対して https://github.com/ruby-gnome2/ruby-gnome2/commit/438be7c505f1f4f5a7e19235bc6d00f1b6d045f6 だけ元に戻す(≒再度追加する)だけでも解決する感じですが、ログとの相関がまったくなくて、中の人じゃないとさっぱり原理がわからない感じ
Izumi Tsutsui さんが6年以上前に更新
経過メモ¶
- upstream に issue 投げました
https://github.com/ruby-gnome2/ruby-gnome2/issues/1230
上記の報告に対する修正が以下
https://github.com/ruby-gnome2/ruby-gnome2/commit/8816bbd86de838a7de18df8649847fb6586ddb4d
が、上記を当てると mikutter で TL 表示した途端に ruby 自体が assertion で落ちるという現象になり
新たに issue 報告
https://github.com/ruby-gnome2/ruby-gnome2/issues/1231
更に上記の assertion の修正が以下
https://github.com/ruby-gnome2/ruby-gnome2/commit/ec4160b4f4c5432c6ff8a9e962e7ffeacfd48869
これで直っているというか、「mikutter のメモリ使用量が増加だけでなく減少もする」という事象も
観測されている感じ
https://social.mikutter.hachune.net/@tsutsuii/100316761415213526
Izumi Tsutsui
@tsutsuii
https://github.com/ruby-gnome2/ruby-gnome2/commit/ec4160b4f4c5432c6ff8a9e962e7ffeacfd48869
足りない気合を振り絞って ruby-gnome2 修正のテスト。メモリ使用量が増えたり減ったりして判定が難しいけれど、1分とかの単位で減るということは正しくGCされるようになったと考えるべきか
このままの状態で 3.2.8 が出れば今度こそ平和に適用できますかね……
Izumi Tsutsui さんが6年以上前に更新
3.2.8 出ましたが
https://github.com/ruby-gnome2/ruby-gnome2/releases/tag/3.2.8
gem がバグっているようなので 3.2.9 待ちということになりそうです。
https://github.com/ruby-gnome2/ruby-gnome2/issues/1236
3.2.6 からこのチケットを引っ張っていますが、
新しいチケットを起こすのは 3.2.9 が出てからですかね……