1月 202008
 

以前、Tiger に sendmail-8.14.1 をインストールしたのは書きました。MacOSX は IPv6 対応しているのに MTA である Postfix が IPv6 に対応していないため sendmail に置き換える。と言うのがことの発端であることには変わり有りません;-)。

さて、今回は Apple の最新 OS、しかも UNIX である Leopard にインストールしますが、Tiger に 8.14.1 をインストールしたのと大差ありませんので、割愛するところもあるかと思います。では、行ってみましょう;-)。

・ソースは http://www.sendmail.org/ から持ってくれば良いでしょう。
・/etc/mail は最新の FreeBSD から持ってくるか、以前 8.14.1 をインストールする時に使ったものを代用しても良いでしょう。
・site.config.m4 も以前利用していたもので問題無いでしょう。

それでは sendmail-8.14.2 を make しましょう。注意点としては、Leopaed は Darwin 9.1.0 な OS のバージョンですが、sendmail-8.14.2 は Darwin 8 にしか対応していません。 Build 時のオプションには以下のように指定してあげましょう。

./Build -c -f ~/site.config.m4 -E os=Darwin -E rel=8.9.1

 
インストール後は 8.14.2 をインストールし時と一緒で mail.local をコピーしたり mkdir や chown したりして環境を整えてあげます。これで大体おしまいです。

さて /etc/passwd にユーザを登録し /etc/group にグループを登録した後、Tiger の場合は NetInfo マネージャでユーザを登録していましたが、Leopard ではあの非常に不便な NetInfo マネージャが無くなり、dscl と言うコマンドで行う用になりました。が、それも大変なので「システム環境設定」のメニューから「ユーザの管理」で追加してください。

最後に起動スクリプトについてですが、Tiger の頃よりも Leopard は launchd がメインになりつつあります。なのでねsendmail も /etc/hostconfig ではなく、launchctl で登録して起動するようにしましょう。sendmail は二つのプロセスが起動するので二つの起動用設定ファイルが必要でする以下になります。

org.sendmail.sendmail.plist
org.sendmail.submit.plist

上記二つのファイルを /Library/LaunchDaemons/ にほうりこんだあと以下のコマンドを root 権限で実行します。

# launchctl load /Library/LaunchDaemons/org.sendmail.sendmail.plist
# launchctl start org.sendmail.sendmail
# launchctl load /Library/LaunchDaemons/org.sendmail.submit.plist
# launchctl start org.sendmail.submit

 
正常に起動したかは ps コマンドで確認できます。また、以下の launchctl で起動設定されたか確認するとこがてきまする

# launchctl list | grep mail
1      0       org.sendmail.submit
2      0       org.sendmail.sendmail

 
launchctl コマンドと設定ファイルである plist ファイルにはそれぞれ意味があるのでここには書きませんが頑張ってみてください。もしかすると launchctl load -w /Library/LaunchDaemons/org.sendmail.sendmail.plist などと 「-w」 オプションをつけたりとかするともっと幸せになれたりする場合もあります。

と、言うことで、Tiger から Leopred にバージョンアップしたことで、

・NetInfo マネージャは使わない。
・そろそろ /etc/hostconfig による /Library/StartupItems 使うのやめようよ・・。

の二つはキーワードになるかもしれないですねぇ;-)。

1月 162008
 

IntelMac の MacBook Dore2Duo 2G を持っているのだけど、Leopard がインストールされている。僕は日本語入力に「ことえり」を「かな入力」で使っているのだけど問題点が多くて困っていた。ちょっとあげてみると以下の通り。

・「かな入力 ON」の時 Emacs キーバインドのカーソル移動がことえりに食われてしまい正しく動作しない。例えば C-a は C-ち になってしまうなど。
・iTunes の検索の所に日本語が入力できない。
・Thunderbird はキー入力を一切受け付けない時がある。
・Firefox の認証のタグでキー入力を一切受け付けない時がある。

などなど。これらは入力形式を「かな入力」から「ローマ字入力」に変更することにより問題を回避できることを確認した。

Tiger の時のことえりは上記について全く問題無く動作していたのでこれは明らかに Leopard でバグを入れ込んでしまったようだ。しかし、それにしても悲惨な状態で、MacOSX で長文を打つのがイヤになって来る状態である。

