因為 OpenCollabNet 提供的 OS X 映像檔在我的 10.4 PPC 上老是有名稱空間污染的毛病,單純用指令是沒問題,可是用 subclipse 就會有很大的問題,所以只好自己試試看重編一份,最差的情況就是下去 debug 看看到底是怎樣。
比想像中的順利的多,重新編譯就好了... 不用去改程式。
先把舊的 OpenCollabNet 版的資料夾改名,以避免編譯時去用到 OpenCollabNet 的 binary code 而造成相容性的問題。
sudo mv /opt/subversion /opt/subversion-154
要下載的是 subversion-1.5.5.tar.bz2 與 subversion-deps-1.5.5.tar.bz2 這兩個,後者提供了所需的第三方函示庫的原始碼,直接在同一個目錄下解壓兩者就可以了,檔案都會被解到 subversion-1.5.5 這個目錄之下。
tar -jxf subversion-1.5.5.tar.bz2 tar -jxf subversion-deps-1.5.5.tar.bz2 cd subversion-1.5.5/
在這篇提到可能會跑去找 jikes 這個比較老舊的東西來當 Java 編譯器,然後會因此編不出東西,所以要下 --with-jikes=no
把他關了,才會去用 javac 來編譯。
export CFLAGS="-g -O3" export CXXFLAGS="-g -O3" ./configure --prefix=/opt/subversion --enable-javahl --with-jikes=no make make javahl sudomake install sudo make install-javahl
之前 OpenCollabNet 留下來的 symbolic link 之類的東西大致上都不需要動,可以沿用下來。所以就算是全新安裝,先裝看看 OpenCollabNet 版碰碰運氣也是不錯。
Perl binding 的部份則是要透過 SWIG 來編,也是要另外編譯與安裝。
make swig-pl sudo make install-swig-pl
不過這邊安裝會裝到系統資料夾裡去,要自己把他們搬出來。
sudo mkdir /opt/subversion/lib/svn-perl sudo mkdir /opt/subversion/lib/svn-perl/auto sudo mv /Library/Perl/5.8.6/darwin-thread-multi-2level/SVN /opt/subversion/lib/svn-perl sudo mv /Library/Perl/5.8.6/darwin-thread-multi-2level/auto/SVN /opt/subversion/lib/svn-perl/auto sudo mv /usr/local/man/man3/SVN\:\:* /opt/subversion/share/man/man3/
修改 .profile
把 Perl Module 的目錄加到 PERL5LIB 這個環境變數裡,就可以讓 perl 找到。
export PERL5LIB=$PERL5LIB:/opt/subversion/lib/svn-perl/