http://www01.u-page.so-net.ne.jp/ba2/nsxt/faq1.html#HardDiskが非常に参考になった(特に磁気シールドの件、実際、事前に調べてあったからあわてはしなかったものの、シールドなしではやはり永眠状態に陥った)。有用な情報を提供して下さった偉大なる先人たちに感謝。
ディスクに余裕ができたので、まず、これも事前に購入してあった MacOS X Public Beta を試すことにする。MkLinux/LinuxPPC な生活という看板に反するが、しばらくは MacOS X な生活が続く。
目標は、X11 が Aqua の中でシームレスに使えること。その前提のもとで、X11 の最低限の日本語環境、そして、仕事のソフトの移植である。仕事のソフトの移植には、もちろん、g77 を含む開発環境の整備も含まれる。
具体的には
ネットワークの設定は、System Preferences ホルダーにある Network utility で変更可能。ネットワークプリンターを使うには、Apple Talk を ON にしておく必要がある。プリンター自体は、Utilities ホルダーにある Print Center utility で設定する。
注意
上のパスワードでユーザー名 root で login できる。また、ユーザー名を
>console とするとコンソール画面となる。ユーザー情報は /etc/pw* にある。
例えば、ssh を起動したい場合 SSH/SSH を見る。
# cat SSH/SSHこれから、環境変数 SSHSERVER が ssh の起動をコントロールしていることが分かる。sshd を "-h /etc/ssh_host_key" をつけて起動していることに注意。さもないと、ssh2 用の /etc/ssh_host_dsa_key 見に行ってしまう。
.....
##
# Start up secure login server
##if [ "${SSHSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting Secure Login Server"
if [ ! -f /etc/ssh_host_key ]; then
echo "Generating ssh host key..."
ssh-keygen -f /etc/ssh_host_key -N "" -C "$(hostname)"
fi
sshd -h /etc/ssh_host_key
fi
....
コントロール変数は /etc/hostconfig で設定する。
# vi /etc/hostconfigこれで、起動時に sshd が自動起動される。
.....
SSHSERVER=-YES-
# suさもないと、インストールに失敗する。これは、Stuffit Expander がファイルパーミッションを勝手に変えてしまうことによる。コマンドラインで unzip コマンドで解凍すれば問題ない。最新の Xtools のお試し版ではこの問題は解決したようである。
# cd /Users/fujiik/Library/Desktop/Xtools/Xtools.pkg/
# chmod a+x Xtools.pre_install
ssh での X11-forwarding を許すためには
# vi /etc/ssh_configとする。
Host *
....
ForwardX11 yes
....
# cd ~/Library/Desktop/これで、Desktop に Developer.pkg ができるので、これをダブルクリックすればインストーラーが起動する。
# tar -zxvf 4.0.31.Download.1
$ cd ~/sandboxこれで XF86 のソースツリーがダウンロードされる。
$ cvs -d :pserver:anoncvs@anoncvs.xfree86.org:/cvs login
$ cvs -d :pserver:anoncvs@anoncvs.xfree86.org:/cvs checkout xc
Apple の CVS サーバーからzさらに開発者ツールを入手するには、まず
http://www.publicsource.apple.com/apsl/で、読み出し専用ユーザー登録をする。その後以下を実行。
$ cvs -d :pserver:fujiik@anoncvs.opensource.apple.com:/cvs/Darwin loginMore Tools to Build Various Apps.
$ cvs -d :pserver:fujiik@anoncvs.opensource.apple.com:/cvs/Darwin checkout bootstrap_cmds
$ cd bootstrap_cmds
$ make
$ su
# make install # DSTROOT=/tmp/bootstrap_cmds
# mkdir /Library/Frameworks
# cp -pr /System/Library/Frameworks/IOKit.framework /Library/Frameworks/IOkit.framework
# mkdir /Local
# ln -s ../Library /Local/Library
# exit$ ~/sandbox
$ cvs -d :pserver:fujiik@anoncvs.opensource.apple.com:/cvs/Darwin checkout xnu
$ cd xnu
$ source SETUP/setup.csh
$ make exporthdrs
$ make install
$ ^C # quit when compilation starts$ ~/sandbox
$ cvs -d :pserver:fujiik@anoncvs.opensource.apple.com:/cvs/Darwin checkout IOKitUser
$ cd IOKitUser
$ vi Makefile
....
NEXTSTEP_BUILD_OUTPUT_DIR = /Users/fujiik/sandbox/xnu/BUILD/dst/System/Library/Frameworks
$ make$ su
# cd ../xnu/BUILD/dst/System/Library/Frameworks/
# cp -Rp IOKit.framework/Versions/A/Headers/* /Library/Frameworks/IOKit.framework/Versions/A/Headers/# cd /Users/fujiik/sandbox/xnu/BUILD/dst/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders
# cp -R libkern/ /System/Library/Frameworks/System.framework/Headers/libkern# vi /Developer/Makefiles/CoreOS/ReleaseControl/Common.make
.....
# RC_ARCHS = ppc i386
RC_ARCHS = ppc
....
Darwin CVS repositry よりさらに
# cd Libm-18-1
# make
# make install
# cd ../Libcurses-23
# make
# make install
共有ライブラリーのインストールがおかしかったので /usr/X11R6/lib/X11/config/MacOSX.rules を変更:
<patch begins>その上で
--- /usr/X11R6/lib/X11/config/MacOSX.rules.ORIG Sat Dec 16 06:37:33 2000
+++ /usr/X11R6/lib/X11/config/MacOSX.rules Mon Jan 15 21:21:01 2001
@@ -37,7 +37,7 @@
#define InstallSharedLibrary(libname,rev,dest) @@\
install:: Concat(lib,libname.dylib) @@\
MakeDir($(DESTDIR)dest) @@\
- $(INSTALL) $(INSTLIBFLAGS) Concat(lib,libname.dylib) $(DESTDIR)dest
+ $(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.dylib) $(D
ESTDIR)dest
@@\#endif /* InstallSharedLibrary */
<patch ends>
$ tar -zxvf Canna35b2.tar.gzとする。macosx patch 以外のパッチは LinuxPPC よりの流用。
$ cd Canna35b2
$ patch -p1 -s < ../Canna-3.5b2.conf.patch
$ patch -p1 -s < ../Canna-3.5b2.Imakefile.patch
$ patch -p0 -s < ../Canna-3.5b2-glibc.patch
$ patch -p1 -s < ../Canna-3.5b2-stdin.patch
$ patch -p1 -s < ../Canna-3.5b2.security.patch
$ patch -p1 -s < ../Canna-3.5b2.macosx.patch
$ export libCannaDir=/usr/local/lib
$ xmkmf
$ make Makefiles
$ make canna
$ su
# mkdir -p tmp/private/var/log
# ln -s private/var tmp/var
# mkdir -p tmp/usr/local
# make install DESTDIR=`pwd`/tmp
# make install.man DESTDIR=`pwd`/tmp
$ tar -zxvf kinput2-v3.tar.gzで終わり。
$ cd kinput2-v3
$ patch -p1 -s < ../kinput2-v3.macosx.patch
$ xmkmf -a
$ make
$ su
# mkdir -p tmp/usr/X11R6/app-defaults
# mkdir -p tmp/private/etc
# ln -s ../../usr/X11R6 tmp/private/etc/X11
# make install DESTDIR=`pwd`/tmp
$ for i in *.tar.gz; do tar -zxvf $i; donemake test はいくつか失敗するが、大胆にも作業続行(実際 LinuxPPC でも Intel Linux でも結構 test に失敗するので)。
$ tcl8.0.5/
$ patch -p2 < ../../tcl8.0.3-glibc21.patch
$ patch -p2 < ../../tcl8.0.5-sigpwr.patch
$ patch -p0 < ../../tcl8.0.5jp1.6.patch
$ cd ../itcl3.0.1/
$ patch -p5 -s < ../../itcl_fix.diff
$ patch -p1 -s < ../../itcl3.0.1jp-tkpath.patch
$ cd ../tk8.0.5/
$ patch -p0 -s < ../../tk8.0.5jp1.6a.patch
$ patch -p1 -s < ../../tk8.0.5jp1.6a-im.patch
$ patch -p2 -s < ../../tcl8.0.5jp-path.patch$ cd ../tcl8.0.5/unix/
$ ./configure --enable-shared --enable-gcc --prefix=/usr/local
$ make LIBS='-L/usr/local/lib/system -lm -lcc'$ cd ../tk8.0.5/unix/
$ ./configure --enable-shared --enable-gcc --with-tcl=../../tcl8.0.5/unix --prefix=/usr/local
$ make LIBS='-L../../tcl8.0.5/unix -ltcl8.0.5jp -L/usr/X11R6/lib -lX11 -lcc'$ cd ../itcl3.0.1
$ ./configure --enable-shared --prefix=/usr/local -enable-gcc
$ make CC='gcc -DKANJI -DKINPUT2 -DXIM_IMPROVE'$ cd ../
$ mkdir -p usr/local
$ cd tcl8.0.5/unix/
$ make install INSTALL_ROOT=/Users/fujiik/sandbox/mypkg/src/tcltk/tcltk/build$ cd ../tk8.0.5/unix/
$ make install INSTALL_ROOT=/Users/fujiik/sandbox/mypkg/src/tcltk/tcltk/build$ cd ../itcl3.0.1/
$ make install INSTALL_ROOT=/Users/fujiik/sandbox/mypkg/src/tcltk/tcltk/build exec_prefix=/usr/local
$ tkdesk-1.2めでたく動いた。canna+kinput2 による日本語入力も問題なし(入力スタートが日本語キーボードの Cntrl+] なのにはちょっとまいるが)。このキーをトグルにするには例によって、~/.canna に
$ patch -p1 < ../tkdesk-1.2+jp.patch
$ patch -p0 < ../exit-save-dd.diff
$ cd tcldesk/
$ patch -p0 < ../../appbar-dnd.diff
$ patch -p0 < ../../empty-trash.diff
$ patch -p0 < ../../find-dd.diff
$ cd ..
$ ./configure --prefix=/usr/local
$ make CC_OPTS="-O2 -DKANJI -DKINPUT2 -DXIM_IMPROVE"
$ ./configure --prefix=/usr/local
$ make CC_OPTS="-O2 -DKANJI -DKINPUT2 -DXIM_IMPROVE"
$ mkdir -p usr/local/{bin,lib,man}
$ make install INSTALL_ROOT=`pwd`
$ cat ~/.cannaなどというおまじないを入れておく。
......
(global-unbind-key-function 'japanese-mode)
(global-unbind-key-function 'alpha-mode)
(global-set-key "\C-\" 'japanese-mode)
(set-key 'empty-mode "\C-\" 'alpha-mode)
$ cd xc/lib/Xaw3d/例によって
$ patch -p0 -s < ../../../Xaw3d-1.1-shlib.patch
$ patch -p4 -s < ../../../Xaw3d-1.3-glibc.patch
$ patch -p3 -s < ../../../Xaw3d-1.3-X11R6.3.patch
$ patch -p4 -s < ../../../xaw3d.patch
$ patch -p4 -s < ../../../Xaw3d-1.3-multisrc.patch
$ xmkmf
$ ln -s .. X11
$ make EXTRA_DEFINES='-DARROW_SCROLLBAR -DUSEGRAY' CC='gcc -g'
$ mkdir -p usr/X11R6
$ make install DESTDIR=`pwd`
# cd /usr/X11R6/libで幸せになれる。
# mv libXaw.dylib libXaw.dylib.ORIG
# ln -s libXaw3d.dylib libXaw.dylib
今までにコンパイルしたもののソースおよびパッチは macosx/src に、またバイナリーの tar ball は macosx/tgz にそれぞれ置いてある。いつものように使う場合は自己責任で。