この状態を打破すべく考えたのが、Tiger のことえりが素晴らしいものなのであるなら、 Tiger の Kotoeri を Leopard で起動すれば良いんだ。と思ったわけですよ。でもって実施した作業は以下の通り。

・手もとに PoerBook G4 があり Tiger が動いている。
・/System/Library/Components/ に Kotoeri.component があるのでこれを tar で持って来る。
・Leopard 上の /System/Library/Input\ Methods/ に展開
・mv Kotoeri.app Kotoeri.app.ORG
・ln -s Kotoeri.component Kotoeri.app

さてと、作業は以上。mv コマンドを実行した段階で launchd が見事に反応してくれます。「ことえりの動作がおかしいよん。」って・・。でもってシステム全体が不安定になるので、しょーがないからリモートの PC から ssh でログインし、そっちで作業。けども結局、Contents/MacOS/Kotoeri は起動することは無かったのでした・・。しくしく。つまり無駄骨。

ちなみに僕が試した Kotoeri バイナリは Mach-O bundle ppc と言うことでユニバーサルバイナリではない。けど、ロゼッタで動くかなぁ?とか思ったけど、ダメだったみたい。と、言うか、IntelMac の Tiger から Kotoeri を抜いて来たわけではないので起動できない根本的な原因がどこにあるかは今だに不明・・。

version.plist の中身を確認すると Tiger の Kotoeri は 4.0.4、Leopard の Kotoeri は 4.1.1 みたい。4.0.0 -> 4.1.0 にバージョンをあげたときに Apple は「かな入力」をおかしくしてしまったのねぇ・・。アーメン。

11月 082007
 

MacOSX 10.5、Darwin9.0.0。別の名を Leopard と言うんですけど、10/26 に秋葉ヨドバシに 18:20 位に行って、並んで買って来てしまった。この時に貰ったモノは T シャツ・iTMS の 1,500yen 分のクーポン券。後、ポイントも 700ポイント位ついたかなぁ。

でもって、こないだの週末に、バックアップして一旦全部消してからサラでインストールしてみた。現在利用ている最中ですけど・・。

・Safari が emacs のキーバインドを捨てたのはちょっとショックが大きい。
・ターミナルはせっかくタブに対応したんだけど、タブを移動するショートカットが無い。
・Space の使い方がいまいち解らない。アプリケーションを別のスペースに移動できないし・・。
・Doc は下にないとけっこうつまらないもの。

などなど、ちょっといじっただけでこれだけの不満が・・。まだ使い込んでないので本当は上記の問題は解決できるのかもしれないけどねぇ。今後の課題と言うことで。

で、今回の本題。

http://ranger.users.finkproject.org/kde/index.php/Home

MacOSX で KDE4 がネーテブに動作する。と言うもの。 FreeBSD で KDE3 を使っている僕にとっては素晴らしいことなんだけど、これの凄いのが、qt/Mac を利用しているので X11 が必要無い。なので MacOSX ネーテブに動作する。と言う点。

ターミナル・ブラウザ・オフィスアプリ・ゲームなどが利用できるようになる。凄いねぇー。

僕はまだインストールしてないんだけどね(^^;;。今晩早速試してみることにするですよー。

ってか、もっと MacOSX をたくさん触らないとなぁ。sendmail-8.14.2 はもうインストールしたんだけどねー。

10月 172007
 

僕は Core2Duo 2GMHz な MacBook を持っている。人に教えていただいたのだが SpeedIt なるものが存在するみたい。

どんなものかと言うと、FreeBSD で言う所の cpufreq.ko みたいな感じ。そもそも Core2Duo は SpeedStep に対応しているはずなんだけど MacOSX 自体はこの機能を積んでないみたい。なので、外部から拾って来たカーネルモジュール(MacOSX 風に言うと「カーネルエクステンション」です)を kldload (MacOSX 風に言うと「kextload」です)してしまいましょう。と言う感じ。

さて、実際に MacOSX に SppedIt をインストールしてみましょう。以下の URL から SpeeditOSX10.4.10.zip をダウンロードしてどっかに展開します。

http://www.increw.com/en/downloads/index.php

展開した時にできた speedit.kext と言うディレクトリを root 権限で、/boot/modules/ が無いのでしょーがない。/Applications/ 辺りにコピーします。

FreeBSD ユーザは kextload に慣れていないので、.tcshrc 辺りに以下の設定を書いてしまいましょう;-)。で、source ~/.tcshrc を実行。うひひ。

