undefined

SPEED, SECURITY, SIMPLICITY

Subscribe to RSS feed

Posts tagged with "gpyp3"

aptリポジトリテスト

, ,

http://crckyl.ath.cx:8088/
http://crckyl.ath.cx:8088/apt/
gpyp用のdebパッケージ自動ビルドスクリプトを書いたので、とりあえずgpyp3のスナップショットビルドでaptリポジトリ作った。
lenny/squeeze/sid/hardy/jaunty/karmicの6種とi386/amd64の組み合わせで12種類作ったはいいけどテスト環境作るのが面倒で試せてない。deb系だけで仮想環境12個作るのは流石にちょっと…。
当面やめないと思うけど、自宅鯖なのでそのうちどっかに移すかも。

gpyp-3.8.1

gpyp-3.8.1リリース。
  • Growl対応(MacOSX)。
  • パネルのタブを削除するとクラッシュするバグ修正。
  • メモリリークを数カ所修正。
  • @{Channellist.clear}か@{Channellist.clear_ended}で終了済みチャンネルリストをクリアしようとすると再生リストがクリアされるバグ修正。

割と深刻なリークがあったので急ぎ気味に更新。たぶん安定版。
FreeBSD8.0はamd64版も動作テストしようと思ったけどportinstall gnome2が終わらなかったので今回はなし。

ほとんどテキストだからと余裕ぶっこいてたらサーバー容量食い潰して書き込めなくなった。古いoconfig.cssと2ch.net.jsの0xと1xをzipにまとめてなんとか凌いだけど、今後古いコンテンツは順次リストラしていくかも。
なんだかんだで5、6年使ってるけどそろそろ移転を考えてもいいかもしれない。ああめんどくさい。

gpyp-3.8

gpyp-3.8リリース。
  • 帯域チェックで再試可能かつuptest[remain]が1以上の時にタイマーが動作しないバグ修正。
  • 帯域チェックのメモリリーク修正。
  • 帯域チェックのテスト時のタイムアウト時間を60秒に変更。
  • 名前解決に失敗した時(DNSサーバに接続出来ない場合等)にクラッシュすることがあるバグたぶん修正。
  • 内臓コマンドに@{Channellist.clear_played}、@{Channellist.clear_ended}、@{Channellist.clear}、@{request_url}追加。
  • フィルタバーのUIを多少変更。
  • フィルタバーのコンテキストメニューからお気に入りのソートと背景色、文字色を変更する機能追加。
  • 一部の色設定がすぐに反映されないバグ修正。
  • 設定ダイアログをリメイク。2.12より古いgtkでlibglademmを要求しなくなった。
  • 検索バーのコンテキストメニューに「正規表現に変換」を追加。migemoモードでの使用を想定。
  • 全内蔵コマンドに共通のオプションを追加。詳細は内蔵コマンドを参照。
  • @{YP.}でのYP名の指定方法を変更。@{YP.YP名.reload}は@{YP.reload} --yp-name YP名とする。
  • @{Favorite.Rule.append_word}の仕様を全面的に変更。詳細は内蔵コマンドを参照。
  • お気に入りで検索ワードが空の場合にターゲット設定に関わらずマッチしていた仕様を、反転にチェックが入っていなければマッチしないように変更。
  • コマンド実行時のプレフィクスを指定するオプション追加。デフォルトは「exec 」。
  • 3個以上のプレイヤーを登録出来るようにした。「A」は自動再生コマンド。
  • 特別メニューの仕組み追加。今のところ「他のプレイヤーで再生」のみ。
  • @{play2}コマンドを廃止。かわりに共通オプションの--playerでプレイヤーを指定出来る。
  • 初期設定ダイアログ廃止。
  • 子プロセスが外部からシグナルを受けて終了した場合も不正な終了とみなすように変更。gpypからシグナルを送信した場合はこれに含まない。
  • メニュー等でアイコンテーマに含まれるアイコン名やファイルパスを直接指定する機能追加。
  • 帯域チェックでPOST時にContent-Typeを指定するように変更。
  • URLパーサを書き直し。エラーチェックが多少厳密になった。
  • 通信周りを書き直し。HTTPのリダレクトをサポート。
  • 放置状態でメンテナンス出来てなかったプラグインとWebkitとlibvteサポートを完全に削除。
  • コマンドでのみ使用可能な変数に%{YP.url_base}/%{YP.url_dir}/%{Path.home}/%{Path.Gpyp.*}追加。
  • MacOSX SnowLeopardで一応動作するようになった(X11)。
  • LANG=Cでクラッシュするバグ修正(UTF-8のログをそのまま出力するように変更)。
  • ウィンドウをリサイズ不可にする機能追加。
  • HTTPのBasic認証をサポート。http://id:password@host/path形式のURLで使用出来る。
  • デフォルトの録画コマンドをmplayerからmencoder -noidxに変更。
  • 子プロセスリストでツールチップを有効にした。
  • 試験的にPeerCastサーバのリレーを操作するGUIを追加。全ての機能を利用するにはPeerCast側にパッチをあてる必要がある。
  • チャンネルリストのスクロール位置復元とツールチップの動作を改良。
  • 設定ファイルの仕様変更。ツールチップの色設定が引き継がれない。
  • パネルに表示するタブを任意に選択出来るようにした。
  • パネルの位置やタブの並びを任意に変更出来るようにした。
  • フィルタバーでフィルタが一つだけ選択されている時、ホイールスクロールで前後のフィルタを選択出来るようにした。
  • お気に入りで背景色が指定されていない場合にgtkに指定されている背景色を使用するように変更。黒系の色を自然に使えるようになった。

