[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00759] Re: recent patches
- To: freewnn@tomo.gr.jp
- Subject: [freewnn:00759] Re: recent patches
- From: aono@XXXX (Tomoki AONO)
- Date: Tue, 2 Oct 2001 01:10:52 JST
- In-Reply-To: Your message of "Mon, 24 Sep 2001 18:18:35 +0900".<20010924181835A.hiroo@oikumene.gcd.org>
- Reply-To: freewnn@tomo.gr.jp
青野です。こんばんは。
#反応が遅いですね。長文ですみません。
<20010924181835A.hiroo@oikumene.gcd.org>の記事において
hiroo@oikumene.gcd.orgさんは書きました。
>> 一応、jserver.man は変更しました。
>> が、文面が変、roff の書き方がおかしい、という問題があって、man でみる
>> と (少なくとも FreeBSD 4.3-stable では) 見え方がめちゃくちゃになってい
>> る部分があります。直さないと…なんですが。
確かに変ですね。(groff-1.10+jgroff-0.99ベースのパッチと
Solaris-2.4のnroffで確認) roffはよく分かっていないのですが、
パッチを作ってみましたのでお試しください。インデントについ
ては異論があるかと思いますので適宜調整して下さい。
Index: Wnn/man/4.cmd/jserver.man
===================================================================
RCS file: /cvs/FreeWnn/Wnn/man/4.cmd/jserver.man,v
retrieving revision 1.4
diff -u -r1.4 jserver.man
--- Wnn/man/4.cmd/jserver.man 2001/09/16 11:51:46 1.4
+++ Wnn/man/4.cmd/jserver.man 2001/10/01 08:37:35
@@ -91,16 +91,15 @@
ている WNN_PORT_IN の値が使われる。
.TP 8
-u
-.TP 8
unix domain socket を使用する。
+.TP 8
-4
inet socket を使用する。
.TP 8
-6
inet6 socket を使用する。
-.TP 8
--u, -4, -6 のいずれも指定しない場合は、全てのプロトコルが使用される。
.PP
+-u, -4, -6 のいずれも指定しない場合は、全てのプロトコルが使用される。
.SH ファイル
/tmp/jd_sockV4
.HP 0
----
>> 実は、source code をちゃんと見ておらず、以下のような基本的なことをわかっ
>> ていないので、これは後回しにさせて下さい。
この部分は青野もソースの読み誤りがあると思うので、あらかじ
め注意してお読み下さい。
>> ・既存のファイル名を指定した場合はどうなるのか。
未テストなので、パスします。
#田畑氏のexploitスクリプトをもう少し汎用化できればいいな
#と模索中。
>> ・作成したファイルは、任意の内容を書くことができるのか。
>> それとも、頻度or辞書の形式でしか書けないのか。
ソースを読む限りにおいては後者のように見えます。元々の指摘
者の田畑氏も影響としてはディスクフルにする・(rootで動作し
ている場合)不測の事態が予測されると記述して(いたと記憶して)
います。しかし直接既存のファイルが上書きされるなどの可能性
については触れていません。
#もちろん何らかの回避方法がある可能性は否定できません。
Wnn関係のファイルかどうかは元のWnn4.2 でもオープン時に逐一
チェックしているように見受けられます。ファイルの削除リクエ
スト(JS_FILE_DISCARD)はすでに開いているファイルにしか実行
しないようです。
>> ・制限は、JSERVER_DIR 以下ではなく、辞書ディレクトリ以下とすべきではないか。
jserverrc 中の jserver_dir(一文字目は見ないみたいですが、
[ck]Wnn/?d/?serverrcでは「jserver_dir」で統一されているよ
うです。) パラメータでは'@LIBDIR/@LANG/dic'と設定されてい
ます。インストールが正常にすんでいれば制限は辞書ディレクト
リ以下に働くようになっているはずです。
>> % 本当は、$prefix/lib/wnn 以下は $prefix/etc 以下に、
>> % $prefix/lib/wnn/$LANG/dic 以下は /var 以下に
>> % 置くべきじゃないかという気もする。
この辺りはよく分かりませんので置いておきます。
>> 青野> `basename $CC`で判定するよりは、AC_PROG_CCで定義される変数
>> 青野> GCC を利用した方がよいと思います。(autoconfのinfo参照) あ
(中略)
これについてはパッチが出たのでそちらでフォローします。
>> この問題なのですが、原因は
>> cmd_name にやたら長い文字列がつっこまれていたのに、
>> error1() のバッファの長さが足りなかった
>> というもののようです。
>> % ただ、それで SIGSEGV で落ちては困るのだけど…。
(中略)
これもパスします。ログ出力については(時間があれば)強化した
いところです。
#せめてsyslog並に数段階のプライオリティを付けて出力が制御
#できるようになってほしい。
>> % 少なくとも、error1() は、STDC なら vararg を使って宣言した方が良いような…。
他のデバッグ出力も書きやすくなるので、賛成に一票入れます。
その際はvsnprintf() の代替関数をどこかからimportして下さい
m(__)m。
#varargだけでなく、K&R系のstdarg(?)にも対応すればほぼOKと
#思うのですが、確証がありません。
>> 青野> ・configure中でINSTPGMFLAGSを定義しているようですが、文法
>> 青野> ミスでうまく働いていないと思われます。
>> 私の手元では動いてしまっていました。FreeBSD の /bin/sh は ash だからで
>> しょうか。
「動かない」といっても途中でconfigureが止まる訳ではなく、
configure: INSTPGMFLAGS: not found
という(コマンドと誤認しての)エラーメッセージが出るだけです。
(多分この辺りはFreeBSDのshでも同じだと思うのですが…。)
>> この patch は commit しました。
ありがとうございます。
あと、[freewnn:00756}ですが、
<20010925034303D.hiroo@oikumene.gcd.org>の記事において
hiroo@oikumene.gcd.orgさんは書きました。
>> 一つ思い出したのですが、現時点ではマニュアルは、Wnn/man の roff file
>> と Wnn/manual 以下の catman なもの(?)と重複しているものがありますが、
>> それについては、
>> ・両方のメンテナンスを続けるか。
>> ・roff のみにするか
>> どちらがよいでしょう。
両方のメンテナンス、は今activeな方が少ない(本来の機能の強
化まで手が回らない状態ですし)ので、極力自動化しましょう。
例えばroffからプレインテキストへは自動変換させるようにする
のはいかがでしょうか。
#中・長期的にはDocbook (, texinfo?)などコンバータの充実し
#ている形式に移行した方が幸せになれると思います。
Makefileにルールを記述しても問題ないとは思いますが、試みに
以下のような独立したスクリプトを作ってみました。青野の使用
しているgroffに依存していますので、全然移植性はありません
(多分FreeBSDのjmanで利用されるjgroffとはオプションが違う
と思います)。この操作はmaintainerしかしないと割り切れば日
本語の通るgroff-1.XX必須、位で何とかなると思います。
#Wnn/man において使うことを想定しています。(man.enは未確認)
---- ここから
#!/bin/sh
# autogen man output from mansrc. FOR MAINTAINERS ONLY.
# This script heavily depend on groff-1.11(+jgroff-0.99). It's too bad.
GROFF=groff
# 試みにjserver.manのみ記述してます.
MANSRC="4.cmd/jserver"
for file in $MANSRC; do
echo "processing $file ..."
# テストのため、出力ファイル名は.outを付けています.
# -P-buoはpostprocessor(grotty)に強調・下線表示を抑制するため.
$GROFF -Tnippon -P-buo -man ${file}.man > ../manual/${file}.out
done
---- ここまで
青野の環境では出力ファイルのヘッダ・フッタ部分がcatman形式
のそれと違うので、groffのtmac.anを元に調整したものをソース
ツリーにつける必要があると思います。
#今JFのTHE LINUX MAN-PAGE-HOWTOをちょっと見たのですが、
#上記スクリプトも手直しの余地がありそうに思えてきました。
#(ミニフォロー)
#[freewnn:00757]についてはmalloc()のメリットがあるのなら
#ばそれでよいと思うのですが、私には自動変数のままでよいよ
#うに思えます。(読み方が足りないと思います。)
----
青野智樹 (aono@cc.osaka-kyoiku.ac.jp)