alias  a       alias
a       kldload 'kextload \!*'
a       kldunload 'kextunload \!*'
a       kldstat 'kextstat \!*'

 
これで設定完了。後は以下のようにすれば良いでしょう;-)。実際にロードされたかは kldstat、カーネルモジュールを外す時は kldunload。おー。FreeBSD と一緒だ;-)。

# kldload /Applications/speedit.kext

 
さて、 speedit.kext を kextload すると新しい sysctl MIB が増えます。

speedit.currentfreq: 1000
speedit.minfreq: 1000
speedit.maxfreq: 2000
speedit.temp_is_valid: 1
speedit.temp: 58

 
Intel の SpeedStep が有効になっていたならば speedit.currentfreq の値が変わってもよさそうなものなのに変わらないねぇ・・。困ったよ。このカーネルモジュールが本当に有効になって、CPU 速度が可変になっているのかちょっと解らない・・。まぁ、けど、取り敢えずは動いているみたい。あぁ・・。

で、しばらく運用してみたけど、どうも動いているっぽいけど、やはりちゃんと CPU 速度は知りたいものだ。で、僕はハタと考えた。ここいら辺りに書いた日記では FreeBSD/amd64 において Cool’n’Quiet を有効にするための FreeBSD 謹製ではないカーネルモジュールがあるんだけど acpi_ppc と言うのね。この中に chkfreq と言うコマンドがあって、これが MacOSX で使えるのではないか。と。

と、言うとこで早速 acpi_ppc をダウンロードしてきて、ソースを展開。すかさず chkfreq のディレクトリに移って bsdmake と叩いてみました。おーー。make までちゃんと通るじゃん;-)。できたバイナリはこんな感じ。

Makefile:  ASCII text
chkfreq:   Mach-O executable i386
chkfreq.c: ASCII C program text
chkfreq.o: Mach-O object i386

 
さて、バイナリができたので早速使ってみましょう。 chkfreq 200 とかしてコマンドを実行すれば一秒置きに 200 回、 CPU 速度を表示してくれます。FreeBSD/amd64 上で正しく動作していたのですが、なんとなーーっ!! MacOSX 上でも正常に動作するじゃないのさーーーっ!!

僕の MacBook で試した所一番遅いクロックで 435851232 で約 435MHz でしょうか。で、大きなプログラムを make している時に計測したら 1994984316 で約 2GHz と言う値を示してくれました。

いやぁ。MacOSX って UNIX なんだなぁ。そして FreeBSD なんだなぁ。と再確認した瞬間なのでした;-)。

まぁ、どーでも良いのだけど、今回の発見は FreeBSD/amd64 と MacOSX の両方を使っている人でないと発見できないワザだったかもしれんですねぇ。これで CPU 速度が SNMP で取れるようになるぞぉー。

5月 032007
 

