2000/08/24    Root 2.25/02 and Physics Simulation Package

Root がバージョンアップ。CINT が最新版になったことで、今まで共有ライブラリーのダイナミックローディングをするとごく希に発生していた問題が解消した。一方、2.25.01 に移った段階でGUI 関連の一部のインターフェースで、後方互換性がなくなった。これにともない、JSF や Physsim も変更が必要であった。

[0] 開発環境の更新

Franz Sirl の最新版を、ftp://devel.linuxppc.org/users/fsirl/R5/RPMS/ppc より入手。
glibc-2.1.3-15d.ppc.rpm
glibc-devel-2.1.3-15d.ppc.rpm
glibc-profile-2.1.3-15d.ppc.rpm
bzip2-1.0.1-2.ppc.rpm
bzip2-devel-1.0.1-2.ppc.rpm
rpm-3.0.5-7.6xa.ppc.rpm
rpm-build-3.0.5-7.6xa.ppc.rpm
rpm-devel-3.0.5-7.6xa.ppc.rpm
rpm-python-3.0.5-7.6xa.ppc.rpm
を "rpm -Uvh" で放り込む。

[1] Root 2.25/02

binutils、gcc の更新後、ROOT のバージョンアップ。使った開発環境は
gcc*-2.95.3-2cm
glibc-2.1.3-15d
binutils-2.10.0.9-0a
XFree86-3.3.6-8a
freetype-1.3.1-1a
Mesa-3.2-3a
コンパイルの手順は、
$ tar -zxvf <somewhere>/root_v2.25.02.source.tar.gz
$ tar -zxvf <somewhere>/ttf_1.1.tar.gz
# su
# mv ttf/fonts /usr/share/fonts/ttf
# pushd /cern/pro/lib
# ln -s libpythia6134.a libPythia.a
# exit
$ cd root
$ export ROOTSYS=`pwd`
$ export LD_LIBRARY_PATH=$ROOTSYS/lib
$ export PATH=$ROOTSYS/bin:$PATH
$ patch -p1 -s < ../orig/root_v2.25.00-config.patch
$ patch -p1 -s < ../orig/root_v2.25.00-g2c.patch
$ patch -p1 -s < ../orig/root_v2.25.00-rmkdepend.patch
$ patch -p1 -s < ../orig/root_v2.25-x3d.patch
$ patch -p0 -s < ../orig/root_v2.25.00-test.patch
$ sh configure linuxppcegcs
$ make
$ rm histpainter/src/THistPainter.o
$ make OPT='-O1' all-histpainter
$ make
である。いぜんとして THistPainter.cxx は "-O2" では正しいコードを発生しない。 あてたパッチは、Mesa のヘッダーの在処を教える config パッチ、FORTRAN コードを使っているパッケージのリンクのための g2c パッチ、標準 g++ ヘッダーの在処を教える rmkdepend パッチ、そして、とりあえず 16bpp で x3d が動くようにする x3d パッチである。
できたバイナリーは
root_v2.25.02_linuxppc2000.tar.gz
である。
TrueType のパスを /usr/share/fonts/ttf に変更したので ~/.rootrc もそれに合わせて 編集しておく。
$ ~/.rootrc
#Unix.*.Root.TTFontPath: $(ROOTSYS)/ttf/fonts
Unix.*.Root.TTFontPath: /usr/share/fonts/ttf

[2] 物理の解析パッケージ(Physsim-2000a-4)の更新

Root の更新にともない、jsf に手直しが必要であった。physsim は、標準 gui.C を使うように変更。これに伴い、各イベントジェネレーターの prod ディレクトリーにあった gui.C を削除した。動的にロードすべき共有ライブラリーは jsf.conf の中で
JSF.SharedLibraries:    libXXSpring.so:libAnlib.so
のように指定する。

最新版のソースファイルは

jsf-1-15.28.tar.gz
lclib-2000-1.tar.gz
physsim-2000a-4.tar.gz
これは、root_v2.25.02 以降のバージョンでないと正常動作しない可能性があるので注意。

Back to Keisuke Fujii's MkLinux/LinuxPPC Life