MacOS X 10.4 (Tiger) ソフトウエア導入記録
PowerMac G5
新しく PowerMac G5 を導入し、そこに、
EasyPackage
のパッケージ・その他を MacOSX にインストールした記録です。
NEW Squeak VM を追加。
10.1 へのインストール記録はこちら
10.2 へのインストール記録はこちら
10.3 へのインストール記録はこちら
X11 for Mac OS X
1枚目のDVDからインストール。
MacOS X Developer Tools をインストール
1枚目のDVDからインストール。
X11SDKを入れようとカスタムインストールにすると,
すでにX11SDKにチェックが入っていたので,そのままインストール。
EasyPackage
Tiger用のインストーラは,Panther用と別になっているようなので注意。
あとは,必要なパッケージをインストールする。
FreeWnn もパッケージに入れてもらったので,実に簡単。
telnet
Tigerでは,inetd や xinetd が動いていない。
どうやら,代わりに launchd を使うようで,telnet の設定ファイルは
/System/Library/LaunchDaemons/telnet.plist にあった。
このファイルの
<key>Disabled</key>
<true/>
の true を false に変更して,
sudo launchctl load ./LaunchDaemons/telnet.plist
とやったら,telnet できるようになった。
これが正しい使い方かどうかは責任持てません。
xon できない?
今まで,X11 で他のホストを使う時,xhost で指定しておき,xon で kterm を
あげていましたが,今回うまくいきません。
Panther の設定ファイル(ホームディレクトリの Library/Preferences/com.apple.x11.plist )
を Property List Editor で開いて比べてみると(Finder で,このファイルをダブルクリックすれば開きます),nolisten_tcp と no_auth が Tiger では Yes になっており,
Panther では,No になっていた。
Panther の設定と同じように変更したら,xon できるようになりました。
セキュリティ上問題があっても責任持てません。
clisp
EasyPackage にない libsigsegv-2.2 をインストールする。
configure & make で良いが,そのままだと必要なヘッダファイルを読まない。
configure 実行前に,configure の 23429 行の
FAULT_CONTEXT_INCLUDE2='#include <ucontext.h>'
を以下のように修正した。
FAULT_CONTEXT_INCLUDE2='#include <ucontext.h>\
#include <mach/thread_status.h>'
libsigsegv-2.2 をインストール後,clisp-2.37 をインストール。
ドキュメントにある通り,以下の手順で無事終了
./configure
cd src
./makemake > Makefile
make config.lisp
make
make install
SWI-prolog
pl-5.6.8 をとってきて,configure & make だが,
/usr/lib/libreadline.dylib(いつ出来たのか不明) が
EasyPackage でいれた readline の自動判定を邪魔する。
/usr/local/lib を先に見に行くように環境変数を設定して
env LDFLAGS="-L/usr/local/lib" ./confgiure
env LDFLAGS="-L/usr/local/lib" make
で,コンパイル成功。
SEPKG
例によって,clisp と SWI-prolog をソースパッケジにまとめておく。
libsigsegv.src.epkg
clisp.src.epkg
pl.src.epkg
gtk+extra-0.99.17
configure する前に,
cd gtk+extra-0.99.17
cp /usr/share/automake-1.6/config.guess .
cp /usr/share/automake-1.6/config.sub .
touch malloc.h
をしておくと良いらしい。
configure & make で出来上がり。
gtk+extra.src.epkg
Squeak VM 3.9-7 (UNIX版)
本校の現代GP「創発的なものづくりリテラシー教育活動」で,
Squeak を使う必要があったため,インストールした。
マイコンと接続するためシリアルポートが必要なので,
USB−シリアルアダプタを利用。
Squeak-3.9-7.src.tar.gz(今はバージョン上がってますね)をとってきて,ソースを展開する。
tar xzvf <somewhere>/Squeak-3.9-7.src.tar.gz
ただ,MacOSX では,シリアルポートのプラグインが動かない。
KEYSPAN のサイトに,シリアルポートを
見つけるプログラムがあったので,それを参考にパッチを作成した。
cd Squeak-3.9-7/platforms/unix/plugins/SerialPlugin
patch -p0 < <somewhere>/sqUnixSerial.c.diff
cd ../..
これで,configure & make だが,シリアルポートのプログラムで,
CoreFondation と IOKit を利用しているため,リンクオプションを追加する必要がある。その後,MacOSX用の Squeak.app を make。
mkdir build
cd build
../config/configure
vi Makefile
LDFLAGS=
の行を
LDFLAGS= -framework CoreFoundation -framework IOKit
と変更。
make Squeak.app
これで,Squeak.app が作成される。ファインダから見ると,ちゃんとアプリケーションに見えるので,ファインダで適当な場所へ移動。
Squeakland2005Jのイメージで起動すると,絵の具箱を出したとき,ボタンの文字がかすれて見えなくなるため,とりあえずの応急処置として,次のチェンジセットを適用する。
MacCocoa3PButton.1.cs
Squeakland2005Jのイメージで起動した後,上記ファイルをドラグ&ドロップし,「fileIn entire file」すれば良いと思います。
残念ながら日本語入力はできませんでした。コピー&ペーストも! 日本語入力ができる方法をご存知の方,ぜひ教えて下さい。
Squeak の中だけのコピー&ペーストなら,
MacUTF8Clipboard.1.cs
で,できました。
動作確認をしたUSB−シリアルアダプタは,KEYSPAN USA-19HS と,ラトックシステム REX-USB60F です。
Squeak VM 3.8.15b1 (Mac 版)
UNIX版では,日本語が入力できなかったので,Mac 版にも挑戦してみました。
本校の現代GP「創発的なものづくりリテラシー教育活動」で,
Squeak を使う必要があったため,インストールした。
マイコンと接続するためシリアルポートが必要なので,
USB−シリアルアダプタを利用。
readme 通りにすればできましたが,よくわからないまま適当にやってますので,
以下の操作方法で本当に良いのかどうかは不明です。
シリアルポートに対応するため,sqMacSerialPort.c をこれに置き換えました。
ビルドするには Xcode が必要です(2.4.1 を使いました。バージョンが古いとダメかも)。
ソースツリーをとってくるのに subversionがいりますが,http://www.codingmonkeys.de/mbo/にパッケージ用意されているので,これを使う(実はかなり前にインストールしていたので,利用したのバージョンは 1.2.3 でした。readme によると,GUIバージョンもあるらしい…)。
まずは,svnをつかって,ソースツリーをとってくる。
svn co http://squeakvm.org/svn/squeak/trunk svnSqueakTree
念のため使ったソースツリーのバックアップ
ここからは,ファインダで操作しました。
- 機種共通のソースを Squeak をつかって生成する。Squeak3.8-6665-MacOS-Full の中にあるファイルを svnSqueakTree の中に移動(plathomeというディレクトリがある所)。
(今検索するとSqueak3.8-6665-MacOS-Fullが出てこないので,ここにおいておきます。たぶんバージョンが上がったからでしょう…)
- Squeak3.8-6665full.image を Squeak 3.8.12beta4U にドラグ&ドロップして,
Squeak を起動。(バージョンアップする?とか聞かれますが,No にしました)
- VMMaker-3.8b6.mcz を Squeak 内にドラグ&ドロップして,
「load version」。(FloatProto がどうとか TheInputSemaphore がどうとか聞かれるが,両方とも Yes)
- svnSqueakTree/plathome/Mac OS/vm/sepecialChangeSets にある VMM38-gc-instrument-image.1.cs と VMM38-64bit-imageUpdates.1.cs をそれぞれ,
Squeak 内にドラグ&ドロップして,「install into new change set」。
- Exupery-wbk.195.mcz を Squeak 内にドラグ&ドロップして,「load version」。
- svnSqueakTree/plathome/Mac OS/vm/sepecialChangeSets にある
VMMaker-wbk.40.8.cs を Squeak 内にドラグ&ドロップして,「install into new change set」。
- 同じく svnSqueakTree/plathome/Mac OS/vm/sepecialChangeSets にある
Gnuifier.7.cs と ArraysToGlobalStruct-JMM.1.cs をそれぞれ,
Squeak 内にドラグ&ドロップして,「install into new change set」。
- Squeak の地の部分でマウスクリックして World メニューを出し,
「open...」,「VMMaker」と選ぶ。
- 「Path to platforms code」の右にある「Find Path」をクリックし,
ソースツリー内の plathome を選ぶ。
- 「Path to generated sources」の src32 を src に変更。
- 「Plugins not built」ウインドウ内の右上の■をクリックし,「make all internal」
- 「Internal Plugins」から,次の名前を選び,「Plugins not built」への移動を繰り返す。
FFIPlugin
FileCopyPlugin
Mpeg3Plugin
TestOSAPlugin
- 「Save」を押し,適当な名前をつけて保存。
- 「Generate:」欄の「Entire」を押し,ソースを生成。
- Squeak の地の部分でマウスクリックして World メニューを出し,
「open...」,「workspace (k)」と選び,workspalce を開き,次のプログラムを
入力。
(Gnuifier on:
((FileDirectory default
directoryNamed: 'src')
directoryNamed: 'vm') pathName) gnuify
- マウスのドラッグでプログラム全体を選び,Option+クリックし,
「do it (d)」
- svnSqueakTree/plathome/Mac OS/vm/Developer にある
resources.zip をダブルクリックして展開し,できた resource フォルダを,
svnSqueakTree の下へ移動(plathomeやsrcと並ぶ)。
- 同じく svnSqueakTree/plathome/Mac OS/vm/Developer にある
SqueakVMUNIXPATHS.xcodeproj.zip をダブルクリックして展開し,
できた SqueakVMUNIXPATHS.xcodeproj を,
svnSqueakTree の下へ移動。
- さらに,svnSqueakTree/plathome/Mac OS/vm/Developer にある
Squeak VM Universal-Info.plist を svnSqueakTree の下へコピー。
- シリアルポートに対応するため,svnSqueakTree/plathome/Mac OS/plugins/SerialPlugin/sqMacSerialPort.c を これで置き換える。
- readmeにある通り,10.3.9のSDKでエラーが出るため,次の3箇所を修正。
sudo vi /Developer/SDKs/MacOSX10.3.9.sdk/usr/include/objc/objc-class.h
@class Protocol;
↓
#ifdef __OBJC__
@class Protocol;
#else
typedef struct objc_object Protocol;
#endif
sudo vi /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/IOKit.framework/Headers/hid/IOHIDlib.h
struct IOHIDQueueInterface
{
IUNKNOWN_C_GUTS;
IOHIDQUEUEINTERFACE_FUNCS_100;
} IOHIDQueueInterface;
↓
struct IOHIDQueueInterface
{
IUNKNOWN_C_GUTS;
IOHIDQUEUEINTERFACE_FUNCS_100;
};
と
struct IOHIDOutputTransactionInterface
{
IUNKNOWN_C_GUTS;
IOHIDOUTPUTTRANSACTIONINTERFACE_FUNCS_120;
}IOHIDOutputTransactionInterface;
↓
struct IOHIDOutputTransactionInterface
{
IUNKNOWN_C_GUTS;
IOHIDOUTPUTTRANSACTIONINTERFACE_FUNCS_120;
};
- SqueakVMUNIXPATHS.xcodeproj をダブルクリックして Xcode を
起動。
- メニューバーの「ビルド」から「ビルド結果」を選び,ウインドウを開く。
- 「アクティブなビルド構成」を「Deployment」にする(不必要かも…)。
(項目が見えない時はウインドウを横に広げると見えます)
- ハンマーのアイコンをクリックし,ビルド
- ビルドが終ると,svnSqueakTree/build/Deployment に Squeak VM Opt ができています。
でき上がった VM : SqueakVM3.8.15b1G.dmg
動作確認をしたUSB−シリアルアダプタは,KEYSPAN USA-19HS と,ラトックシステム REX-USB60F です。