ここで公開しているパッチについて、 私は、私が放棄できる権利を全て放棄します。

index

mnews 1.22PL7 のパッチ

mnews は キャラクタ端末で動作する MUA です。ニュースも読み書きできます。

オリジナル mnews では UTF-8 なメイルを (EUC な端末で) 読むことができません。 そこで、mnews の 1.22PL6 用 IMAP4 パッチに含まれる UTF-8 対応部分を PL7 用に切り出して編集してみました。 改変パッチの公開を許可して下さった高津さんに感謝します。

動作確認する環境がないため、ここで配布するパッチには、IMAP4 機能は含んでいません。 ご了承ください。

ついでに、添付ファイル名が 「application/msexcel; name="=?Shift_JIS?B?jmeXcINgg4OBW4N..」 のように好ましくないエンコーディングで表現されている場合にも デコードするようにしました。

これらの変更は unicode パッチを適用後、 config.jsh 実行時に コンパイルオプションで -DUNICODE を つけることで有効になります。

また、オリジナル mnews ではメイル送信時に To などを対話的に求められますが、 これをスキップして直接エディタに飛んで行くようにしてみました。 また、何か発生した時の sleep 秒数がデフォルトでは 3 秒ですが、 私のような短気な人のために 1 秒に短縮しました。

これらの変更は fastui パッチを適用後、 config.jsh 実行時に コンパイルオプションで -DFAST_UI を つけることで有効になります。

また、オリジナル mnews では送信メイルのサイズは 48k bytes ですが、 添付ファイルをつけたりするとすぐにオーバしてしまいます。 そこで、制限サイズを 480k bytes まで拡張しました。

この変更は fastui パッチを適用後、 config.jsh 実行時に コンパイルオプションで -DBIG_MAIL を つけることで有効になります。

mnews-1.22PL7 に対する UTF-8 対応パッチのダウンロード
mnews-1.22PL7 に対する UI応答数削減&送信メイルサイズ拡張パッチのダウンロード

これらのパッチは、適用順序を問いません。 mnews-1.22PL7 を展開したディレクトリで -p1 をつけて適用してください。 ビルド手順を以下に示します。

  1. tar xvfz mnews122PL7.tar.gz
  2. cd mnews-1.22PL7
  3. patch -p1 < mnews1.22PL7-unicode-20080202.patch
  4. patch -p1 < mnews1.22PL7-fastui-20080203.patch
  5. cd build
  6. ./config.jsh
  7. make
  8. ./mnews でお試し起動、問題なければ cp ./mnews $HOME/bin など。

UI応答数削減&送信メイルサイズ拡張パッチは config.jsh を修正していないので、 当てただけでは何も起きません。 私が実際に使っているコンパイルオプションを、サンプルとして載せておきます。

-DCOLOR -DCOMPLETION -DCTRL_L -DDELETE_FIELD -DDISPLAY_CTRL -DLARGE
-DRECOVER_SUBJECT -DREF_SORT -DSEND_CONFIRM -DSUPPORT_X0201 -DTRI
-DUSE_NLINK -DUNICODE -DBIG_MAIL -DFAST_UI

参考:

Cobertura 1.9 のパッチ

Cobertura は java プログラムのカバレージ(網羅率)を取ることのできるツールです。 JUnit テストと組み合わせることで、書いたコードのどこを通ってどこを通っていないか、 HTML のレポートを見て確認することができます。

しかしながら、哀しいことに、Cobertura は UTF なソースファイルを読んで UTF なレポートページを出力することしかできません。 いや、哀しいのは Cobertura ではなく、我々日本人なのかもしれません。 なぜなら、Shift_JIS という忌まわしき符号化方式によるソースファイルを いまだに たくさん、たくさん… メンテナンスしなければならないからです。

我々が過去の遺産を 保守/整理/勉強/再利用 したいと思うとき、 テストのカバレージを取ることのできる Cobertura は、心強い証人になってくれます。 しかし、素の Cobertura は、ソースが UTF であることを強要するのです。 いちいち変換して「テスト→カバレージ測定→出力確認」すればよいのでしょうか? それはさすがに面倒クサいじゃないですか。

