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


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

							 2002年11月7日
                                                              佐藤文優


   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 (2.13 以降) が必要です。本パッケージに同梱
   されておりませんので、別途入手して Perl のライブラリのあるディレクト
   リへインストールしてください。

	jcode.pl公式ページ: http://srekcah.org/jcode/

    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 注意
    --------------

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

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


    制限事項
    -------------

    sjistoeuc の使用において、ファイル名にユーザー定義外字領域の文字
    (95区〜114区)が含まれている場合、変換後のファイル名の該当部分は
    ゲタ「〓」に置き換えられます。これは jcode.pl の動作に依存してい
    ます。古いバージョンの jcode.pl では「〓」ではなく制御コードを
    含んだ妙なファイル名に変換されてしまいますのでご注意ください。

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

    変換できる文字コードは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/
     
    で確認してください。

    変更履歴
    ---------
    * Nov. 7, 2002 Ver.2.3a SATOH Fumiyasu
      - Fix typo in usage message
      - remove jcode.pl

    * Nov. 6, 2002 Ver.2.3 SATOH Fumiyasu
      - s/break/last/
      - s/checkk/check/

    * 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 

