|
Samba 国際化プロジェクト
Samba 国際化プロジェクト本プロジェクトは情報処理振興事業協会(IPA)のオープンソフトウェア活用基盤整備事業による委託事業の1つとして採択されました。 ダウンロード
国際化パッチを適用した、MIRACLE LINUX Standard Edition 2.1、Fedora Core 1
の RPM パッケージ (glibc 対応) を作成しました。
(*) perl* パッケージは smbldap-tools を利用するのに必要となります。
* これらのパッケージはサポート対象外です。また、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 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
へ登録済みの不具合です。
|
|