2000/02/09    Sorry for My Long Silence

気がつくと1月近くたっていた。この間、仕事にスキーに多忙を極め日記をつける余裕がなかった。何をしたのかもうかなり記憶が怪しいが、思い出す努力をしてみる。
 

[1] jp-TkDesk-1.2-1c

TkDesk のサイトから手には入る正式パッチ(appbar-dnd.diff,empty-trash.diff,exit-save-dd.diff,find-dd.diff)の一部が更新されたのでRPMを作り直し。RPM を作るのに使った SPEC はこれ。できた RPM は

      jp-TkDesk-1.2-1c.ppc.rpm

で、対応する SRPM は

      jp-TkDesk-1.2-1c.src.rpm

である。バイナリーは依然として Tcl7.6jp/Tk4.2jp ベースであるが、このあたりの事情については 1999/11/19 の日記を参照のこと。
 

[2] glibc-2.1.3-4b

Franz Sirl の最新版を、ftp://devel.linuxppc.org/users/fsirl/R5/RPMS/ppc より入手。
glibc-2.1.3-4b.ppc.rpm
glibc-devel-2.1.3-4b.ppc.rpm
glibc-profile-2.1.3-4b.ppc.rpm
を "rpm -Uvh" で放り込む。ただし、glibc-2.1.3-0j からのアップデートの場合、Franz の警告にあるように、glibc-2.1.3-0j 環境でコンパイルしたアプリケーションの内、setrlimit または getrlimit 関数を呼ぶものは動作しなくなる。このようなものには bash を含む shell 関連のアプリケーションなど極めて危険なものが含まれる。アップデートの前に、あらかじめ /sbin、/bin、/usr/bin、/usr/sbin、/usr/X11R6/bin などコマンドサーチパスに含まれる主要なコマンド、また、/lib、/usr/lib、/usr/X11R6/lib などに含まれる主要な共有ライブラリーについて、それぞれのディレクトリーで
# for i in `ls *`; do echo $i; objdump -T $i | grep rlimit | grep 2.1.3; done | less
などとして、該当するコマンド、または共有ライブラリーをつきとめ、"rpm -qf" で対応するソースパッケージを確かめ入手しておく。そして、glibc の更新後、root のシェルを抜ける前に、それらのパッケージを "rpm --rebuild" し、できた RPMS を "rpm -ivh --force" する。私の場合は、util-linux がこれに該当したので、作りなおした。glibc-2.1.3-4b 環境で作りなおした util-linux のパッケージは
mount-2.10d-1a.ppc.rpm
util-linux-2.10d-1a.ppc.rpm
losetup-2.10d-1a.ppc.rpm
である。
 

[3] gcc-2.95.2-1gm

glibc の更新後、gcc の更新をする。binutils は今まで通り
binutils-2.9.5.0.14-0a
である。gcc については、libg2c.a を PIC フラッグつきで作るためftp://devel.linuxppc.org/users/fsirl/R5/SRPMS/ より gcc-2.95.2-1g.src.rpm をとりよせ、例によって -fPIC をつけるパッチ を使い、RPM を作りなおす。使った SPEC はこれ。出来た RPM は
cpp-2.95.2-1gm.ppc.rpm
gcc-2.95.2-1gm.ppc.rpm
gcc-c++-2.95.2-1gm.ppc.rpm
gcc-g77-2.95.2-1gm.ppc.rpm
gcc-objc-2.95.2-1gm.ppc.rpm
libstdc++-2.10.0-1gm.ppc.rpm
で、対応する SRPM は
gcc-2.95.2-1gm.src.rpm
である。使う際には使用上の注意を参照(gcc-2.95.1 を適当に gcc-2.95.2 に読み代える)。libg2c.a を組み込んだ共有ライブラリーを作る必要のない場合は、Franz のオリジナルなパッケージと何も違いはない。

[4] Root 2.23/12

glibc、gcc の更新後、ROOT のバージョンアップ。
$ tar -zxvf <somewhere>/root_v2.23.12.source.tar.gz
$ tar -zxvf <somewhere>/ttf_1.1.tar.gz
$ export ROOTSYS=`pwd`
$ export LD_LIBRARY_PATH=$ROOTSYS/lib
$ export PATH=$ROOTSYS/bin:$PATH
$ sh configure linuxppcegcs \
 --with-ttf-incdir=/usr/include/freetype --with-ttf-libdir=/usr/lib \
 --with-opengl-incdir=/usr/include --with-opengl-libdir=/usr/lib \
 --with-cern-libdir=/cern/pro/lib
$ cd src
$ cp -p <somewhere>/iosenum.h ../cint/include/
$ cp -p <somewhere>/MAKEINFO ../cint/
$ patch -p1 < <somewhere>/root_v2.23-x3d.patch
$ patch -p1 < <somewhere>/root_v2.23.07-g2c.patch
$ (cd ..; make depend)
$ make -f Makefile.linuxppcegcs OPT='-O0' EG_DatabasePDG.o
$ make -f Makefile.linuxppcegcs OPT='-O0' EG_AttParticle.o
$ make -f Makefile.linuxppcegcs OPT='-O1' HISTPAINTER_HistPainter.o
$ cd ..
$ make >& make.log &

である。いくつかのソースのコンパイルで最適化レベルを変更する必要がある点(g++ の問題)に注意。
できたバイナリーは

root_v2.23.12_linuxppc-r5.tar.gz
である。

[5] Gimp-1.1.16-1a

