
	       SMBCHARTOOL -- ファイル名文字コード変換ツール
   	       ---------------------------------------------
   		              Version 2.2

							 2000年8月21日
							修正: 10月25日
			      				      三浦広志
						     miura@samba.gr.jp


   SMBCHARTOOLは、Sambaのコンパニオンツールで、Sambaサーバを運用する管
   理者を支援するツールです。

   このツールは、Sambaサーバを日本語の環境で運用している場合に有効です。
   日本語の環境を使用する際には、管理者は5つの文字コードやコード表現方
   法から選ぶ必要があります。この文字コードは、バージョンや環境により、
   最適なものが違うため、環境やバージョン、運用方法の変化により、変更
   を必要とされる場合があります。

   その一方、本格的に運用されてきたサーバの場合、すでに多数のファイル/
   ディレクトリが存在し、容易に環境を変更できるものではありません。

   そこで、すでにあるファイル資産を容易にあたらしい文字コードに変更で
   きるよう、このツールが整備されました。

   さらに、Samba 2.0.7 日本語版において、機種依存文字が正式サポートされ
   たのを受けて、過去の正しくない文字コードのファイル名を修正可能になって
   います。

   また、移行時以外にも、本ツールは工夫により、有効に利用できます。た
   とえば、ディスク容量をとらないファイルの短期バックアップや、webによ
   るファイル検索システムへの応用などです。

   このツールは、GNU Public Licence のバージョン2ないしはそれ以降のラ
   イセンスにより提供されます。ライセンスは、同梱のCOPYING.txtファイル
   を参照してください。


   その他の同梱ファイル
   -------------------

   本ツールには、ほかにsambaおよび本ツールの動作確認用のファイル生成コ
   マンドと、外字およびIBM拡張漢字からなるファイルが同梱されています。
   また、CapおよびHexのときのcdなどの代用とするためのツールも同梱されて
   います。
   
   smbutfconv  .... smbfnconvと同様にeucとutf8のファイル名を変換する。

   gengaiji.pl .....カレントディレクトリに外字からなるファイル名の
                    ファイルをHEXコードで生成します。
   genibmkanji.pl ..カレントディレクトリにIBM拡張漢字からなるファイル名
                    のファイルをHEXコードで生成します。
   gendir.pl   .....カレントディレクトリにHEXコードで0xe140から0xeaa2の
                    名称のディレクトリを作成します。
   hextestkanji.tar.gz ..展開すると、上記コマンドで生成したHEXのファイルが
                    できます。
   capecho     .....引数の文字列をcap形式にして表示します。
   hexecho     .....引数の文字列をhex形式にして表示します。
   dot.bashrc.example.. 上記のcapecho, hexechoの利用するための設定例です。

   インストール
   ------------

   本ツールは、Perlバージョン5以降の機能を使用して作成されています。し
   たがって、ユーザは、Perlのバージョン5をインストールしなければなりま
   せん。ここでは、Perlのインストールについては扱いません。

   なお、本ツールはJPerl(日本語化されたPerl)では動作を保証いたしません。

   また、日本語の処理のために、jcode.plというライブラリを使用していま
   す。各自の環境にjcode.plが必要です。本パッケージに同梱されています
   ので、あなたの環境でjcode.plがない場合には、perlのライブラリのある
   ディレクトリへ、このファイルをおいてください。

    1) 本ツールのパッケージを入手します。おそらくあなたは、この文書を
       読んでいますから、すでに入手されているのでしょう。

    2)	TARアーカイブを展開します。もしGNU tarを使っているのであれば、
	"tar xzvf smbchartool-x.y.tar.gz"
        のようにすれば、展開できます。

    3) cd smbchartool-x.y として、展開されたディレクトリへ移動してくだ
       さい。

    4) INSTALL.shファイルを編集し、インストール先のディレクトリを希望
       するパスのとおった場所へ変更します。

    5) スーパユーザ権限になり、INSTALL.shを実行します。

    6) 以上でインストールは完了です。


    WARRANTY 注意
    --------------

    本ツールは、的確に作動するよう細心の注意をもって作成されていますが、
    完全性を保証するものではありません。また、いかなる利用についても、
    その適合性を保証するものではありません。すべて利用者の責任のもと使
    用してください。また、宇宙工学、医療など人命に関わるようなシステム
    への使用はできるだけ避けてください。

    本ツールを使用する際は、システムおよびデータのバックアップを必ずとっ
    てから実行してください。


    使用方法
    -------------
    
    本ツールは、標準入力に変換の対象となるファイル名、ディレクトリ名を
    受取ります。標準出力には、なにも出力しません。異常があった場合には、
    標準エラー出力へメッセージを出力します。特定のオプションを与えるこ
    とにより、実際に処理を行わずに、動作を確認することができます。

    変換できる文字コードは5種類です。これらを相互に変換できます。どれ
    からどれへ変換するかは、コマンド名により決定されます。

    文字コード:  euc, jis, sjis, cap, hex

    コマンド名の命名規則:   <元文字コード>"to"<新文字コード>
       例)  euctohex

    また、Samba日本語版での過去のバージョンからの文字コードの非互換性に
    対してサポートするため、sjistosjis, hextohex, captocap, euctoeuc, jistojis
    の5つのコマンドがサポートされます。これらのコマンドは、元のコードから
    いったん、SJISへ変換し、SJIS正規化をおこないまた、元のコードへと変換
    します。
    したがって、25通りのコマンド名をとることになります。本ツールは呼び
    出されたコマンド名で動作を変えるようつくられております。

    このツールは、以下のようにして使用します。

    # euctohex /home/samba/share/ 

    この例では、/home/samba/share配下のファイルすべてについて、eucの文
    字コードからhexへと変換されます。

    もし、変換前のファイルを残したい場合は、

    # euctohex -l /home/samba/share/ 
    
    のように、-lオプション  (linkの意味です)をつけると、元のファイルを
    ハードリンクとして残します。

    # euctohex -l -p /where/to/link /home/samba/share/ 

    のように、さらに -p オプションを付加することに同じディレクトリでは
    なく、同じファイルシステム内の別のディレクトリへハードリンクを作成
    することができます。これは、ファイルのバックアップ用途や、namazuを
    利用したweb検索システムの構築に有効でしょう。
 
    # euctohex -d /home/samba/share/ 

    のように、-d オプションをつけますと、実際のファイル操作を行わずに、
    動作の様子(リンクをはるとか、ファイルを消すとか)を標準エラー出力へ
    と出力します。

    また、このような利用方法を好まない管理者のために、別の文法も用意され
    ています。コマンド名に関わらず、-a オプションの指定により動作を変更
    できます。その場合、本コマンドは smbfnconv の名前で参照できて、

    # smbfnconv -a euctohex /where/want/to/conv

    のようにして用います。コマンド名より常に -a オプションが優先するため、
    
    # euctohex -a captojis /where/to/conv

    のように利用可能ですが、混乱するため推奨しません。


    ドキュメント
    -------------

    本ツールのドキュメントは現状整備されていません。本ファイルに記述さ
    れていないことは、ソースを確認するほかに、確認する手段はありません。


    MLなど
    ------

    本ツールには、サポートはありませんが、作者や利用者が多くあつまるメー
    リングリストにて機能改善や議論を受け付けます。本ツールはSambaとと
    もに使われることを想定しているため、samba-jpメーリングリストにて議
    論するものとします。MLの加入方法については、
    
     http://www.samba.gr.jp/
     
    で確認してください。

    変更履歴
    ---------
    * Oct.25, 2000 Ver.2.2 Hiroshi MIURA
       - fix CAP encoding bug with the code 0x80 and 0x2f(/)
             This is reported by  HIROSE, Masaaki.

    * Sep.15, 2000 smbutfconv Ver.1.0 Hiroshi MIURA
       - Add euc<->utf8 tool.

    * Aug.22, 2000 Ver.2.1a Hiroshi MIURA
	- remove 'use Errno' because don't need no more 

    * Aug.21, 2000 Ver.2.1 Hiroshi MIURA
      - rewrite directory parse functionality.

    * Aug.20, 2000 Ver.2.0 Hiroshi MIURA
      - Change algorism on handling directory
      - based on Ver.1.8

    * Aug.21, 2000 Ver.1.9 Hiroshi MIURA
      - fix keeping uid and gid when mkdir
      - up scalablity: rmdir when dirlists is over the MAXDIRLISTS.

    * Aug.20, 2000 Ver.1.8 Hiroshi MIURA
      - fix mkdir permission mask bug and add umask check
      - keep atime and mtime when mkdir
 
    * Aug. 7, 2000 Ver.1.7 Hiroshi MIURA
      - change command file name 'hextoeuc' to 'smbfnconv'
        to figure out its functionality.
      - added script to install

    * Jul. 31, 2000 Ver.1.6 Hiroshi MIURA
      - add -a option
      - tuning find oparation.
 
    * Jul. 31, 2000 Ver.1.5 Hiroshi MIURA
      - fix overflow problem in rmdir.

    * Jul. 30, 2000 Ver.1.4 Hiroshi MIURA
      - change command line not to using find piping.
        thats more smart to use.
      - convert to GETA if invalid charcode exists.

    * Jul. 30, 2000 Ver.1.3 Hiroshi MIURA
      - add capability of the hextohex, sjistosjis,
        captocap, jistojis, euctoeuc.
        These are to fix the samba compativility problem.

    * Jul. 23, 2000 Ver.1.2 Hiroshi MIURA
      - stop rmdir action when -d option is added. 

    * Jul. 21, 2000 Ver.1.1, Hiroshi MIURA
      - add about directory handling
      - be usable the -p option.

    * Jul. 20, 2000 Ver 1.0, Hiroshi MIURA
      - Add logic about SJIS regularion and the other 
        Charset handling
      - select function using which command name is used.
      - regulation logic is implied by binary search method.

    * Jun. ??, 2000 Ver 0.9, Hiroshi MIURA
      - test release
      - only convert HEX to EUC.
        primitive implimentation 

