Samba 2.0.10-ja-1.0 での変更点

提供: Samba-JP
移動先:案内検索
KB番号 J0050
最終更新日 2001/07/09
作成者 たかはしもとのぶ
最終更新者

対象

この文書は、以下のプロダクトに付いて説明したものです。

  • Samba 2.0.10-ja-1.0

詳細

Samba-2.0.10-ja-1.0 では以下の修正が施されています。 1), 2) はソースの修正。a), b) はドキュメントの修正を指してます。

  1. 統合した修正
    既に TEST ブランチに merge 済です。
    1. J0004:ワイルドカードによるファイル指定がうまくいかない
      • CVS branch: X-shirai-2_0_7-dos_wildcard
      • patch: sugj-tech:2403 + sugj-tech:2677
      • テスト方法
      sugj-tech:3304
    2. J0031: 「:」や「\」を含む filename に access 出来ない
      • patch: sugj-tech:3012(samba-jp:09566) + sugj-tech:3085
      • テスト方法
      UNIX 側から「:」や「\」を含む filename を作成し、Samba 経由で Windows 側から access してみる。
    3. J0001: Windows 95/98の2バイト文字ディレクトリ処理に関する不具合
      • CVS branch: X-shirai-2_0_7-trans2
      • patch: sugj-tech:2503 + sugj-tech:2989
      • テスト方法:
      sugj-tech:3304
    4. J0024: coding system = EUC の時にsmbclient から日本語の共有に接続できない
      • CVS branch: X-shirai-2_0_7-smbclient-euc
      • patch: sugj-tech:2741 + sugj-tech:2783
      • テスト方法:
      Windows 側で日本語名の共有を作成し、coding system = EUC の状態で smbclient //SERVER/共有 を実行。但し「共有」は EUC-JP で書く。
    5. J0030: coding system = EUC の時に username map ファイル中で日本語ユーザ名が使用できない
      • CVS branch: X-shirai-username_map
      • patch: sugj-tech:2699 + sugj-tech:2739
      • テスト方法:
      username map = /etc/smbusers とし、/etc/smbusers に以下の一行を記述。
      unix_user = NTユーザ
      但し「NTユーザ」は coding system で書く。 UNIX 側に「unix_user」、Windows 側に「NTユーザ」を作成し、「NTユーザ」で Samba に access して unix_user として access 出来るかどうかを確認する。
    6. J0035: Windows 9xから13文字以上の長さの共有名が利用できない
      J0036: Windows NTから12文字以上の長さの共有名が利用できない
      • CVS branch: X-shirai-2_0_9-longshare_name
      • patch: sugj-tech:3352 + sugj-tech:3622
      • テスト方法:
      smb.conf に 14 文字以上の共有名を作成し Windows から access してみる。
    7. J0100: ボリュームラベルのデフォルト値に関する不具合
      J0102: ボリュームラベルに日本語を設定したときに文字化けする
      J0028: default service の文字コードが coding system に依存しない
      • CVS branch: X-hasegawa-2_0_7-volume-name
      • patch: sugj-tech:3097
      • テスト方法:
      default service = で日本語共有名を指定。Windows 側から「\\SERVER_NAME\存在しない共有」を access。 但し日本語共有名は coding system で書く。
      sugj-tech:3304
    8. J0021: 印刷時に日本語のドキュメント名が正しく表示されない
      • patch: samba-jp:09322
      • テスト方法:
      日本語ファイル名のテキストを「メモ帳」から Samba 経由で印字。 「スタート」->「設定」->「プリンタ」でスプールを確認。
    9. unix_to_dos/dos_to_unix 発行タイミング、バッファ上書きの修正
      • patch: sugj-tech:3422 (sugj-tech:2783)
      • テスト方法:
      特に無し。一通り動作確認出来れば OK。
    10. kanji.h lookup 高速化について
      • patch: sugj-tech:3422
        sugj-tech:2384 kanji.h lookup table #1
        sugj-tech:2468 kanji.h lookup table #2
        sugj-tech:2476 kanji.h lookup table #3
      • テスト方法:
      全ての漢字コードを利用して filename を生成してみる。 test program あり。
    11. J0045: default service が有効だと不正な日本語共有名が現れる
      • patch: sugj-tech:3392, sugj-tech:3537
      • テスト方法:
      default service = で有効な共有名を指定した上で、6 文字以上の日本語共有名に access してみる。
    12. Mac OS X でコンパイルに失敗する
      • patch: sugj-tech:3358
      • テスト方法:
      Mac OS X で compile が正常に行われることを確認する
    13. Mac OS X の UTF-8 対応
      • patch: sugj-tech:3310 + sugj-tech:3422 + sugj-tech:3489 + sugj-tech:3506
      • テスト方法:
      Mac OS X で coding system = UTF-Mac で利用する。
    14. Strncpy() 関数の日本語対応
      • patch: sugj-tech:3469
      • テスト方法:
      6) のテストで、12 文字目や 13 文字目が漢字の 1byte 目になる場合を確認。
    15. unix_to_dos() / dos_to_unix() のバッファオーバーフローの可能性を修正
      • patch: sugj-tech:3507
      • テスト方法:
      日本語共有名を持つ Windows client に対し、smbclient -L HOSTNAME -t hex (又は cap/utf8) として core dump しないことを確認。
    16. rpcclient が動作しない点の修正
      • patch: sugj-tech:3537
      • テスト方法:
      sugj-tech:3537
      1. WinNT workstation/server を用意します。 Win2000 では packet header 仕様が異なっているので rpcclient は動きません。
      2. その NT の Administrator 権限のある user を予め作成しておきます。 domain 構成の場合は domain 全体の Administrator でも代用出来ます。
      3. Administrator 権限のある user で logon し、「スタート」->「ファイル名を指定して実行」で REGEDT32.EXE を起動します。
      4. HKEY_USERS\.DEFAULT というキーがあるので、その下に「値の追加」で日本語名を「値の名前」に持つ「値」 を追加します。日本語名は適当で構いません。
      5. 「データタイプ」に「REG_SZ」を選び、文字列として日本語文字列を入れておきます。 これも適当な文字列で構いません。
      6. 同様にして、「データタイプ」が「REG_MULTI_SZ」であるような「値」も追加します。 こちらも「値の名前」及び「データ」は適当な日本語にします。 「データ」は複数行記述して下さい。
      7. Samba を install した UNIX で以下を実行します。
        rpcclient //SERVER/SHARE -U USER -S SERVER
        SERVER は先の WinNT の NETBIOS 名。SHARE は適当な共有名。 USER は上で作成した Administrator 権限を持つ user 名です。
      8. 「Enter Password:」に USER 用の password を入力すると「smb: \>」という prompt が現れますので以下の command 文字列を入力します。
        regenum HKEY_USERS\.DEFAULT
      9. 「Subkeys」として .DEFAULT 以下のキー名一覧が表示され、続いて「Key Values」 として先に追加した値が日本語で表示される筈です。smb.conf の coding system も確認してみて下さい。
      10. 「exit」と入力すると終了します。
    17. rpcclient の Usage が正しく表示されない点の修正
      • patch: sugj-tech:3537
      • テスト方法:
      rpcclient foobar -h と入力して Usage 行のコマンド名が rpcclient になっている(foobarでない)ことを確認。
    18. J0050: 2バイト文字の終端文字が1バイトだけ出力される
      • patch: sugj-tech:3537, sugj-tech:3550 + sugj-tech:3676
      • テスト方法:
      sugj-tech:3550
      1. smbclient //SERVER/SHARE -L SERVER -t euc
        予め SERVER に長い名前の共有名を半角仮名で作成。
      2. rpcclient //SERVER/SHARE -S SERVER
        srvinfo, srvshares, srvshares 2 をそれぞれ実行。 予め SERVER に長い名前の共有名と長いコメントを作成。
      3. 「netbios name =」で 15 文字以上の共有名を作ってから client の「ネットワークコンピュータ」で確認する。 15 文字目と 16 文字目の境に日本語がかかっている場合を確認。
    19. Samba 2.0.10 への修正
      • テスト方法:
      log file = に %m macro を含むような設定で、NETBIOS 名に「/」を含む client から access して、 生成される log file 名称で、該当文字が「_」に変わっていることを確認。
    20. NEWS-OS 付属の cc でコンパイルできるように修正
      • patch: sugj-tech:3669
      • テスト方法:
      NEWS-OS 標準の cc で compile する。
    21. NEWS-OS 6 付属の cc でコンパイルできるように修正
      • patch: sugj-tech:3690
      • テスト方法:
      NEWS-OS 6 標準の cc で compile する。
    22. coding system = jis7/junet で半角仮名を扱えるよう修正。
      • patch: sugj-tech:3699
      • テスト方法:
      coding system = jis7/junet で半角仮名文字を含む filename を作成してみる。
    23. 日本語 NETBIOS 名に対し log filename が全て均一に「_」 に置換えられてしまう症状を修正。
      • patch: sugj-tech:3699
      • テスト方法:
      日本語 NETBIOS 名を持つ client から接続して生成される log filename を確認。 特に coding system = jis7/jis8/junet に於いて、「く」「渥」(手偏じゃないよ) 「ッ」(半角仮名)等「/」を含む文字を用いた NETBIOS 名について log file が生成されるかどうかを確認。
    24. make_printerdef で読み込めないエントリがあったものを修正
      • patch: sugj-tech: 3668
      • テスト方法:
      make_printerdef xxx.inf "Printer Name" を実行する
      1. smb.conf.default を最新版に
      2. NT_Security.man の削除
      3. smb.conf のマニュアルページおよび smb.conf.default.ja に Mac OS X の UTF-8 関連の記述を追加
  2. 統合予定の修正
    TEST branch に merge 予定のものです。 基本的には samba-2.0.10-ja-1.0 に含む予定です。
  3. 保留中のもの
    現状次期リリース以降に持ち越そうと考えているものです。
    1. パラメータ受渡しに利用していた関数をマクロに展開する修正
      • X-okuyama-expand-param-loadparm_c-FN_GLOBAL_XXXX-and-FN_LOCAL_XXXX-to-defines
    2. make_printdef の patch
      • patch: sugj-tech: 3668
    3. J0005: FreeBSDで一部のアプリケーションからの書き込みに時間がかかる
      # ifdef 0 でなくて、FreeBSD の場合だけこのロジックが有効になるように して取り込みましょうか?
    4. ごみばこ patch
      • patch: samba-jp:09932 Samba 用ゴミ箱
    5. J0013: log が無限に増え続ける
      • patch: samba-jp:10004 log の増大について
    6. UNIX 上で 127 文字より長いファイル名をうまく扱えない問題の修正
      • patch: sugj-tech:3503
      • テスト方法:
      sugj-tech:3454
      C:\> net use f: \\server\share
      C:\> rem > f:\0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.TXT
      C:\> ren f:\*.TXT X*.TXT
      C:\> dir f:\
      Volume in drive F is share
      Directory of F:\
      . <DIR> 06-13-01 11:40a .
      .. <DIR> 05-29-01 5:06p ..
      X1234~R1 0 06-13-01 11:40a X12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345
      ← 126文字以降が落ちている
      1 file(s) 0 bytes
      2 dir(s) 1,057,292,288 bytes free
      C:\>
    7. jis7/jis8/junet で全ての漢字を filename に使えるように修正。
      • patch: sugj-tech:3705
      • テスト方法:
      coding system = jis7/jis8/junet の設定で、「く」「渥」「ッ」(半角仮名) 等を含む filename を作成してみる。
    8. sjis/hex/cap で全ての漢字を NETBIOS 名に使えるように修正。
      • patch: sugj-tech:3705
      • テスト方法:
      coding system = sjis/hex/cap の設定で、「形」「港」等を含む NETBIOS 名の client から access して、 生成される log filename を確認する。
    9. %S macro の日本語対応。
      • patch: sugj-tech:3705
      • テスト方法:
      1. 「log file」等で %S を含む設定をして日本語共有名がそのまま反映されているかどうか確認する。
      2. 「valid users」「invalid users」「username」「read list」「write list」「force user」「force group」 の各設定文字列に「%S」を含み、日本語共有名に対してその効果を確認する。
  4. 現在予定がない(目処がたたない)もの
    現状 merge する予定がそもそもない、できないもの
    1. ブラウズリストの文字化けが再発している件
    2. mangle name 問題 patch
      • patch: samba-jp:10017

参照

Samba 2.0.10 日本語版リリース1.0のリリース

この技術情報は sugj-tech:3726 からの一連のスレッドの議論を元に作成されています。