MIRACLE

メールサービス申込 ユーザー登録&ログイン パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

テクノロジー情報



Samba 国際化プロジェクト

Samba 国際化プロジェクト

本プロジェクトは情報処理振興事業協会(IPA)のオープンソフトウェア活用基盤整備事業による委託事業の1つとして採択されました。

ダウンロード

国際化パッチを適用した、MIRACLE LINUX Standard Edition 2.1、Fedora Core 1 の RPM パッケージ (glibc 対応) を作成しました。
以下のリンクよりダウンロードしてください。
なお、以下の RPM パッケージとパッチは GPL ライセンスで公開されています。

更新履歴
2004年9月6日 MIRACLE LINUX Standard Edition V2.1用のsamba-3.0.5-16mlのパッケージを掲載しました。
2004年7月27日 MIRACLE LINUX Standard Edition V2.1用のsamba-3.0.5-13mlのパッケージを掲載しました。
2004年7月13日 MIRACLE LINUX V3.0、MIRACLE LINUX Standard Edition V2.1用の samba-3.0.4のパッケージを掲載しました。

(*) perl* パッケージは smbldap-tools を利用するのに必要となります。
smbldap-tools パッケージを使用しない場合、samba パッケージ以外は インストールする必要はありません。

* これらのパッケージはサポート対象外です。また、MIRACLE LINUX Standard Edition 2.1 のパッケージに関しては、glibc のバージョンを 2.2.4-38ml 以降にアップデートする必要があります。

また、ソースコードに適用するパッチは以下のリンクよりダウンロードしてください。

日本Sambaユーザ会の FTPサイト などから Samba 3.0.2a のソースを入手し、 カレントディレクトリにて下記のコマンドを実行してください。

    tar jxvf samba-3.0.2a.tar.bz2
    tar zxvf samba-3.0.2a-i18n.tar.gz
    patch -p0 < samba-3.0.2a-i18n.patch

主な修正点は「プロジェクトの成果」を参照してください。

背景

Sambaの最新バージョンである3.0では、国際化対応を進めるために内部的な文字コードの扱いが旧バージョンの2.2から大幅に変更されました。これまでのマルチバイト対応のコードの多くが書き直されましたが、その結果多くの国際化に関する不具合が内包された状態で正式版がリリースされてしまいました。

本開発プロジェクトはSambaの開発体制や検証環境の強化を行い、Sambaのマルチバイト対応をWindows2000サーバと同等レベルに引き上げることを目標にしています。

これまでのプロジェクトの成果物は以下の通りです。

ドキュメント

   Samba 入門
   Samba 3.0がやってきた (UNIX USER 2003年12月号掲載 執筆: 小田切耕司)
   Samba 3.0入門ドキュメント (Linux magazine 2003年12月号掲載 執筆: 武田保真)

プロジェクトの成果

  国際化テストセットの作成

Samba の自動国際化テストセットを作成しました。 詳しくはビルドファームの詳細 を参照してください。

  NetBIOS名、ワークグループ名のマルチバイト対応