設定ダイアログとかHTTP通信とか全面書き直した箇所がいくつか。設定ダイアログで順番いじったらクラッシュとか直ったと思う。
プレイヤーコマンドの仕様変更は多少上位非互換を含む。
パネルとかフィルタバーの動作がそれっぽい感じになった。パネルの位置変更はあんまりテストしてないので変かも。
PeerCastサーバの設定にIDとパスワードの設定が加わってるけど、PeerCastはID見ないので意味がない。
パネルの「未接続」って出るタブはPeerCastGUI

今回Ubuntu Dapperを動作テスト環境から外した。うっかり環境消しちゃったため。

PGP鍵IDはB639F355。こことファイル置き場GoogleCode(https)の3箇所で書いてれば十分だよね。
% gpg --keyserver keyserver.ubuntu.com --recv-keys B639F355
% dscverify --keyring ~/.gnupg/pubring.gpg gpyp_3.8-jaunty1_i386.changes

gpyp3でPeerCastGUI

,


概ねpeercast-qtと互換の表示とリレー操作が出来る試作品。peercast本体にパッチを当てる必要があるので使い方をメモっておく。試用はsvnで。
HTTPでXMLを取得してリレー情報を表示したり切断したりBumpしたり出来る。ローカルでQt版を動かしてる場合、これを使うメリットはない。CellRendererRelayとか一部のコードを流用すれば比較的簡単にGTKなPeerCastも作れると思う。
パスワードを設定する場合は必ずBasic認証にする事。Cookie認証には未対応。
# PeerCastはノンパスではlocalhostからしかアクセス出来ない仕様。

peercast-qt0014-core.diff
PeerCast本体の情報を提供するウェブインターフェース(XML)にVP版拡張などのいくつかの情報の追加とadmin?cmd=connectでコネクションを切断出来ないバグの修正。
% cd ~/peercast-qt0014
% patch -p0 < ~/peercast-qt0014-core.diff
% cd ui/linux # GUIも含める場合はui/qt4
% make


関連記事
PeerCast+自動再起動機能とinitスクリプト

CPの帯域チェック

,

CPの帯域チェックはContent-Type: application/x-www-form-urlencodedで投げないとDBをすぐに更新してくれない。yp4g同梱のやつはContent-Type無視してたはずなんだけど。
全面的に違った。

gpyp3

http://code.google.com/p/gpyp3/
急にそんな気分になったのでGoogleCodeでプロジェクト作った。

gpyp-3.7.1

