		makefml (/usr/local/fml/makefml) について

------------------------------------------------------------
1	概要
1.1	makefml で使えるコマンドは？
1.2	makefml config のメニューを日本語にする？
1.3	lock
1.4	GUI はないんでしょうか？

2	makefml HOW-TO
2.1	MLを止めて(ロックして) config.phの edit をしたい

3	コマンドラインオプション
3.1	-d
3.2	-v
3.3	-D CONFIG_DIR
3.4	-f systemファイル
3.5	-i コマンド入力チャンネル
3.6	-U
3.7	-F
3.8	-E Environment (for GUI)
3.9	-W cgi (for GUI)
3.10	-c cgi.conf (for GUI)
3.11	-m
3.12	-u USER
3.13	-w 
3.14	-V VENDOR
3.15	-A アーキテクチャ
3.16	-O オペレーティングシステム

4	PGP コマンド関連機能について 
4.1	ディレクトリ構造について
4.2	makefml の使い方 （互換性について)
4.3	省略しない makefml の使い方 （admin コマンドの認証鍵の操作）
4.4	省略しない makefml の使い方 （ＭＬの暗号化の鍵の操作）
4.5	解説: 3.0 と 4.0 とのちがいについて
------------------------------------------------------------


	＊＊＊ まだまだ書き始めです ＊＊＊

1	概要

＊＊
＊＊ makefml の使い方は NSTALL のファイルに詳しいです。
＊＊ これはもっと特殊な使い方などについて書くつもりのドキュメントです。
＊＊ 

makefml は fml を設定するための CUI (Chacacter User Interface) インター
フェイスです。GUIのような華やかさはありませんが、簡潔に必要なことがで
きるインターフェイスです。

コマンドラインから実行します。

1.1	makefml で使えるコマンドは？

makefml help を実行してみて下さい

% makefml help

   makefml command arguments         what
   ---------------------------------------------------------

   makefml info                      show this message
   makefml install                   Install the fml system

       ... snip ...

1.2	makefml config のメニューを日本語にする？

GUI はできるだけ日本語になっています。コマンドラインでもGUIの日本語モー
ドを使うことが可能です。

環境変数を設定して下さい。

    ◯ bourne shell, bash などの場合
    
    ~/.profile ~/.bash_profile (?)
    
      MAKEFML_LANG=euc; export MAKEFML_LANG
    
    ◯ csh, tcsh  などの場合
    
    ~/.cshrc ~/.tcshrc
      setenv MAKEFML_LANG euc

1.3	lock

shell-script を lock 下で実行する

    % makefml lock elena -e shell-script

30秒間 elena を lock する。

    % makefml lock elena 30
    DO "lock 30" for elena mailing list.
    
       makefml[10594] succeeded to lock elena
       I sleep for 30 seconds after now.
       Please interrupt this by CONTROL-C to stop this lock

"succeeded to lock elena" が出たら今ロックをしている状態

1.4	GUI はないんでしょうか？
See also: GUI 1 

fml 4.0 以降には CGI があります。CGI のメニューは日本語です。

2	makefml HOW-TO

2.1	MLを止めて(ロックして) config.phの edit をしたい

ＭＬを動かしたまま config.ph を edit するのちょっと恐いです。夜中とか
メールがまず来ないと思っている時間ではなく、普通にメールが来得る時間帯
にメインテナンスをしたい時にはロックを書けた状態で editor を呼び出すこ
とが必要です。"makefml edit ML [file]" はこの機能を提供します。

	% makefml edit ML [file]

file が省略されると config.ph になります。

Example: to edit elena/config.ph 
	% makefml edit elena
	% makefml edit elena config.ph

Example: to edit elena/cf
	% makefml edit elena cf

