2013/04/13

GNU Screen Watch: January 2011 - April 2013

GNU Screen ユーザとしては 4.1 がいつリリースされるのか気になるところですが、開発リポジトリやメーリングリストを見ていると様々な情報があります。その辺りの自分がウォッチしている情報を忘れないように不定期にまとめていこうと思います。

2011 年の初めに 4.1 の新機能を中心にまとめました。

ここではそれ以降の情報についてまとめます。(2013年4月12日現在)
  • コミット情報
  • Bug Tracker
  • ディストリビューションパッケージ
  • メーリングリスト情報

コミット情報

2011 年からのコミット件数は 16 です。

多くが不具合やコメント文言の修正ですが、追加機能もいくつかあります。下線で示した変更を確認してみます。

db59704 Add a new escape character 'E' to indicate whether the escape character has been pressed.

新たな文字エスケープ %E が追加されました。

これは screen コマンドの入力待機状態であるかの判定として使用できます。

たとえば以下のような caption を設定しておくと、C-a(または command コマンド)実行時にカレントウィンドウの番号やタイトルの色が変わりますので、そのウィンドウが screen コマンドの入力待機状態であるかどうかが視覚的に把握できます。hardstatus でも使用できますので好みに合わせて設定しておくと打ち間違いが大幅に減ります。

caption always "%?%F%{Wk}%:%{KW}%?%?%E%{Yr}%? %n %?%F%{gW}%:%{.w}%?%?%E%{.r}%? %t%="
  • ウィンドウ番号 %n
    • フォーカスがある場合の背景色/前景色は、明るい白/黒 %{Wk}
    • フォーカスが無い場合の背景色/前景色は、明るい黒/明るい白 %{KW}
    • コマンド入力待機状態の背景色/前景色は、明るい黄/赤 %{Yr}
  • ウィンドウタイトル %t
    • フォーカスがある場合の背景色/前景色は、緑/明るい白 %{gW}
    • フォーカスが無い場合の前景色は、白 %{.w}
    • コマンド入力待機状態の前景色は、赤 %{.r}

d94037c Support non-BMP utf8 characters

BMP(Basic Multilingual Plane: 基本多言語面) 以外の UTF8 文字がサポートされました。

しかしこのコミットはコンパイルできません。メーリングリストでも突っ込まれていますが、いまのところ無応答。

構造体 win のメンバ指定に誤りがあります。これでどうやって確認したのか分かりませんが、そこを直せば動きます。

BMP 外の文字で困ったことが無かったのでイマイチありがたみが分かりませんでしたが、ようやく screen でもビールが堪能できることに気づきました!!!1(以下の画像は上から iTerm、screen、non-BMP 対応 screen)

Bug Tracker

2011 年から Discussion に更新のあった Issue を確認。バージョン 4.0.3 に対するものもありますので開発版に関係しそうなものについては下線で示しています。

Open

AIX でのビルドエラーがいくつか報告されています(#33587 #33588)。 ウィンドウグループに rendition を設定可能にするパッチ(#35172)。 #36172 は私も悩んでいますが文字幅計算が難しいのでしょう。 #37528 も確かに configure の引数として表示される値と利用される値が異なっているので困惑しますね。

Closed

ディストリビューションパッケージ

開発版の変更点を取り込んだパッケージを提供しているディストリビューションがいくつかあります。ここでは変更点が確認しやすい Fedora と Debian について 2011 年からの変更をざっと見てみます。端末やプログラミングに 詳しくないのでコメントは参考程度とお考えください。

Fedora

Fedora では 2011-02-04 のコミット(d24e64f)から対象とするソースが 4.1 に切り替わっています。

新しい terminfo 拡張エントリ E3 を使ったロック時のスクロールバッファのクリア(3f891b1)やロックパスワードの暗号化(d105766)、バイナリの PIE 化や RELRO の有効化(cf2e7ab)、マルチユーザ時のソケットディレクトリの変更など、主にセキュリティ関連の変更が多いですね。

拡張エントリ E3 のパッチは screen-devel にも投稿されていました。

Debian

Debian では 2011-10-04 のコミット(ed16917)で 4.1 の変更が取り込まれています。そのひと月くらい前から git で管理するようになったみたいですね。

パッケージングに関連するファイルの更新などもありコミットは 126 件と多めです。 Fedora での tty チェックや組込 telnet の ipv6 対応パッチが取り込まれています(e4791e0)。 LOGNAME 環境変数の長さを 20 文字から 50 文字へ(b8816e4)、TERM 環境変数の文字列の長さを 20 文字から 40 文字へ(5cd97a9)、など文字列制限を緩和するパッチがあります。 9fe750f で取り込まれた NFD 対応パッチが別の問題を起こしたようで無効化されています(#600246)。 バージョン 4.0.3 の screen を操作できるようにするパッチもあります(64b6af3)。

メーリングリスト情報

screen-devel

Bug Tracker 以外のメールでパッチや気になったものをピックアップ。

2011年

2012年

  • 2013年

    2012 年後半の Thomas Renninger さんのパッチラッシュに対するやりとりの中で Amadeusz さんが改良を続けている screen リポジトリをアナウンス。オフィシャルの最新ニュース で紹介されています。

    変更内容を見るとソースコードの記述方法から caption/hardstatus の 256 カラー対応などかなり大幅に書き直し&機能拡張されています。

    screen-users

    2011年

    2012年

    2013年

    • binding command character to f12
      非 ASCII 文字は escape に指定できないから bind で command をマッピングするようにとのアドバイス。

    「新版のリリースはいつですか?」という質問は忘れた頃に投稿されますが、なかなかリプライが付きませんね。本体に取り込まれるパッチのルールみたいなものもあまりよく分かりません。その辺りの開発体制が GNU Screen の弱いところかも知れません。

    私はいろんなパッチを当てた野良ビルドを長いこと使い続けていますので、リリースに関しては正直いつでもいいかなと思っています。おそらく現在の HEAD がリリースされたとしても、私が望む機能の全ては実装されていませんので。その辺りの要望を挙げていくことが大事ということは分かっているのですが。。。

    おわりに

    以前から自分が使用する野良ビルドを作る上で確認した情報をまとめておきたいなと思っていたところ、たまたま半年ぶりにコミットされた non-BMP 対応の動作が確認できたので今回このような形でまとめてみました。

    こうして改めて見直しますと各種ディストリビューションやメーリングリストに投稿されるパッチがいまだ多数あることに気づきます。まだまだ GNU Screen は伸びしろがありますね。どのように進化してゆくのか引き続き追いかけていきたいと思います。

    本題とは関係ないですが、今回の一覧を作るために git の log --pretty を使ってみました。いろいろ指定できて便利ですね。

    % git log --since='2011-01-01' --pretty=format:'<li>%ad <a href="http://git.savannah.gnu.org/cgit/screen.git/commit/?id=%H" target="_blank">%h %s</a></li>' --date=short --reverse

  • 0 件のコメント:

    コメントを投稿