僕は Core2Duo な MacBook を持っているんだけど、以前から MacOSX で納得のいってなかったのは、 MTA が IPv6 に対応していないこと。そー。MacOSX では Postfix が default で入っているのだけど、こいつが IPv6 に対応していないX-(。

なので最近は、FreeBSD の sendmail のバージョンがアップする度に MacOSX に sednamil をインストールしている。今回はそのインストール方法についてまとめて掲載してみよう。まぁ、一種の自分の忘却録みたいなモンだけどね(^^;;。

僕の手元には FreeBSD があるので MacOSX に最新版の sendmail をインストールするときには FreeBSD が必須となっています。以下、MacOSX に sendmail をインストールするときに必要なもの。

1. FreeBSD の /etc/mail 配下一式。FreeBSD STABLE などから tar で固めて持ってきましょう;-)。
2. /usr/ports/mail/sendmail/files/site.config.m4 と site.config.m4.ipv6
IPv6 対応にする sendmail にするためには以下のコマンドを打って site.config.m4 を作成すれば良いでしょう。

% cd /usr/ports/mail/sendmail/files/
% cat site.config.m4 site.config.m4.ipv6 > ~/site.config.m4

 
3. sendmail-8.14.1 のソースコード。

さぁ。準備は整いましたか?では続いて sendmail の build と行ってみましょうか。

1. MacOSX 上で sendmail のソースを展開します。
2. Build スクリプトを実行します。大体以下のような感じ。os と rel は uname -a コマンドを実行し、自分の MacOSX のバージョンに合わせます。

% cd /usr/local/src
% tar xvzfp sendmail.8.14.1.tar.gz
% cd sendmail-8.14.1
% ./Build -c -f ~/site.config.m4 -E os=Darwin -E rel=8.9.1

 
次に build が終わったらインストールしますがその前にディレクトリを掘って上げます。なお、Build install では mail.local をインストールしてくれないのでこれだけは手でインストールします。また、sendmail.cf を作成するために cf ディレクトリを /usr/share/sendmail/ 配下にコピーします。

# mkdir /var/spool/clientmqueue
# mkdir /etc/mail
# mkdir /usr/share/man/cat1
# mkdir /usr/share/man/cat5
# mkdir /usr/share/man/cat8
# ./Build install -E os=Darwin -E rel=8.9.1
# cp -pr ./obj.Darwin.8.9.1./mail.local/mail.local /usr/libexec/
# cp -pr cf /usr/share/sendmail/

 
以上で sendmail のインストールは完了です。

FreeBSD から /etc/mail 配下を持って来ているのでそれをそのまま MacOSX に展開します。/etc/mail 配下では bsdmake とたたくと m4 マクロから sendmail.cf を作成してくれることでしょう。

しかし、これだけでは sendmail が動作しないのが MacOSX です。sendmail が正しく動作するために環境を整える必要があります。

まずは NetInfo マネージャで sendmail が動作するユーザを登録します。これは FreeBSD の /etc/passwd、group ファイルと同じでいいでしょう。 以下の二つを NetInfo マネージャ から users と groups に登録します。

- /etc/passwd
smmsp:*:25:25:Sendmail_Submission_User:/var/spool/clientmqueue:/usr/sbin/nologin

 

- /etc/group
smmsp:*:25:

 
次に各種ディレクトリの整合性を取ります。sendmail 用のディレクトリを作成します。また、sendmail は自分が参照するディレクトリが 775 だと動かないのでそれを直してあげる必要があります。裏を返すと MacOSX は全然安全では無い OS。と言うことですね・・X-(。

# chown root:smmsp /usr/sbin/sendmail
# chown smmsp:smmsp /var/spool/clientmqueue
# chown root:smmsp /var/mail
# chown root:daemon /var/spool/mqueue
#chmod 40770 /var/spool/clientmqueue #chmod 40750 /var/spool/mqueue
# chmod 40755 /Users/ # chmod 40755 /Users/takachan/ # chmod 40755 / # cp /dev/null /var/log/sendmail.st

 
さてと・・。最後の三つの chmod でディレクトリのバーミッションを変更していますが、これやると、一般ユーザから NetInfo マネージャが動作しなくなります(ユーザ情報の登録・変更などができなくなります)。怖いですねぇ・・。しかし、775 になっている OS はそーそー使いたくないものです。この際だから 755 に変更してしまいましょう。

NetInfo マネージャが使えなくなると困るので、ログイン画面から root でログインできるようにします。NetInfo マネージャで root にパスパードを設定してあげれば良いです。そうすれば、NetInfo マネージャを使いたい場合は、いつでも root でログインして利用することができます。

以上で sendmail のインストールは完了です。後はスタートアップスクリプトを書くだけです。まぁ、あれなんですけど、/etc/hostconfig から起動するようにしましょうかね。以下の行を /etc/hostconfig に書きます。

# User Services
MAILSERVER=-YES-

 
でもって起動スクリプトSendmail を用意しました。これを /Library/StartupItems/ に展開すれば、起動時に sendmail が起動するようになるでしょう。

さて、これで以上ですが、あなたも MacOSX で IPv6 な MTU の世界をお楽しみください;-)。

4月 162007
 

原因はまるで解らない。MacOSX 上で IRC を起動してもサーバに接続できなくなってしまった。reicha や wide などの IRC サーバに根こそぎ接続できなくなっている。

以前は出来ていたのでおかしい。バーチャル PC を入れてからの様な気がする。Vmware と Parallels をインストールしたんだけど、インターフェースを勝手に生成しているねぇ。と言う感じ。

UNIVERSAL バイナリの IRCat や、Parallels の上の WindowsXP の IRC クライアントソフトでもやはり接続できない。おかしいなぁ・・。

で、しばらく我慢していたのだけど IRCat って IPv6 Ready だったのね。と言うことで reicha の IPv6 の FQDN を記述したら無事に IRC が復活した。ふぅ・・。

それにしても何が IPv4 の IRC のパケットを止めているのだろう・・。tcpdump しても返事は帰ってくるのにねぇ・・。

まぁ、当面は IPv6 で IRC するか。

3月 102007
 

前回の日記で、ストリーミングに DSS 使ってます。って書いたけど、ちょっとだけまとめておきますね。

DSS は ports からインストールすると非常に簡単なのだけど、/usr/local/etc/streaming/ の下に qtgroupsと qtusers の二つのファイルを用意しないと動かないのでこの二つは必ず生成しましょう。

僕は MacOSX も持っているので QuickTimeBroadcaster で「中継」することもできるのです。安い USB カメラでも最近は MacOSX 用のドライバがあったりするので比較的容易に「中継」することが可能です。
あ、僕の持っている MacBook には default でカメラ付いているんだった。けど、あのカメラは向きが変えられないので「中継」にはちょっと使えないです・・。

録画した動画を配信するためには QuickTimePlayerPRO が必要になります。動画を QuickTimePlayerPRO でストリーミング形式に書き出してから、その書き出されたファイルを /usr/local/share/DarwinStreamingServer/movies/ に保存します。ストリーミング形式に変換していない動画を配信することはできないので注意してください。

後は、http://localhost:1220/ にアクセスして、「プレイリスト」などで設定すれば中継できるようになります。

しかし、DSS-5.5.4 は表示が英語なのでちょっとしきいが高いですねぇ。そんな時に見つけた技が、まだフリーで配布していた頃の QTSS-4.2 を Apple のサイトからダウンロードしてきて、AdminHtml と言うディレクトリの下に html_ja と言うディレクトリがあるので、それを抽出することです。html_ja には日本語テキストが入っているのでそれを持ってきます。後は FreeBSD にインストールした DSS に対して以下のコマンドを実行するだけ。

# cd /usr/local/share/DarwinStreamingServer/AdminHtml
# mv html_en html_en.org
# hogehoge
# ln -s html_ja html_en

 
QTSS みたいに言語は自動判別してくれないので html_en に symlink してあげれば良いでしょう。表中の hogehoge はおまじないです;-)。

