〜2003年3月下旬〜
いつものように
% tar xfv glibc-2.3.2.tar.bz2 --bzip2 % cd glibc-2.3.2 % tar xfv ../glibc-linuxthreads-2.3.2.tar.bz2 --bzip2 % mkdir linux; cd linux % CC='gcc -pipe' CFLAGS=-Os ../configure \ --prefix=/usr --enable-add-ons i586-pc-linux-gnu % make % make install localedata/install-locales \ install_root=$HOME/glibc-2.3.2 % cd ~/glibc-2.3.2 % ln -s ../usr/share/zoneinfo/Japan etc/localtime % tar cfv ~/glibc-2.3.2-bin.tar.bz2 --bzip2 *
でtarballを作り、メインマシンへ持ってきて
% sudo tar xfv glibc-2.3.2-bin.tar.bz2 --bzip2 -C /
してみると、なんとzshがbus errorになり強制的にlogoutしてしまった。 再度loginしてみるとzle関係が全滅。 ldconfigが中途半端のような感じなのでこれだけやり直してみたら復活。 無事Xも立ち上がった。ちょっとあせった。
w3mは
w3m-m17n: relocation error: /lib/libpthread.so.0: \ symbol __libc_sigaction, version GLIBC_2.2 not defined \ in file libc.so.6 with link time reference
とまただめだ。cvsupは大丈夫。
Rubyはというと
libruby-static.a(file.o): In function `lchmod_internal': file.o(.text+0x14fd): warning: lchmod is not implemented and will always fail
と宣言されてしまった。
あ、--owner=root --group=rootを忘れてるなあ。これはかなりまずい。 そうか、これがまずくてlibpthreadもちゃんとインストールされてなかったのか。 libpthreadだけインストールし直したらw3mもちゃんと動いた。
更新してみたが、 後半部分に関しては自分で書いた覚えが全くないのはどういうわけだろう? たぶん他の誰かが書き加えたんだろうなあ。
やばいかもしれないが、これってどうすべきかなあ? みんなそれぞれ書き換え用のスクリプトを持ってるはずで、 自分だけが変更しても解決はしない。 とは言うもののversion.hを更新するのは90%ぐらいはおいらなので、 ほとんど解決してしまうのかもしれない。 というわけで syncver.rbを更新。
man dateすると
同じ日を、1 桁の日付の前に 0 を置かないように表示するには、標準には ない`-' 修正子を用いて 0 埋めを行わないようにすればよい。 date -d 1-may '+%B %-d'
とあった。glibcならいけるんだけどなあ。
% ruby -e 'p Time.now.strftime("%m")' "03" % ruby -e 'p Time.now.strftime("%-m")' "3"
Time#strftimeではそういう仕様にするのもありだと思うけど、 Rubyで0を取り除く程度ならそれほど手間じゃないしね。
どう考えてもラストな雰囲気だが、 一度飛空艇に戻ったら二度とそこへ行けなくなってしまった。 もう一度最初から始めてみる。
早速dhcpd eth0 eth1してみたが、なぜかeth1側がアクセスできない。 古いNICが悪いのかと思い、別のNICを使うとok。 総務に話を聞くと100Mしか使えないという。なんとそんなことになっていようとは。10年前のNICじゃだめなわけだよ。
ちょこまかと動き回るトーブリも運んでやったら「キューソネコカミ」というとんでもないものをもらった。こいつぁすげーぜ。
というわけで、この日記は http://jarp.jin.gr.jp/diary/へ移動しました。古いほうからはredirectされます。
やっと更新。
どうも引っ越してからVNCの描画がいまいち遅い。dmesgしてみると
Probably a duplex mismatch. See Documentation/networking/vortex.txt
が気になる。早速読んでみるとネゴシエーションがうまくいってないということか?
options 3c59x full_duplex=1
を/etc/modules.confに追加したらよさげだ。
In fact, please don't use this at all! You're better off getting autonegotiation working properly.
と脅しがあるが気にしないことにする。
file(1)とlibmagic(3)に分割されたから、拡張ライブラリが作りやすくなった。
Changes: This release has has been divided into the main file(1) program and libmagic(3), a library that other programs can use directly to get file information without needing to fork and exec file(1).
Red Hat Linuxのvimはファイルを開くとなぜか最後に保存した時のカーソルの位置へ飛ぶんだけど、これってどうやってるんだろう? たぶんどこかのvimrcを読んでるはずで、:verしてみると
system vimrc file: "/usr/share/vim/vim61/macros/vimrc"
が怪しい。見てみるとコメントに書いてあった。
" When editing a file, always jump to the last cursor position autocmd BufReadPost * \ if line("'\"") > 0 && line ("'\"") <= line("$") | \ exe "normal g'\"" | \ endif
なるほど。line("'"")で最後に保存したときの行番号がわかるわけだ。 一応他のエディタで変更されることを考慮して範囲を見てるわけだ。 実際のジャンプは'"じゃなくて`"すればカラムも元に戻る。
とりあえずconfigure時に環境変数で
ac_cv_build=i386-pc-linux ac_cv_host=i386-pc-linux ac_cv_target=i386-pc-linux
としてみたが、うっとうしい話だよね、やっぱ。
レンの声が倖田來未というのは違和感ありありだ。
余計なことをしないと11時間程度で終了。 そういえば何も買ってないことに気づいた。
次は「強くてニューゲーム」だ。「キューソネコカミ」も2個目をゲット。
いつの間にか出ていたようだ。
mingw32で試してみるとFcntl::GETFLがないと言われる。 そうか。ないのか。 @readableと@writableが常にtrueでもとりあえずはよさそうなので、 nonstdio.rbのcase whenを
if defined? Fcntl::GETFL ... end
で囲んでみると動いた。更にmodule File::Constantsを
class File module Constants
にすれば1.6でも動く。
といってもテストは
% ruby -rnonstdio-replace -pe '' file >/dev/null
ぐらいしかしてないんだけど。
djgppで試したら
./nonstdio.rb:37:in `fcntl': The fcntl() function is unimplemented \ on this machine (NotImplementedError)
を喰らう。え?そうなんだっけとio.cを見るとMSDOSとhuman68kはだめということになってる。 確かにdjgppのソースを見てもGETFLは0を返すだけだ。面倒なのでcase whenを
begin ... rescue NameError, NotImplementedError end
で囲んでみる。動いた。
Ruby側でIO#fcntl(Fcntl::F_GETFL)しなくてもreadable/writableがわかればいいんだけど。
たぶん移植した当時はdjgppにfcntlはなかったんだろうなあ。 一部使えるようなのでfcntlを活かすべきか。 でもGETFLが必ず0というのも使えないな。
bootstrapはどうするのかという疑問はとりあえず置いといて、 rubyをmakeするRakefileを用意するのは面白いかもしれない。
YAML.rbのparserをCで書き換えたライブラリだが、 一応mingw32でもcygwinでも問題なくmakeできる。 RAAにはまだ登録されていない。
PragProgRubyでreadlineが使えないって話をruby-talkで延々してるのはなぜだ?
全部発掘した。40回ほど掘りまくり。