というわけで、SJIS 対応パッチを書きました。 日本語対応パッチと言ってもいいかもしれません。 このパッチを当てることにより、 Ant で実行できるレポートタスクの中で、「lang」と「encoding」を 新たに指定することができるようになります。 Shift_JIS のソースでも、Shift_JIS のままコンパイルして 「テスト→カバレージ測定→出力確認」ができるようになります。

    <cobertura-report
      datafile="${cobertura.ser}"
      format="html"
      destdir="${dest.dir}"
      srcdir="${src.dir}"
      lang="ja"              ← 出力する HTML ページの lang 指定
      encoding="Shift_JIS"   ← 入力と出力に使用する encoding 指定
    />

lang の指定は、入力(ソースファイルのエンコーディング)とは関係ありません。 出力される HTML ページの lang 指定が「en」固定だったのが許せなかっただけです。

encoding の指定は、三つの場所に作用します。

  • 入力(ソースファイルのエンコーディング)
  • 出力(レポートページのファイルのエンコーディング)
  • 出力(レポートページの HTML の charset 指定)

これらを分けたいケースは思いつかないので、いっしょに指定します。 例えば、ソースファイルが Shift_JIS なら出力されるページも Shift_JIS で、 charset 指定が Shift_JIS になります。

cobertura 1.9 に対する「非 UTF ソース」対応パッチのダウンロード
cobertura 1.9.4.1 に対する「非 UTF ソース」対応パッチのダウンロード

このパッチを適用しても、cobertura-report タスクを実行する時には 「ソースファイルの文字コード」と「実行時のロケール」は合わせる必要があります。

gtkipmsg のパッチ

gtkipmsg は、 GKT+ を利用した X11 用の IP Messenger です。 実際に使っていると、いろいろと「あれれ、そうじゃないよ〜」という 挙動を示すので、「直らないかなぁ」と思って待っていました。 んが、待っているだけでは何も改善されないということで、パッチを書いてみました。

ところが、作者さんにメイルしてみてもいらっしゃらないようで、 550 no mailbox で帰って来てしまいました。でもせっかく作ったので、 誰か使ってくれるかなぁと思いながらここに公開する次第です。 ちなみに、FreeBSD (要するに私の環境)でしか 動作を確認していません。すいません。

改善ポイント:

  • 設定項目の追加:受信時にビープするかどうかの設定を追加した。
  • 設定項目の追加:「送信・返信」を「発射・迎撃」にする設定を追加した。
  • 送信ウィンドウその他、ウィジェットの配置・見た目を修正した。
  • 1行の wrap を 192 バイトに伸ばした。

gtkipmsg 0.2.6 に対するパッチのダウンロード

nvi-m17n のパッチ

FreeBSD の /usr/bin/nvi には global に対応する独自拡張が入っていますが、 そのままでは日本語(マルチバイト語)を扱えません。 幸いなことに FreeBSD の ports には、nvi の m17n 拡張が用意されていますが、 そのままでは global に対応できていません。

m17n で かつ global に対応した port は、ちょっと探してみましたが、 見付かりませんでした。 そこで、両者の差分を取り出して editors/nvi-m17n のパッチとしてまとめてみました。 アバウトに 2005 年ごろの ports tree でビルドできることを確認しています。

editors/nvi-m17n に対するパッチのダウンロード …普通に files/ に置いてビルドしてください。

xdkcal のパッチ

xdkcal は他のものよりややややこしいので、まず経緯を書いておきます。

xdkcal は、Jiro Sekiba さんによる 「デスクトップ (root window) にカレンダーを描画するアプリケーション」です。 オリジナルは http://www.shiratori.riec.tohoku.ac.jp/~jir/linux/products/xdkcal/index-j.html で配布されていました。2005.09 現在では 404 です。

オリジナルに対して「影つき描画」「横複数月描画」などの機能追加を行うパッチが fukafuka さんにより作成され、 http://www1.plala.or.jp/fukafuka/works/patch/xdkcal.html で配布されています。 ここでは、このパッチを「patch」、patch が当たったものを patch 版と呼びます。

patch 版に対して「振替休日の対応」「サスペンド対応」「月替り再描画対応」などの 機能追加を行うパッチが JADO さんにより作成され、 http://www.flowernet.gr.jp/jado/comp/xdkcal.html で配布されています。 ここでは、このパッチを「patch2」、patch2 が当たったものを patch2 版と呼びます。

patch2 版に対して「FreeBSD 対応」を行うパッチが 佐藤さんにより作成され、 http://shotgun.phys.cst.nihon-u.ac.jp/~naoto/FreeBSD/xdkcal.html で配布されていました。2005.09 現在では 404 です。 ここでは、このパッチを「fbsd」、xft が当たったものを fbsd 版と呼びます。