紅眠さんのところでいち早くレポートされている、Gimp 開発者用の最新版。使ったパッチは
gimp-1.1.16-gdyntext.patch (紅眠さんの gdyntext パッチ、詳しくは紅眠さんのGIMPで日本語をなんとかしたいのページをご覧下さい)
gimp-1.1.16-scripts.patch(gimp-1.1.14  用のものと同じ)
である。このバージョンより、白崎氏の尽力により text_tool の i18n パッチが本家のソースツリーに統合された。有り難いことである。ただし、未だ FireText を一度使うと gimp を再起動しないと FireText、Glowing Steel などが使えなくなる問題は残っているが、追求はしていない。

このSPECを使って

gimp-1.1.16-1a.ppc.rpm
gimp-devel-1.1.16-1a.ppc.rpm
gimp-perl-1.1.16-1a.ppc.rpm
を作成、対応するSRPMは
gimp-1.1.16-1a.src.rpm
である。

[6] FreeType-1.3-1a

XFree86+X-TT の更新のため TrueType rendering engine の更新。使ったSPECはこれ、できたRPMSは
freetype-1.3.1-1a.ppc.rpm
freetype-utils-1.3.1-1a.ppc.rpm
freetype-devel-1.3.1-1a.ppc.rpm
また、SRPMは
freetype-1.3.1-1a.src.rpm
で、xtt-1.3 に含まれる freetype1.3-adw-nocheck.patch があててある。
 

[7] XFree86-3.3.6-8a and X-TT 1.3

ftp://ftp.lab.kdd.co.jp/Linux/linuxppc/linuxppc-dev-rel/1.1/RPMS より XFree86-3.3.6-8a シリーズを取得。
XFree86-100dpi-fonts-3.3.6-8a.ppc.rpm
XFree86-75dpi-fonts-3.3.6-8a.ppc.rpm
XFree86-FBDev-3.3.6-8a.ppc.rpm
XFree86-Xpmac-3.3.6-8a.ppc.rpm
XFree86-devel-3.3.6-8a.ppc.rpm
XFree86-libs-3.3.6-8a.ppc.rpm
XFree86-xfs-3.3.6-8a.ppc.rpm
これらを "rpm -Uvh" し動作確認をし、上記の環境下(binutils,glibc,gcc)で X-TT をコンパイルする。手順は
# rpm -ivh <somewhere>/XFree86-3.3.6-8a.src.rpm
# cd /usr/src/redhat/SPECS
# vi XFree86.spec
....
# # install xfsft
# tar x -C xc/lib -f xfsft-1.1.6/libfont.tar
# patch -p0 -s -d xc/lib < xfsft-1.1.6/libfont.patch
#
# # the mkfontdir patch that comes with xfsft 1.1.6 doesn't play
# # nice with 3.3.5, so we made our own.
# %patch22 -p1 -b .xfsftfontdir
...
# rpm -bp XFree86.spec
# pushd ../BUILD/XFree86-3.3.6/xc
# tar -zxvf <somewhere>/xtt-1.3.tgz -C ../..
# patch -p1 -s -t -E -N < <somewhere>/shared-libfont-1.2-ppc.diff
# patch -p1 -s -t -E -N < ../../xtt-1.3/xfs-for-delayed-font-1.0.diff
# patch -p1 -s -t -E -N < ../../xtt-1.3/make-xfs-only-1.3.diff
# patch -p1 -s -t -E -N < ../../xtt-1.3/xtt-xf335-changes.diff
# patch -p1 -s -t -E -N < ../../xtt-1.3/contribute/xtt-xfsft-lib.patch
# patch -p1 -s -t -E -N < <somewhere>/xtt-1.2-Xpmac.patch
# patch -p1 -s -t -E -N < <somewhere>/XFree86-3.3.6-fstobdf.patch
# tar -xvf ../../xtt-1.3/xtt-core.tar -C lib/font/
# pushd config/cf/
# cp -p xttsite.def xttsite.def.ORIG
# vi xttsite.def
...
#define FreeTypeLibDir          /usr/lib
#define FreeTypeIncDir          /usr/include/freetype
#define FreeTypeLibName         ttf
...
# popd
# make World CDEBUGFLAGS="-O2 -fsigned-char" >& world.log &
# tail -f world.log
みたいな感じ。shared-libfont パッチはオリジナルのものを ppc パッケージにあたるようにした。
とりあえず、バーチャルインストールするには
# mkdir /tmp/xtt-root
# (cd lib/font; make install DESTDIR=/tmp/xtt-root)
# (cd programs/Xserver; make install DESTDIR=/tmp/xtt-root)
# (cd programs/xfs; make install DESTDIR=/tmp/xtt-root)
これをもとに tarball を作りバージョン管理の利便のためバイナリーのみの RPM にする。
XFree86-FBDev-TT-3.3.6+xtt1.3-8a.ppc.rpm
XFree86-Xpmac-TT-3.3.6+xtt1.3-8a.ppc.rpm
XFree86-libfont-3.3.6+xtt1.3-8a.ppc.rpm
XFree86-libfont-devel-3.3.6+xtt1.3-8a.ppc.rpm
XFree86-xfs-3.3.6+xtt1.3-8a.ppc.rpm
対応するSPECは
XFree86-FBDev-TT-3.3.6.spec
XFree86-Xpmac-TT-3.3.6.spec
XFree86-libfont-3.3.6.spec
XFree86-xfs-3.3.6.spec
である。インストールにはコンソールで
# rpm -e XFree86-FBDev XFree86-Xpmac XFree86-xfs
# rpm -ivh <somewhere>/XFree86-*3.3.6+xtt1.3-8a.ppc.rpm
てな具合。

これらのパッケージは私の環境では動作確認したが、使う場合はいつものように自己責任


Back to Keisuke Fujii's MkLinux/LinuxPPC Life