実は DSS-5.5.4に対応した日本語テキストを既に持っています。QTSS-4.2 から増えたメッセージテキストの差分を追加したものがあります。なので僕が利用している DSS は既に日本語化されています;-)。Apple のライセンスがどうなっているのかあんまり深く考えないようにしているのですが、ここ いらへんにあったりします;-)。(hogehoge の部分で利用してください)

と、言うことで、DSS について書いてみましたが、DSS は MacOSX がないと「中継」できないし、QuickTimePROがないと「ストリーミング」できないし、本当にやっかいです。けど、MacOSX を持っている人にとってはいろいろ楽しめます。皆さんもちょっと遊んでみてください;-)。

あ、ちなみに DSS-5.5.4 の ports ですが、FreeBSD/amd64 で make は通るのですが、実際に動作させようと思っても動きません。DarwinStreamingServer 自体は起動するんだけど、http://localhost:1220/ にアクセスしても応答が無くログイン画面が表示されないため、実質利用できない。と言う感じです。

ちょっと格闘してみたのですが、MacOSX は gcc-4.0.1 を使っているのに対して、FreeBSD は gcc-3.4.6 なのでその影響があるのかな?とも思えます。port:1220 にログインした時の「メイン」の画面では サーバ上の現在時刻 が 1900年 とか表示されているし、なんか、64bit 周りでおかしいのかなぁ。とは想像がつきます。

試しに gcc-4 で make したことがあるのですが、make が通りませんでした(^^;;。
files/patch-CommonUtilitiesLib::OSHeaders.h 辺りに修正を入れれば make は通るとは思うのですが、僕は最近の C を知らないので 64bit に対応するにはどう書いたら良いのかよくわからないのでした・・(^^;;。

と、言うことで、gcc-4 で make が通るパッチをどなたか書いてください。nork さぁ〜ん;-)。