diff options
author | tsutsui <tsutsui@pkgsrc.org> | 2017-06-10 09:45:33 +0000 |
---|---|---|
committer | tsutsui <tsutsui@pkgsrc.org> | 2017-06-10 09:45:33 +0000 |
commit | b7e39928e4e0cf42a1f7b113331120e583b44e9f (patch) | |
tree | a390c6c00ccdfac9de8d1630e9a5456ab9fd1501 /net/mikutter | |
parent | e697d03a5d5521b26ce24ecd88d79ee27dd41a49 (diff) | |
download | pkgsrc-b7e39928e4e0cf42a1f7b113331120e583b44e9f.tar.gz |
Update mikutter to 3.5.8.
pkgsrc changes:
- pull upstream fix for redmine ticket #1031 (twitpic gzipped xfer)
- pull changes to use delayer-deferred 2.0.0 for redmine ticket
#916 (extra follow/follower activities) and
#995 (abnormal cpu load with delayer-deferred 1.1.0)
Upstream changes:
- ruby-gnome2 3.1.6
- subcommands that create spec files don't accept . as a pathname
- free memories on loading images earlier
- avoid to use deprecated Gdk::PixbufLoader
Diffstat (limited to 'net/mikutter')
-rw-r--r-- | net/mikutter/Makefile | 9 | ||||
-rw-r--r-- | net/mikutter/distinfo | 19 | ||||
-rw-r--r-- | net/mikutter/patches/patch-Gemfile | 16 | ||||
-rw-r--r-- | net/mikutter/patches/patch-core_boot_delayer.rb | 39 | ||||
-rw-r--r-- | net/mikutter/patches/patch-core_lib_mikutwitter_api__shortcuts.rb | 65 | ||||
-rw-r--r-- | net/mikutter/patches/patch-core_mui_gtk__inneruserlist.rb | 21 | ||||
-rw-r--r-- | net/mikutter/patches/patch-core_mui_gtk__userlist.rb | 44 | ||||
-rw-r--r-- | net/mikutter/patches/patch-core_plugin_photo__support_photo__support.rb | 19 | ||||
-rw-r--r-- | net/mikutter/patches/patch-mikutter.rb | 37 |
9 files changed, 251 insertions, 18 deletions
diff --git a/net/mikutter/Makefile b/net/mikutter/Makefile index a26ae28c3ae..7f3614fa896 100644 --- a/net/mikutter/Makefile +++ b/net/mikutter/Makefile @@ -1,9 +1,8 @@ -# $NetBSD: Makefile,v 1.141 2017/05/30 15:18:31 taca Exp $ +# $NetBSD: Makefile,v 1.142 2017/06/10 09:45:33 tsutsui Exp $ # -DISTNAME= mikutter.3.5.7 +DISTNAME= mikutter.3.5.8 PKGNAME= ${RUBY_PKGPREFIX}-${DISTNAME:S/./-/} -PKGREVISION= 1 CATEGORIES= net MASTER_SITES= http://mikutter.hachune.net/bin/ @@ -15,7 +14,7 @@ LICENSE= mit AND cc-by-sa-v3.0 .include "../../lang/ruby/rubyversion.mk" DEPENDS+= ${RUBY_PKGPREFIX}-pluggaloid>=1.1.1:../../net/ruby-pluggaloid -DEPENDS+= ${RUBY_PKGPREFIX}-gnome2-gtk>=3.1.1:../../x11/ruby-gnome2-gtk +DEPENDS+= ${RUBY_PKGPREFIX}-gnome2-gtk>=3.1.6:../../x11/ruby-gnome2-gtk DEPENDS+= ${RUBY_PKGPREFIX}-gettext>=3.0.1:../../devel/ruby-gettext DEPENDS+= ${RUBY_PKGPREFIX}-oauth>=0.5.1:../../security/ruby-oauth DEPENDS+= ${RUBY_PKGPREFIX}-addressable>=2.3:../../net/ruby-addressable @@ -23,7 +22,7 @@ DEPENDS+= ${RUBY_PKGPREFIX}-memoist-[0-9]*:../../devel/ruby-memoist DEPENDS+= ${RUBY_PKGPREFIX}-hmac>=0.4:../../security/ruby-hmac DEPENDS+= ${RUBY_PKGPREFIX}-typed-array>=0.1:../../misc/ruby-typed-array DEPENDS+= ${RUBY_PKGPREFIX}-delayer-[0-9]*:../../devel/ruby-delayer -DEPENDS+= ${RUBY_PKGPREFIX}-delayer-deferred>=1.0.4:../../devel/ruby-delayer-deferred +DEPENDS+= ${RUBY_PKGPREFIX}-delayer-deferred>=2.0.0:../../devel/ruby-delayer-deferred DEPENDS+= ${RUBY_PKGPREFIX}-nokogiri-[0-9]*:../../textproc/ruby-nokogiri DEPENDS+= ${RUBY_PKGPREFIX}-httpclient-[0-9]*:../../www/ruby-httpclient DEPENDS+= ${RUBY_PKGPREFIX}-moneta>=0.7:../../databases/ruby-moneta diff --git a/net/mikutter/distinfo b/net/mikutter/distinfo index a57fe29ff67..f51097fe10f 100644 --- a/net/mikutter/distinfo +++ b/net/mikutter/distinfo @@ -1,10 +1,15 @@ -$NetBSD: distinfo,v 1.126 2017/04/08 07:44:23 tsutsui Exp $ +$NetBSD: distinfo,v 1.127 2017/06/10 09:45:33 tsutsui Exp $ -SHA1 (mikutter.3.5.7.tar.gz) = f42718db50e1810fa4891e8cb2b31e1f9109e1bf -RMD160 (mikutter.3.5.7.tar.gz) = dd5a42818429fb2a951bedd00a1f973ce53a76e5 -SHA512 (mikutter.3.5.7.tar.gz) = 4b84a5681930e6b4463eff87555bdcae6d07ca7318d25906db13af519e7de47038e942aa861ed41c469725cdeb4a2ed254e791b7f7c68d50f5e7e2cae9fd5b10 -Size (mikutter.3.5.7.tar.gz) = 3743921 bytes +SHA1 (mikutter.3.5.8.tar.gz) = 2d4a64632ebc9170013a3568264c136c639a4dc5 +RMD160 (mikutter.3.5.8.tar.gz) = e035e9d92acd37ba0ad20beb410197ba35e5a94c +SHA512 (mikutter.3.5.8.tar.gz) = 7e526e995cfd20f1ecb47f0fd657a1036132068ba947de29b3a548c58f86c0a1f71c0134ebbf5e9bb945e2f885af4aff82ea5250fee5ba9f94c6faa3f6007367 +Size (mikutter.3.5.8.tar.gz) = 2733956 bytes +SHA1 (patch-Gemfile) = 27cc7e1bea05a5a4205d4da89120da3519ddcee0 +SHA1 (patch-core_boot_delayer.rb) = 3070cd4966c509a2bb722d4baabcc1a7e7026b30 +SHA1 (patch-core_lib_mikutwitter_api__shortcuts.rb) = 36c96889e65ff312aa4e854509edfd0e75c59dd0 +SHA1 (patch-core_mui_gtk__inneruserlist.rb) = 552338b5029ca6236993b2c75f892a2b9fd64d2d +SHA1 (patch-core_mui_gtk__userlist.rb) = fc7a2d850e7e9ab4d5716c2534f991afbda88a7e SHA1 (patch-core_plugin_libnotify_rnotify.rb) = 0bb5630f4411d11ad188c722fb1d14e2d6748d17 SHA1 (patch-core_plugin_photo__support_Gemfile) = 754b96024904e2e2f55c83e88fd3c763eecf723c -SHA1 (patch-core_plugin_photo__support_photo__support.rb) = d119209d4de835e6d47d85c8ca5209d1f199bd9e -SHA1 (patch-mikutter.rb) = 637987302bfbf2903e59712df732e3bdc57768ee +SHA1 (patch-core_plugin_photo__support_photo__support.rb) = 182135fc0b46035c343c746ddba091d71cdc81f4 +SHA1 (patch-mikutter.rb) = b82a38101b94d9f00a998965b02f05ee3947fc73 diff --git a/net/mikutter/patches/patch-Gemfile b/net/mikutter/patches/patch-Gemfile new file mode 100644 index 00000000000..95d623b5fc6 --- /dev/null +++ b/net/mikutter/patches/patch-Gemfile @@ -0,0 +1,16 @@ +$NetBSD: patch-Gemfile,v 1.1 2017/06/10 09:45:33 tsutsui Exp $ + +- use delayer-deferred 2.0.x for upstream ticket #995 + https://dev.mikutter.hachune.net/issues/995 + +--- Gemfile.orig 2017-06-10 02:41:13.000000000 +0000 ++++ Gemfile +@@ -16,7 +16,7 @@ group :default do + gem 'typed-array', '~> 0.1' + gem 'delayer', '~> 0.0' + gem 'pluggaloid', '>= 1.1.1', '< 2.0' +- gem 'delayer-deferred', '>= 1.0.4', '< 2.0' ++ gem 'delayer-deferred', '>= 2.0', '< 3.0' + gem 'twitter-text', '1.14.2' + end + diff --git a/net/mikutter/patches/patch-core_boot_delayer.rb b/net/mikutter/patches/patch-core_boot_delayer.rb new file mode 100644 index 00000000000..9f7f330ad32 --- /dev/null +++ b/net/mikutter/patches/patch-core_boot_delayer.rb @@ -0,0 +1,39 @@ +$NetBSD: patch-core_boot_delayer.rb,v 1.1 2017/06/10 09:45:33 tsutsui Exp $ + +- pull fix to use delayer-deferred 2.x for upstream ticket #995 + https://dev.mikutter.hachune.net/issues/995 + +--- core/boot/delayer.rb.orig 2017-06-10 01:11:51.000000000 +0000 ++++ core/boot/delayer.rb +@@ -13,7 +13,7 @@ Delayer.default = Delayer.generate_class + + Deferred = Delayer::Deferred::Deferred + +-module Delayer::Deferred::Deferredable ++module Delayer::Deferred::Deferredable::Chainable + # エラーをキャッチして、うまい具合にmikutterに表示する。 + # このあとにdeferredをくっつけることもできるが、基本的にはdeferredチェインの終了の時に使う。 + # なお、terminateは受け取ったエラーを再度発生させるので、terminateでエラーを処理した後に特別なエラー処理を挟むこともできる +@@ -23,7 +23,7 @@ module Delayer::Deferred::Deferredable + # ==== Return + # Deferred + def terminate(message = nil, &message_generator) +- self.trap{|exception| ++ defer = self.trap{|exception| + message = message_generator.call(exception) if message_generator + case exception + when MikuTwitter::RateLimitError +@@ -35,6 +35,13 @@ module Delayer::Deferred::Deferredable + else + begin + notice exception ++ if Mopt.debug ++ if command_exist?('dot') ++ notice "[[#{defer.graph_draw}]]" ++ else ++ notice defer.graph ++ end ++ end + if(message) + if(exception.is_a?(Net::HTTPResponse)) + Plugin.activity :error, "#{message} (#{exception.code} #{exception.body})" diff --git a/net/mikutter/patches/patch-core_lib_mikutwitter_api__shortcuts.rb b/net/mikutter/patches/patch-core_lib_mikutwitter_api__shortcuts.rb new file mode 100644 index 00000000000..26088547f55 --- /dev/null +++ b/net/mikutter/patches/patch-core_lib_mikutwitter_api__shortcuts.rb @@ -0,0 +1,65 @@ +$NetBSD: patch-core_lib_mikutwitter_api__shortcuts.rb,v 1.1 2017/06/10 09:45:33 tsutsui Exp $ + +- pull upstream fixes for ticket #916 + https://dev.mikutter.hachune.net/issues/916 + +--- core/lib/mikutwitter/api_shortcuts.rb.orig 2017-06-10 01:11:51.000000000 +0000 ++++ core/lib/mikutwitter/api_shortcuts.rb +@@ -52,10 +52,10 @@ module MikuTwitter::APIShortcuts + defcursorpager :followers_id, 'followers/ids', :paged_ids, :ids, id: :user_id + + def followings(args = {}) +- idlist2userlist(friends_id(RELATIONAL_DEFAULT.merge(args))) end ++ idlist2userlist(friends_id(RELATIONAL_DEFAULT.merge(args)), cache: args[:cache]) end + + def followers(args = {}) +- idlist2userlist(followers_id(RELATIONAL_DEFAULT.merge(args))) end ++ idlist2userlist(followers_id(RELATIONAL_DEFAULT.merge(args)), cache: args[:cache]) end + + def direct_messages(args = {}) + (self/:direct_messages).direct_messages({:count => 200}.merge(args)) end +@@ -258,21 +258,30 @@ module MikuTwitter::APIShortcuts + cursor_pager(api, parser, key, args.merge(cursor: res[:next_cursor])).next{ |nex| + res[key] + nex } end } end + +- def idlist2userlist(deferred) +- deferred.next{ |ids| +- promise = Deferred.new(true) +- Thread.new{ +- begin +- promise.call(User.findbyid(ids)) +- rescue Exception => e +- promise.fail(e) end } +- promise.next{ |users| +- if(users.size != ids.size) +- Deferred.when(*(ids - users.map{ |u| u[:id] }).each_slice(100).map{ |segment| +- user_lookup(id: segment.join(',')).trap{ |e| warn e; [] } }).next{ |res| +- res.inject(users){ |a, b| a + b } } ++ def idlist2userlist(deferred, cache: :keep) ++ deferred.next do |ids| ++ detected = {} # {id => User} ++ lookups = Set.new # [id] ++ ids.each do |id| ++ user = User.findbyid(id, Retriever::DataSource::USE_LOCAL_ONLY) ++ if user.is_a? User ++ detected[id] = user + else +- users end } } end ++ lookups << id ++ end ++ end ++ defer = lookups.each_slice(100).map{|lookup_chunk| ++ user_lookup(id: lookup_chunk.join(','), cache: cache).next{|users| ++ users.each do |user| ++ detected[user.id] = user ++ end ++ } ++ } ++ Delayer::Deferred.when(*defer).next do ++ ids.map{|id| detected[id] } ++ end ++ end ++ end + + # upload.twitter.comに画像等をアップロードし、 + # アップロードしたファイルのmedia_idを返す。 diff --git a/net/mikutter/patches/patch-core_mui_gtk__inneruserlist.rb b/net/mikutter/patches/patch-core_mui_gtk__inneruserlist.rb new file mode 100644 index 00000000000..c2174de2cb4 --- /dev/null +++ b/net/mikutter/patches/patch-core_mui_gtk__inneruserlist.rb @@ -0,0 +1,21 @@ +$NetBSD: patch-core_mui_gtk__inneruserlist.rb,v 1.1 2017/06/10 09:45:33 tsutsui Exp $ + +- pull upstream fixes for ticket #916 + https://dev.mikutter.hachune.net/issues/916 + +--- core/mui/gtk_inneruserlist.rb.orig 2017-06-10 01:11:51.000000000 +0000 ++++ core/mui/gtk_inneruserlist.rb +@@ -32,10 +32,10 @@ class Gtk::InnerUserList < Gtk::TreeView + }.reject{|user| + exist_users.include?(user) + }.deach{|user| ++ break if destroyed? + iter = model.append +- iter[COL_ICON] = user.icon.load_pixbuf(width: 24, height: 24){|pixbuf| +- iter[COL_ICON] = pixbuf unless destroyed? +- } ++ # ここではCOL_ICONを埋めず、nilのままにしてアイコンを表示しない。 ++ # アイコンは Gtk::UserList#emit_expose_user で、カラムが表示された時に初めて埋める + iter[COL_SCREEN_NAME] = user[:idname] + iter[COL_NAME] = user[:name] + iter[COL_USER] = user diff --git a/net/mikutter/patches/patch-core_mui_gtk__userlist.rb b/net/mikutter/patches/patch-core_mui_gtk__userlist.rb new file mode 100644 index 00000000000..9ffc23bb93b --- /dev/null +++ b/net/mikutter/patches/patch-core_mui_gtk__userlist.rb @@ -0,0 +1,44 @@ +$NetBSD: patch-core_mui_gtk__userlist.rb,v 1.1 2017/06/10 09:45:33 tsutsui Exp $ + +- pull upstream fixes for ticket #916 + https://dev.mikutter.hachune.net/issues/916 + +--- core/mui/gtk_userlist.rb.orig 2017-06-10 01:11:51.000000000 +0000 ++++ core/mui/gtk_userlist.rb +@@ -27,6 +27,10 @@ class Gtk::UserList < Gtk::EventBox + scrollbar = ::Gtk::VScrollbar.new(@listview.vadjustment) + add Gtk::HBox.new(false, 0).add(@listview).closeup(scrollbar) + @listview.ssc(:row_activated, &self.class.row_activated) ++ @listview.ssc(:expose_event){ ++ emit_expose_user ++ false ++ } + end + + def each +@@ -68,5 +72,25 @@ class Gtk::UserList < Gtk::EventBox + @listview.reorder(user) + self end + ++ private ++ ++ def emit_expose_user ++ if @listview.visible_range ++ current, last = @listview.visible_range ++ Enumerator.new{|y| ++ while (current <=> last) < 1 ++ y << @listview.model.get_iter(current) ++ break if not current.next! ++ end ++ }.reject{|iter| ++ iter[Gtk::InnerUserList::COL_ICON] ++ }.each do |iter| ++ iter[Gtk::InnerUserList::COL_ICON] = iter[Gtk::InnerUserList::COL_USER].icon.load_pixbuf(width: 24, height: 24){|pixbuf| ++ iter[Gtk::InnerUserList::COL_ICON] = pixbuf unless @listview.destroyed? ++ } ++ end ++ end ++ end ++ + end + diff --git a/net/mikutter/patches/patch-core_plugin_photo__support_photo__support.rb b/net/mikutter/patches/patch-core_plugin_photo__support_photo__support.rb index 2594bf0503c..2d71b0579c5 100644 --- a/net/mikutter/patches/patch-core_plugin_photo__support_photo__support.rb +++ b/net/mikutter/patches/patch-core_plugin_photo__support_photo__support.rb @@ -1,8 +1,10 @@ -$NetBSD: patch-core_plugin_photo__support_photo__support.rb,v 1.3 2016/06/04 02:28:25 tsutsui Exp $ +$NetBSD: patch-core_plugin_photo__support_photo__support.rb,v 1.4 2017/06/10 09:45:33 tsutsui Exp $ - temporary workaround to skip totorijp gems (sorry, @toshi_a) +- pull fixes for upstream ticket #1031 + https://dev.mikutter.hachune.net/issues/1031 ---- core/plugin/photo_support/photo_support.rb.orig 2016-05-28 16:42:44.000000000 +0000 +--- core/plugin/photo_support/photo_support.rb.orig 2017-06-10 01:11:51.000000000 +0000 +++ core/plugin/photo_support/photo_support.rb @@ -1,7 +1,7 @@ # coding: utf-8 @@ -13,7 +15,18 @@ $NetBSD: patch-core_plugin_photo__support_photo__support.rb,v 1.3 2016/06/04 02: module Plugin::PhotoSupport INSTAGRAM_PATTERN = %r{\Ahttps?://(?:instagr\.am|(?:www\.)?instagram\.com)/p/([a-zA-Z0-9_\-]+)/} -@@ -181,9 +181,14 @@ Plugin.create :photo_support do +@@ -25,8 +25,9 @@ end + + Plugin.create :photo_support do + # twitpic +- defimageopener('twitpic', %r<^http://twitpic\.com/[a-zA-Z0-9]+>) do |display_url| ++ defimageopener('twitpic', %r<^https?://twitpic\.com/[a-zA-Z0-9]+>) do |display_url| + connection = HTTPClient.new ++ connection.transparent_gzip_decompression = true + page = connection.get_content(display_url) + next nil if page.empty? + doc = Nokogiri::HTML(page) +@@ -181,9 +182,14 @@ Plugin.create :photo_support do # totori.dip.jp defimageopener('totori.dip.jp', %r#\Ahttp://totori\.dip\.jp/?\Z#) do |display_url| diff --git a/net/mikutter/patches/patch-mikutter.rb b/net/mikutter/patches/patch-mikutter.rb index 577c7613f06..a8c1925bd97 100644 --- a/net/mikutter/patches/patch-mikutter.rb +++ b/net/mikutter/patches/patch-mikutter.rb @@ -1,9 +1,11 @@ -$NetBSD: patch-mikutter.rb,v 1.3 2017/04/01 12:35:26 tsutsui Exp $ +$NetBSD: patch-mikutter.rb,v 1.4 2017/06/10 09:45:33 tsutsui Exp $ - pkgsrc can handle location of ruby binary - http://dev.mikutter.hachune.net/issues/889 + https://dev.mikutter.hachune.net/issues/889 +- pull fix to use delayer-deferred 2.x for upstream ticket #995 + https://dev.mikutter.hachune.net/issues/995 ---- mikutter.rb.orig 2017-04-01 08:55:38.000000000 +0000 +--- mikutter.rb.orig 2017-06-10 01:11:51.000000000 +0000 +++ mikutter.rb @@ -1,7 +1,5 @@ -#!/bin/sh @@ -14,3 +16,32 @@ $NetBSD: patch-mikutter.rb,v 1.3 2017/04/01 12:35:26 tsutsui Exp $ =begin rdoc = mikutter - the moest twitter client Copyright (C) 2009-2017 Toshiaki Asai +@@ -68,12 +66,12 @@ def boot!(profile) + rescue => exception + into_debug_mode(exception) + notice "catch exception `#{exception.class}'" +- raise exception ++ raise + rescue Exception => exception + notice "catch exception `#{exception.class}'" + exception = Mainloop.exception_filter(exception) + notice "=> `#{exception.class}'" +- raise exception end ++ raise end + exception = Mainloop.exception_filter(nil) + if exception + notice "raise mainloop exception `#{exception.class}'" +@@ -82,6 +80,13 @@ def boot!(profile) + + def error_handling!(exception) + notice "catch #{exception.class}" ++ if Mopt.debug && exception.respond_to?(:deferred) && exception.deferred ++ if command_exist?('dot') ++ notice "[[#{exception.deferred.graph_draw}]]" ++ else ++ notice exception.deferred.graph ++ end ++ end + File.open(File.expand_path(File.join(Environment::TMPDIR, 'crashed_exception')), 'w'){ |io| Marshal.dump(exception, io) } + raise exception end + |