Mac OS X Tips
smbfsのパッチ

Mac OS X 10.3 (Panther)では、以下のパッチは不要です

smbfsでファイル名に [ と ] を使えるようにする

旧情報(バイナリパッチ)はこちら

最近Windowsではファイル名に"[]"(堅いカッコ)を使うことが多くなってきたわけですが(ex. "[エロ]エロエロ.mpg")、残念ながらMac OS Xのsmbfsでは"[]"を含むファイル名を正常に扱うことができません。既存のファイルを読むことはできるんですが、新たに作成したり、削除したりしようとすると、Finderでエラー -43が発生します。

TIL 107032によると、Windowsではファイル名に"[]"を使うことはできないとなっていて、仕様とされているんですが、少なくともLFN(Long FileName)では許されて然るべき。

というわけで、darwinからsmbのソースを引っ張ってきて、パッチを作ってみた。以下、その作業メモ。

UserNotification のインストール

まず、darwin の UserNotification をインストールする。こんな感じ。

$ cd UserNotification
$ make
$ sudo make install
$ cd /tmp/UserNotification
$ sudo ditto . /

間違っているかもしれないので各自確認すること。必要なライブラリとヘッダファイルが /usr/local 以下にインストールされるハズ。

smbfs を修正

darwin の smb に次のパッチを当てる。

smbfs_allow_brackets.patch

ProjectBuilder か、pbxbuild でコンパイル。

$ cd smb
$ pbxbuild
$ ls build

kext をインストール

作業前に、全ての smb ボリュームを unmount すること。

$ cd /System/Library/Extensions
$ sudo kextunload smbfs.kext
$ sudo mv smbfs.kext smbfs.kext-backup
$ sudo cp -r ${YOUR_SOURCE_PATH}/smb/build/smbfs.kext .
$ sudo touch /System/Library/Extensions

smb ボリュームをマウントして、効果を確認する(再起動は必要ない)。

(2003.6.26)