gpyp-3.7.1リリース。
  • チャンネル情報ダイアログで、終了してないチャンネルでも終了済みフラグが立ってる場合があるバグ修正。
  • 古い終了済みチャンネルを破棄するタイミングを1時間ごとのタイマーからリロード時に変更。
  • UTF-8のBOMを無視する処理を、文字コードが指定されていないか"UTF-8"の時のみ実行するように変更。
  • gtk2.14以降でパフォーマンスが悪く、長時間放置するとどんどんメモリ食ってく不具合(3.5で修正したやつの再発)修正。
  • 終了済みチャンネルが復帰した場合でも新着通知を表示するように変更。ただし新着扱いではないので自動再生も自動録画もされない。
  • boost::unordered_mapの使用をデフォルトで無効に変更。
  • 通信スレッドからのログ出力でログが混ざる不具合修正。
  • IPv6名前解決を無効化するオプション追加。
  • 試験的にD-Busサービスを実装。D-Busサポート(自動検出)が有効になっていれば自動的に有効になる。--disable-dbus-serviceで無効化出来る。
    ex: dbus-send --type=method_call --dest=org.gpyp3 /org/gpyp3 org.gpyp3.Play string:"0123456789ABCDEF0123456789ABCDEF"

長くなりそうだから先にバージョン刻んでおく。Fedora12とかopenSUSE11.2とかテスト対象に追加。今日更新予定だったのすっかり忘れてて間に合わないかと思った。危ねえ危ねえ。

PeerCastのYP別チャンネル数の統計

,

gpyp3のログを使ってチャンネル数の統計とってみた。YPのお知らせ等再生不可能なチャンネルを含む。


ピークが予想より1、2時間遅い。まあ年齢層を考えればこんなもんか。しかし24時でもほぼピークを維持してるのは意外。ちなみに合計だとピークで300ちょい。YPMはCPの本家YPミラー。本家YPはよく落ちるので空白の時間帯がある。

ログを生成したgpyp(開発版)。
データの整形およびグラフの生成に使ったスクリプト。makeでgpyp3のログディレクトリ(~/.config/gpyp3/log)からデータとってきて自動的にグラフを作る。

# なんでもかんでもmakeでやる癖なんとかしたい。

gpyp-3.7

gpyp-3.7リリース。
  • 帯域チェック機能を内臓化。--disable-pluginをデフォルトに変更。内臓コマンドに@{uptest}追加。
  • HTTP通信で状況によって固まるバグ修正。
  • メニュー項目を追加する時に選択位置に挿入されないバグ修正。
  • 子プロセスリストにコマンド名のアイコン(あれば)を表示するように変更。
  • アイコン選択ダイアログでgtkのストックアイコンを選択出来るようになった。Gtkのストックと重複してる組み込みアイコンを削除。
  • @{Pref.show}で表示ページを指定出来るようにした。
  • libvteに対応した。--enable-vteで有効になる。0.16.0(UbuntuHardy相当)以降で動作するけど、0.19.1(UbuntuJaunty相当)以前では子プロセスの終了コードが取得出来ないため、peercastやpcraw_proxyプロセスの自動再起動が動作しない。
  • メニューまわりを全面的に書き直し。gtk+-2.10以前でもアイコンが表示されるようになった。
    設定ダイアログのメニュー画面が見やすくなった。並べ替えや項目の追加、削除がリアルタイムに反映されるようになった。
  • UTF-8のBOM(\xEF\xBB\xBF)を無視するように変更。
  • .desktopファイルを追加。
  • 正規表現ライブラリの指定方法を変更。boostのを使いたい場合は--with-regex=boostとする。
  • 鬼車(>= 5.9.1)に対応。--with-regex=onigurumaで使用可能。--with-oniguruma=/pathでパスを指定出来る。デフォルトは/usr/local。
  • スクリーンセーバーに関する設定ファイルの仕様変更。スクリーンセーバー実行中に自動再生を無効化する設定が旧バージョンから引き継がれない。
    スクリーンセーバー実行中にミュートにする機能追加。
  • XScreenSaverに対応。--disable-ss-xssで無効化出来る。--disable-ss-gnomeと--disable-ss-kdeも追加。
  • gtkmm-2.18で終了時に必ずクラッシュするバグ修正。
  • チャンネル情報ダイアログにお気に入りのマッチ状況を閲覧する機能追加。正規表現の誤爆をチェック出来る。
  • リロード時にチャンネルリストのスクロール位置を復元するように変更。選択状態の復元方法も多少改良。
  • 初期設定ダイアログ追加。
  • メニューカスタマイズなしのデフォルトの状態で使用している場合にウェブブラウザと2chブラウザのアイコンをある程度自動で設定するように変更。
  • メニューバーを非表示にした時にチャンネルリストのメニューにメニューバーの中身を追加で表示するように変更。
  • Glib以外の正規表現ライブラリを使用する場合に正規表現のエスケープが正しく行われないバグ修正。
  • お気に入りのルールを並べ替えられるようにした。
  • 内臓コマンドに@{Favorite.Rule.append_word}、@{Channellist.resort}、@{Channellist.refilter}追加。詳細は内蔵コマンドを参照。
  • 検索バーまわりを書き直してお気に入りの検索ワードに簡単なテキストエディタ追加。
    これに伴って入力の設定を「検索バー」と「検索」に分離した。「検索」はテキストエディタを含む検索バーで作用する。
  • デフォルトのキーバインドのうちC-sをC-fに変更。
  • お気に入りのルールのターゲットにTIPを追加。
  • ツールメニューやテキストメニューでもチャンネル由来の変数を使用可能にした。
  • 検索バーで検索結果をフィルタ化する機能追加。入力欄のコンテキストメニューから使用可能。
  • フィルタバーで右クリックでの動作をセンタークリックに変更。
  • フィルタバーのコンテキストメニューで少しお気に入りを操作出来るようにした。ダブルクリックでリネーム出来る。
  • フィルタバーをスクロール出来るようにした。
  • フィルタバーをキーで操作出来ないバグ修正。
  • デフォルトと再生履歴でソート方向が違う場合、表示していない方でお気に入りのソート上書きが逆方向に適用されるバグ修正。
  • 終了済みチャンネルを表示する機能追加。内臓コマンドに@{Channellist.show_ended}、@{Channellist.toggle_played}、@{Channellist.toggle_ended}追加。
  • 配信時間が巻き戻っていても新着とみなさないように変更。
  • ログでfsync()サボってたの修正。
  • 可能ならチャンネルの検索にGHashTableではなくboost::unordered_map(boost >= 1.36.0)を使用するようにした(自動検出)。--disable-boost-unorderedで無効化出来る。
  • お気に入りやメニュー等で項目を削除した時にクラッシュする場合があるバグ修正。


