この前GNU screen 4.2.0がリリースされたのに続いてすぐに4.2.1がリリースされました。 Gitレポジトリのmasterブランチにも正式に4.2.1が入ったみたいなので ちょっと調べたことを。
GNU screen 4.2.0 及び4.2.1リリース
4.1系からの6年ぶり?だかのリリースになりますが、 とりあえず4.2.0へのアップデートはこちらに詳しくあります。
4.2.1は数日後に幾つかバグフィックス等を行ったようです。
インストール方法
ソースからコンパイル
GNU screenのGitの状況を見ると:
masterにもprepare for v.4.2.1が入っています。
最新版はscreen-v4と言うブランチで作られていて ここの変更がmasterにも追加された形です(多分、昨日から今日にかけて)。
なので、ソースを取ってくるにはGitを使って
$ git clone git://git.sv.gnu.org/screen.git
とするか、 GNU Project Archives などからアーカイブされたものを取ってきます。
ちなみに、昨日までにもv.4.2.1のアーカイブは出来てましたが、 もし、開発中のscreen-v4をGitで取ってきたかったら
$ git clone git://git.sv.gnu.org/screen.git
$ cd screen
$ git checkout -b screen-v4 origin/screen-v4
とすればscreen-v4ブランチが取ってこれます(今の状態だとmasterと全く同じですが)。
コンパイルについてですが、コンパイルする前にパッチをあてます。
上のページに従い、screen-utf8-nfd.patchとscreen-utf8-osc.diffの パッチを当てます。
それからもう一つ、下のHomebrewのところで補足しますが、
というファイルも取ってきて同じようにパッチをあてておきます。
追記: 2014/06/14
Mac以外でこれを適用してしまうと
tmp.c: In function ‘xpututline’:
utmp.c:887: warning: assignment makes pointer from integer without a cast
utmp.c:889: error: dereferencing pointer to incomplete type
utmp.c:889: error: ‘DEAD_PROCESS’ undeclared (first use in this function)
utmp.c:889: error: (Each undeclared identifier is reported only once
utmp.c:889: error: for each function it appears in.)
utmp.c:890: error: dereferencing pointer to incomplete type
utmp.c:890: error: dereferencing pointer to incomplete type
make: *** [utmp.o] Error 1
の様なエラーが出るので注意。
追記ここまで
これらに関して、screen-v4のログを見てみると、
と一度screen-utf8-nfd.patchの方のパッチをあてた後、
Revert “screen outputs screen “ÿ” after a connected character.”
とまた戻してます。いくつか他のパッチもあてたり戻したりしてます。
何か問題があったんだと思いますが、今のところ入れても特に大きな問題はないし、 逆に入れないと日本語ディレクトリが化けるので入れています。
MacでHomebrewを使って
Homebrewだと、デフォルトでは未だに4.0.3を取ってきますが、 Gitのmasterからも取ってこれることに気づいたのでメモ。
まず、最近のHomebrewではMacにデフォルトで入ってるコマンドは避け様というのが基本らしく、 そのようなコマンドについてはdupwsというレポシトリに入っているのでtapする必要があります。
Homebrew/homebrew-dupes: https://github.com/Homebrew/homebrew-dupes
$ brew tap homebrew/dupes
追記: 2022/08/06
現在はdupesレポジトリはなくなり、メインのFormulaレポジトリのhomebrew-coreblob/master/Formula/screen.rb)の中に入っています。
- https://github.com/Homebrew/homebrew-core/blob/master/Formula/screen.rb
追記ここまで
次にscreen.rb
を見てみると、HEAD
の指定が
のmasterブランチの指定になってるのがわかるので、
$ brew install --HEAD screen
そしてあげると、
screen.rb
の中のhead
のものを入れることが出来ます。
現在はmasterに4.2.1が入ったのでこれで4.2.1が入ります。
もう少しFormulaを見てみると
1 2 3 4 5 6 7 8 9 |
|
と、パッチを使ってることが分かります。
head
の方にあててるのはこちら
どうもOS X特有でutmp
周りのエラーメッセージに対する処理のようです。
上の題だとon launch
と書いてあるんですが特に立ち上げ時に出てきたことは無いような。
ただ、コンパイルするときにutmp
周りでwarning的なものが沢山出てきます。
それに対して、上のパッチをあててみるとutmp
関連のwarning
が消えてくれます。
実質的にコンパイル後にどう影響するか理解してないですが、
一応綺麗にコンパイルできるようになる、ということであてておきたいところ、
ということで上のソースから取ってくる場合にも入れることにしました。
多分他にもパッチはいろいろあるのでしょうが。。。
で、見て分かる通り、この場合には上の文字化け用のパッチがあたっていません。 もちろんFormulaを無理やりいじれば出来ますが、 それだとあまりスマートではありません。
もしかしたら他の部分の改善で上手くいってるかも、と思って パッチ無しで試してみたらやはり化けてしまいました。
ということで、今のところはMacでもHomebrewを使うことは断念して 素直に自分で手でコンパイルして入れる様にしています。