注意: これを使って config.ph を edit してしまうと makefml config は基
本的に使えない。ということを意味するので注意して下さい。makefml config 
は毎回
ATTENTION: "makefml config" edits $DIR/cf and creates $DIR/config.ph
from $DIR/cf. If you use "makefml config" usually but now need to set
up FML over "makefml config" spec, you need to edit $DIR/cf manually
and run "make config.ph".

	 cf -> config.ph 

の生成手順を行なうため、cf ファイルがマスターになります。cf ファイルの
内容は makefml config でも保存されるので、makefml config を使う場合は 
cf を設定のマスターファイルにする必要があります。ちょうど sendmail.cf 
と CFの設定ファイルの関係のようになっています。

* 2000/05/09 以降の fml-current には make config.ph 同じことをする 

  % makefml update-config.ph ML

というコマンドが用意されています。でもこれならMLのHOME以外からの実行も、 
make がないOSでもOKです。

3	コマンドラインオプション

3.1	-d

デバッグモード on

3.2	-v

verbose mode

3.3	-D CONFIG_DIR

/usr/local/fml/.fml に相当するディレクトリを指定する。

3.4	-f systemファイル
See also: virtual_domain 1 

system file を指定できる。virtual domain の時に便利

	% makefml -f /some/where/fml/.fml/system install

3.5	-i コマンド入力チャンネル

-i STDIN は CGI なんかが使ってます。

  CGI -> 入力チェック -> open(MAKEFML, "|  makefml -i STDIN  ") ..

3.6	-U

ロックをしない。

例:

makefml -U install

3.7	-F

newml 時にすでにＭＬがある場合はエラーになる。
しかし -F をつけるとその場合にも再作成を行なう。

makefml -F newml elena

3.8	-E Environment (for GUI)

makefml に CUI モードか GUI モードかを教えるフラッグ 

3.9	-W cgi (for GUI)

CGI installation mode

3.10	-c cgi.conf (for GUI)

cgi configuration file.

3.11	-m

makefml test で使ってる。実際にエラーメールを出していいか？

3.12	-u USER

$USER 変数

3.13	-w 

windows 2000/NT4 でつかっている。メニューを無限ループしている。
＃そうしないと MSDOS prompt が終了しちゃって画面から消えてしまうんです。

3.14	-V VENDOR

VENDOR 。たぶんでばっぐ以外で使わない

3.15	-A アーキテクチャ

アーキテクチャを強制的に指定する。デバッグ以外でつかうことがたぶんない

3.16	-O オペレーティングシステム

オペレーティングシステムを強制的に指定する。デバッグ以外でつかうことが
たぶんない

4	PGP コマンド関連機能について 

注: これは fml-current (3.0I) 2000/08/12 以降に該当する。

4.1	ディレクトリ構造について

fml 3.0 までは $DIR/etc/pgp だけでした。たとえば elena ML では 
/var/spool/ml/elena/etc/pgp/ です。

fml 4.0 では PGP の鍵の置き場所が意味的に４つに分かれました。

	$DIST_AUTH_KEYRING_DIR     = "$DIR/etc/dist-auth";
	$DIST_ENCRYPT_KEYRING_DIR  = "$DIR/etc/dist-encrypt";
	$ADMIN_AUTH_KEYRING_DIR    = "$DIR/etc/admin-auth";
	$ADMIN_ENCRYPT_KEYRING_DIR = "$DIR/etc/admin-encrypt";

実際に意味があるのは次の2つだけです。

     * 投稿記事の暗号化の際に用いる PGP の鍵の置き場所
	$DIST_ENCRYPT_KEYRING_DIR	
	例: /var/spool/ml/elena/etc/dist-encrypt/

     * admin コマンドメールの PGP 認証の際に用いる PGP の鍵の置き場所
	$ADMIN_AUTH_KEYRING_DIR
	例: /var/spool/ml/elena/etc/admin-auth/

NOTE: 他の2つの変数は使ってないけど将来のために予約します。

4.2	makefml の使い方 （互換性について)

fml 4.0 では

	makefml	モード.pgpコマンド名