オリジナルのSamba 3.0に含まれるnmbdは、完全なマルチバイト対応化がされていません。使用するマルチバイト文字列によっては、nmbd が落ちてしまう場合があります。(BUG #784)

修正パッチによって、SMBプロトコルの制限であるCP932で15バイト文字の範囲なら、 どの文字列でも使用できるようになりました。なお、この修正はすでに本家の CVS に取り込まれていますので Samba の次期リリースからは対応済みとなります。

  nmblib ライブラリのマルチバイト対応

nmblib などのライブラリ用のソースコードでは、ロケールに依存された関数が 使用されていたため、ja_JP.eucJP ロケールなどを使用している環境下では マルチバイト文字を含む NetBIOS 名解決など多くのマルチバイト処理で 失敗していました。

修正パッチによって、ロケールに依存せずにライブラリがマルチバイト処理を行うことが可能になりました。

  共有名が一部の文字を使用できない問題

unix charset をCP932に指定したとき、共有名が "表" などの 2バイト目が 0x5C コードを含んでいる場合に、クライアントからアクセスできない問題が発生します。(BUG #494)

修正パッチによって、このバグは取り除かれます。なお、この修正はすでに本家の CVS に取り込まれていますので、Samba の次期リリースからは対応済みとなります。

  ツールから一部の文字を含む共有へ接続できない問題

unix charset をCP932に指定したとき、共有名が "表" などの 2バイト目が 0x5C コードを含んでいる場合に、ツールがアクセスに失敗しる問題が存在します。(BUG #1088)

修正パッチによって、このバグは取り除かれます。なお、この修正はすでに本家の CVS に取り込まれていますので、Samba の次期リリースからは対応済みとなります。

  unix charset=CP932 時に smb.conf が正しくパースできない問題

unix charset をCP932に指定したとき、共有名が "評" などの 2バイト目が 0x5D コードを含んでいる場合や、パラメータ行に "表" などの 2バイト目が 0x5C コードを含んでいる場合、Samba が正しく設定ファイルをパースできない問題が あります。(BUG #962)

修正パッチによって、このバグは取り除かれます。

  一部のマルチバイト文字が正規化で文字化けしてしまう問題

unix charset が EUCJP-MS の場合、共有名にローマ数字の大文字を使用すると、 その共有への接続に失敗します。これは、ローマ数字の大文字と小文字では バイト数が違うのですが、Samba は同じと仮定しているため発生する問題です。 (BUG #1029)

修正パッチによって、このバグは取り除かれます。

  Samba 2.2日本語版からの移行

バージョン変更に伴い機種依存文字など一部の文字コードポイントに変更があるため、 移行の際にはファイル名、ディレクトリ名を変換するツールが必要になります。 詳しくはこちらのページを参照してください。

当プロジェクトで smbchartool の機能を拡張したことにより、 このツールを使用した、スムーズな移行が可能となりました。

  HEXモジュールの作成

Samba日本語版 2.xでサポートしていたエンコーディングです。 CAPモジュールと同様のvfsモジュールとして製作し、近く CVS にも登録される 見通しです。

  ドキュメントの翻訳

man ページと Samba HOWTO ページの一部を翻訳しました。 詳しくはこちらを参照してください。

  Samba Team とのコミュニケーション

日本語を中心としたいろいろな国際化にまつわる問題をメーリングリストで指摘し、 ドキュメントにまとめました。英文のドキュメントに関しては こちらを参照してください。

課題

  Sambaのマクロ文字のマルチバイト対応

%U、%m、%L といったSambaマクロの利用時に、マルチバイト文字が '_' に置き換えらます。

  SFN (Short File Name) の名前衝突

Sambaでは長い名前を持つファイルに対して8.3形式の別名を使用することができますが、 似た名前を持つ複数のファイルが存在する場合、別名同士が衝突する可能性があります。
この問題によって、ドラッグアンドドロップなどの操作で正しくファイルを選択できないことがあります。

  SWATの表示について

display charsetパラメータと、日本語ドキュメントの表示に用いられるHTMLファイルのエンコーディングの関係が適切でないと考えています。 現状では display charsetパラメータとunix charsetを同じ値に設定してSWATを利用する必要があります。

  マルチバイト文字のファイル名を用いたベンチマーク

現在の実装では、マルチバイト環境での性能に問題があると思われる箇所が多いため、性能測定を実施するためのマルチバイト環境用のベンチマークの作成、実測が必要と考えています。

障害状況報告

samba.org の Bugzilla へ登録済みの不具合です。

【表2】 現在の Bugzilla のステータス
BUG IDSTATUSDESCRIPTION
412FIXEDd_printf() が '\' を適切に扱えない
456 FIXEDSWAT 用のメッセージファイルがインストールされない
570 FIXEDLDFLAGS が適切に設定されない
587 ASSIsmbcontrol の仕様について
589 FIXEDsmbclient の -N オプションの仕様について
593 NEW%U マクロにマルチバイト文字が利用できない
617 FIXEDnet コマンドの man の誤り
618 FIXEDsmbcquotas コマンドの man の誤り
619 NEWsmbcacls コマンドの仕様について
620 ASSIsmbcacls コマンドの man の誤り
625 FIXEDwinbindd の man の誤り
631 FIXEDwrepld がビルドされない問題
761 FIXEDprinting パラメータの設定の問題
763 FIXEDpdbedit の -x オプションの返り値
770 FIXED印刷時のキャンセルができない問題
784 FIXEDunix charset = UTF-8 の時、nmbd が SIGSEGV する問題
900 FIXEDcmd_symlink などのクライアントで使用する関数が正常に動作しない問題
924 FIXEDsmbtorture で無効なテスト名を指定しても成功を返してしまう問題
953 NEW一般共有のあとに定義されている global セクションの定義が反映されない問題
962 NEW共有名に (0x5D) を含んだマルチバイト文字を使用できない問題
1012 REOP一般ユーザで smbclient でサーバ一覧を表示できない問題
1029 ASSI一部のマルチバイト文字が正規化で文字化けしてしまう問題
1051 NEWsmbclient で "direcotory\filename" を削除できない問題
1054 FIXEDsmbtree コマンドの man の誤り
1055 FIXEDnet share コマンドで 12 バイト以上の共有名が区切られてしまう問題
1066 FIXEDSWAT で d_printf() のかわりに printf() を使用している問題
1088 FIXEDsmbclient で (0x5C) を含んだマルチバイト文字のホスト名を参照できない問題
1089 ASSIslprintf がロケール依存の関数を使用している問題
1095 NEWクライアントの -l オプションが有効にならない問題
1109 NEWNetBIOS 名の mangle に to_upper を使用している問題
1129 FIXEDSWAT のイメージを自動的にインストールしない問題

その他

今プロジェクトで開発したリグレッションテストを新しい Samba のリリースの度に 行い、国際化に伴う欠陥が見つかれば積極的に Samba Team に報告し、早期のバグ 修正を行っていきたいと思います。



会社情報 採用情報 個人情報保護方針 情報セキュリティ基本方針 商標等取り扱い事項 English
Copyright(c)2000-2015 MIRACLE LINUX CORPORATION. All Rights Reserved.