既知のバグ
  • チャンネル情報ダイアログで、終了してないチャンネルでも終了済みフラグが立ってる場合がある。変数の初期化忘れ。終了済みチャンネル一覧に表示されるチャンネルは値を上書きされてるので、ここ以外に影響はないはず。
  • 3.4以前のgtk2.14以降でパフォーマンスが悪くなるバグが再発している。


今回からUbuntu向けのdebパッケージを提供する事にした。対象はHardy、Jaunty、Karmicの3つ。i386のみ。
プラグインは作ってみたかったから作ってみたけどあまり使い道がなくて放置してたので、思い切って帯域チェックプラグインをC++で書き直して無効をデフォルトにした。使ってる人いないだろうし問題ないでしょう。同様にWebkitも放置。VTEサポートもつけたばっかだけど放置。
UTF8のBOMはNP対策。phpはBOM対応してなかったはずなので油断してた。名前で先頭一致にしてるお気に入りが正しくマッチしない問題が直るはず。
gpyp.desktopファイルを追加。PREFIXを/usrとかにするとDEのメニューに追加されるはず。カテゴリどうするか迷ったけど一番近そうなNetworkにした。--disable-desktop-filesで無効化出来る。
@{Favorite.Rule.append_word}は試験的な物。美しくないので迷ったけど、とりあえず目的を達成する機能だけ実装してみた。今後場合によっては削除するかも知れない。
チャンネル情報ダイアログが何の役にも立ってなかったので色々と機能追加してみた。お気に入りのデバッグとか出来る。
終了済みチャンネルを一定時間(設定可)保存、閲覧出来るようにした。boost-1.35以前だとGHashTable使うのだけど、長時間使ってると結構メモリを食うので今後無効にするオプションつけるかも。

VirtualBoxでKarmicのamd64版がブート出来なかったのでUbuntuのx64版はテスト出来てない。ちょっと古いコードはJauntyのamd64でテストしたので大丈夫だと思うけど。

gpyp3でlibvte


libvteに対応してみた。synapticとかについてるターミナルエミュレータ。xfce4-terminalもこれ。libvteすげー。


topとかも出来る。

ただgpyp3終了すると子プロセスも終了してしまうので残念な感じ。なんとか出来ないだろうか。
たぶん二十日あたりに3.6.2出すと思う。結構メモリ食うみたいだしデフォルトは無効かなあ。