これらのパッチに inspire された (?) のか、 オリジナルに対して Xft での描画をサポートしたパッチが Kiyo さんにより作成され、 http://teki.jpn.ph/pc/software/#xdkcal-xft で配布されています。 ここでは、このパッチを「xft」、xft が当たったものを xft 版と呼びます。

また、patch 版に対して「X Render Extension 対応」「複数月の複数行描画」などの 機能追加を行うパッチが Hasegawa さんによりより作成され、 http://www2.incl.ne.jp/~hase/software/xdkcal.html で配布されています。 ここでは、このパッチを「xrender」、xft が当たったものを xrender 版と呼びます。

つまるところ、以下の通り 3 種の亜種が存在することになります。

  • オリジナル
  • オリジナル + xft = xft 版
  • オリジナル + patch + xrender = xrender 版
  • オリジナル + patch + patch2 + fbsd = fbsd 版

さて、お待たせしました。ようやく本題です。

どの版も、2005.05 公示の祝日法の改正に対応していません。 そこで、パッチを作成しました。 最後の fbsd 版だけが私の環境で動作良好でしたので、 fbsd 版ベースに作業した結果となっています。 xft 版と xrender 版は 私の環境ではうまく動作してくれなかったため、 作業できませんでしたが、基本的に holiday.c だけ差し替えれば どの版だろうが対応可能なはずです。

このパッチでは、以下の休日をサポートします。

  • ハッピーマンデー対応(成人の日、海の日、敬老の日、体育の日)
  • 5月と9月の国民の休日
  • 振り替えてさらに振り替えるパターンの振替休日
  • 山の日

xdkcal-0.9d + patch + patch2 + fbsd に対するパッチのダウンロード …前提となるパッチを当てた上で、patch してください。 さすがに量が多いですし、既に 404 で入手できないものも多いですので、 あらかじめ当ててあるセット も用意しました。

mgterm の FreeBSD 5 系対応パッチ

MGL2 として 配布されている環境に含まれる mgterm は、FreeBSD でも使用することができます。 が、残念なことに FreeBSD 5 系ではいくつかのヘッダが無くなったり名前が変わったり 変動が多いため、配布されているコードはそのままではビルドが通りません。

別件(kon) の対照ネタということで 柴田さん に紹介していただいて試してみたものですが、いろいろ試行錯誤の上 最終的に以下のパッチを適用することで動作させることができました。 ビルド手順は別稿に書いています。

mgl2-alpha-020 に対する 2005 年 7 月頃の 5.4-STABLE 用のパッチのダウンロード

ochusha の 似非ports

おちゅ〜しゃ は unix ヴァリアントで動作する gtk+ ベースの 2ch ブラウザです。 もちろん FreeBSD でも動作します。 しかし、以前は port が本家から落せたような気がするのですが、今は見当たりません。 また、0.5.8 系と呼ばれる系はコードがフリーズしているらしく、 そのぶん周囲の変化が進んでしまって齟齬を来たしはじめています。 PR も出ているので、 いつかは ports ツリーに取り込まれるとは思うのですが。 待ちつつも待ち切れないので、大昔に手に入れた 野良 ports をベースに 2006 年 6 月頃の御時世に合わせて微調整をしたものをここに置きます。 以下を吸収しているつもりです。

  • 板一覧の 移転に対応
  • ports の gtk+ バージョンの変更によるビルドエラーの回避
  • 2ch 側のクッキーの仕様変更による書き込みできない事象の回避

ちなみに、手もとでは glib-2.10.3 / gtk-2.8.18 / gettext-0.14.5_2 / libxml2-2.6.24_1 にて ビルドが通って、それ以降少なくとも glib-1.2.10_12 / gtk-1.2.10_15 / gettext-0.14.5_2 / libxml2-2.6.26 までは 無変更で動作している模様です。 一ヶ月あまり使ってみましたが、デグってはいないと思われます。

おちゅ〜しゃ作者殿にも元port の作者殿にも ご連絡したつもりなのですが、 なぜかお返事を頂けないまま時がすぎてしまっています。 失礼かもしれませんが、ここで勝手に公開してしまいます。 問題があればとっとと引っ込めますので、御指摘ください。

2006 年 6 月頃の ports ツリーでビルドできる ochusha の port (0.5.8.2 ベース)

[Rev: --not under control--]
[EOF]