になります。またモードのデフォールト値は環境変数 
MAKEFML_PGP_DEFAULT_MODE で指定できます。

例:	真面目に書くとこのように書きます。

	% makefml admin-auth.pgp2 elena [pgpのオプションがつづく…]

しかし認証にしか使わないのであれば
環境変数で admin-auth と指定しておくと便利です。

	% setenv MAKEFML_PGP_DEFAULT_MODE admin-auth
	% makefml pgp elena

上の例と同じ動きをします。この場合 makefml pgp elena は makefml
admin-auth.pgp2 elena と再解釈されています。

注意: MAKEFML_PGP_DEFAULT_MODE を明示的に指定しない場合のデフォールト
モードはadmin-auth になっています。そのため次の2つは同じです。

	% makefml pgp elena
	% makefml admin-auth.pgp elena

4.3	省略しない makefml の使い方 （admin コマンドの認証鍵の操作）

fml 3.0 では makefml pgp により admin コマンドの認証鍵を操作しました。
fml 4.0 では

	makefml	モード.pgpコマンド

形になります。つまり次のような組合せがあります。
歴史的に pgp は pgp2 を意味します。

	makefml admin-auth.pgp
	makefml admin-auth.pgp2
	makefml admin-auth.pgp5
	makefml admin-auth.pgpk
	makefml admin-auth.pgps
	makefml admin-auth.pgpe
	makefml admin-auth.pgpv
	makefml admin-auth.gpg

あまりに長いので admin-auth を aa で代用できます :-) 例:

	makefml aa.pgp2
	makefml aa.pgp5
	makefml aa.gpg

4.4	省略しない makefml の使い方 （ＭＬの暗号化の鍵の操作）

fml 3.0 では makefml pgp によりＭＬの暗号化のため鍵を操作しました。
fml 4.0 では

	makefml	モード.pgpコマンド

形になります。つまり次のような組合せがあります。
歴史的に pgp は pgp2 を意味します。

	makefml dist-encrypt.pgp
	makefml dist-encrypt.pgp2
	makefml dist-encrypt.pgp5
	makefml dist-encrypt.pgpk
	makefml dist-encrypt.pgps
	makefml dist-encrypt.pgpe
	makefml dist-encrypt.pgpv
	makefml dist-encrypt.gpg

de で代用できます。例:

	makefml de.pgp2
	makefml de.pgp5
	makefml de.gpg

4.5	解説: 3.0 と 4.0 とのちがいについて

3.0 までは例えば elena ＭＬの PGP 認証( admin コマンド)および
ＭＬの暗号化のキーがともに

		/var/spool/ml/elena/etc/pgp/

におかれていました。これでは

		admin コマンドの PGP 認証
		ＭＬの暗号化のキー

を同時には使えないことになります。同様で makefml pgp もこのディレク
トリにあるファイルを操作することを意図しています。4.0 ではこれをきち
んと整理したということです。

◯ fml を今迄通り使いたい場合

	1. /var/spool/ml/etc/fml/site_force.ph に

		$DIST_ENCRYPT_KEYRING_DIR = $PGP_PATH;
		$ADMIN_AUTH_KEYRING_DIR   = $PGP_PATH;

	   と書くと、3.0H までと同じ(つまり混ざった状態)になります。
	   片方しか使わないなら別に問題はないのですが…

	2. もっと後向きな or 危ない解決方法として

		% cd /var/spool/ml/elena/etc
		% ln -s pgp dist-encrypt
		% ln -s pgp admin-auth

	    でも 3.0H までと同じことになります。

◯ makefml を今迄通り使いたい場合

	makefml pgp elena

		は

	makefml admin-auth.pgp2 elena

	と同じ意味になっています。つまり 
	PGP version 2 で admin コマンドメールの PGP 認証
	のために PGP2 の鍵を操作することになります。


		INDEX

maintenance.pl                             ...   2.1 
vipw.pl                                    ...   2.1 
