Just another Ruby porter,

〜2001年8月中旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2001-08-11 (Sat)

fileutils 4.0r

rm,ln,cpぐらいはstaticにリンクしたくなる。 ls --versionしてみると3.16だったのでついでにバージョンも上げる。 手元には4.0と4.0rがあった。 4.0rはどこから取ってきたか記憶もないが、こちらを使うことにする。

% CC='gcc -static' CFLAGS=-Os  ./configure \
  --prefix=/usr --libexecdir=/bin --bindir=/bin
% make
% sudo make install

Linuxにはslnというプログラムがあるが、 -fオプションがないため

# sln -sf /lib/libc-2.2.3.so /lib/libc.so.6

ができない。これだけstaticにリンクしてあってもあまり意味がないねえ。

bash 2.05

ついでに/bin/sh用にminimalでstaticなbashを用意しとこう。

% CFLAGS=-Os  ./configure \
  --prefix=/usr --bindir=/bin \
  --enable-static-link --enable-minimal-config
% make
% sudo cp bash /bin/sbash
% sudo ln -sf /bin/sbash /bin/sh
% ls -l /bin/{,s}bash
-rwxr-xr-x    1 root     root       653100 Apr  1 23:29 /bin/bash
-rwxr-xr-x    1 root     root       561044 Aug 11 18:25 /bin/sbash

ま、こんなもんか。

[FFX] キングベヒーモス

メテオをくらい1時間半がパーに。 ああ、ユウナがものすごく弱くなった。


2001-08-12 (Sun)

Linux From Scratch

なんか今の自分にぴったりだ。 そうそう。ちゃんとminimalのbashでもbootできた。 この際ちゃんと FHS を見るかと思ったが、 全然つながらない。どこかに移動したのか?

linux 2.4.8

やっぱ残ってる。

warning: multi-line string literals are deprecated

全然直す気はないようだ。

% time make dep clean bzImage modules
make dep clean bzImage modules  5480.79s user 634.77s system 94% cpu \
1:48:11.47 total

[FFX] バグ

戦闘中にバグった。なにも受け付けない。ソフトリセットも効かない。

その後4回程親父と戦うが最終的にシュートされて全然歯が立たない。 あ、その前に召喚すればいいのか。 それはそれとして世界を旅することにしよう。


2001-08-13 (Mon)

Linux 2.4.8

で、今日bootしなかったわけだが、 これは2.4.8が悪いのではなく、8GBのlimitに引掛ったため。 うーむ。GRUBなら大丈夫だと思ったんだけどなあ。

lilo 21.7-5

GRUBがだめならliloだよね。 Plamo 2.2は21.4なのでReiserFSに対応してないので、 最新のlilo 21.7-5を入れる。 普通にmakeするとtemp2.sでエラーに。as86が古い?

% grep as86 README*

してみるとREADME.common.problemsに

Problem:  LILO won't 'make'
==========================
If you get errors trying to 'make all', and the errors are occurring
during the assembly of 'temp2.s', you have encountered the most common
problem trying to build LILO:  the lines in error all have the assembler
directive 'near' on them.  This problem occurs when your assembler for
the real-mode bootstrap code is out-of-date:  'as86'.  Certain current
distributions of Linux distribute version 4 of this assembler; whereas
the current version is 15.

Two sources for an updated version are:

Redhat RPM distribution:
     site: http://www.redhat.com      (search for 'dev86')
     pkg:  dev86-0.15.0-2.i386.rpm  

or Robert de Bath's page at:
     site: http://www.cix.co.uk/~mayday
     link: bin86-0.15.1.tar.gz

とある。やっぱそうか。まずはbin86をバージョンアップだ。 そのsite に行くと0.16.0が最新だったので、 これをインストール。これでliloのほうも無事にmake install完。

% cat /etc/lilo.conf
boot = /dev/hdb1
#compact        # faster, but won't work on all systems.
delay = 50
vga = normal    # force sane state
lba32
# ramdisk = 0     # paranoia setting
# End LILO global section
# Linux bootable partition config begins
image = /vmlinuz
  root = /dev/hdb1
  label = Plamo2.2
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends
% sudo /sbin/lilo
Warning: /dev/hdb1 is not on the first disk
Added Plamo2.2 *

/boot/grub/menu.lstには

title    Linux 2.4.8 (Plamo 2.2) with lilo
root     (hd1,0)
chainloader      +1

を追加した。これでliloが立ち上がる。

やっぱり8GB limit

でもrebootすると延々と0x40を表示する。READMEには

0x40   "Seek failure". This might be a media problem. Try booting again.

とあるが、全然解決しないよね。うーむ。media problemってほんとに壊れてる?

% df /
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hdb1             19919956   7408252  12511704  37% /

あ、まだ8GB越えてないじゃん。ってことはほんとに読めないのか?

% su
# mv /vmlinuz{,.bad}
# mv /vmlinuz{.old,-2.4.7}
# mv /System{.old,-2.4.7}
# cp /usr/src/arch/i386/boot/bzImage /vmlinuz
% sudo /sbin/lilo
Warning: /dev/hdb1 is not on the first disk
Added Plamo2.2 *

として、/vmlinuz.oldは大事に取っておく。 もう一度reboot。

立ち上がるじゃん。GRUBのほうも問題ない。

でもこれだけじゃやっぱわからないなあ。 2GBほどのファイルを作ってちゃんと越えてみるか?

% dd if=/dev/zero of=dummy bs=1024 count=$((1024*2048))
% df /
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hdb1             19919956   9508860  10411096  48% /

だから、間違えなく越えてる。

% su
# mv /vmlinuz{,.ok}
# cp /usr/src/arch/i386/boot/bzImage /vmlinuz
% sudo /sbin/lilo
Warning: /dev/hdb1 is not on the first disk
Added Plamo2.2 *

もう一度reboot。

だめだ。LILで止まる。GRUBのほうも

Error 18: Selected cylinder exceeds maximum supported by BIOS

って、やっぱ8GB越えたらだめなBIOSだよ。 でも前に試したときはliloでちゃんとbootできたはずなんだけどなあ。

とりあえずは旧環境のパーティションにkernelだけ置くことにする。 /boot/grub/menu.lstはこんな感じ。

title    Linux 2.4.8 (Plamo 2.2)
kernel   (hd2,4)/vmlinuz-2.4.8 root=/dev/hdb1 ro

(hd2,4)つまり/dev/hdc5にkernelを置いている *1

結論: /bootを別パーティションに用意せよ。 いい機会だから LFS か?


*1: 実は最初(hd2,5)と書いて File not foundをくらったんだけど、GRUBはそれでもboot時に編集できるから素敵だ

[FFX] The End

全然終わらせるつもりはなかったんだけど、 心づけの先生に1ギルずつ払ってたら親父に勝ってしまった *2。 バハムートを温存して様子見のつもりだったのに。 その後のラスボス戦はもうぬるすぎ。 The Endを見たのは夜中の3時。最後のセーブポイントから1時間半も拘束されたよ。

結論: ユウナにはガ系黒魔法と連続魔法と竜剣。


*2: 先生は30万ギルでも1ギルでも9999ダメージなんすけど、30万ギル返してよと言いたい。

2001-08-14 (Tue)

vi foo.bak

なにげなくvi foo.bakするとなぜかINSERT MODEになる。 modelinesにでも入っているのかと思えばそうでもない。 全然原因がわからなかったんだけど、ふと

% ls -l ~/.jvimrc*

してみてはたと気づいた。set fexrcのせいか。

% diff -u1 ~/.jvimrc{.bak,}
--- /home/watanabe/.jvimrc.bak  Thu Jun 28 13:03:07 2001
+++ /home/watanabe/.jvimrc      Thu Jun 28 13:03:36 2001
@@ -1,3 +1,2 @@
set autoindent
-set im
set fexrc

以前set imを試したときのbackup fileが~/.jvimrc.bakとして残っている、 しかもset fexrcしてるから~/.jvimrc.bakも読まれる。うーむ。 なかなかトリッキーだ。

Compiling Ruby with cygwin and Tk support

なんでかな? 特にディレクトリとか指定しなくても/usr/includeと/usr/libにあるから、 見つかるはずなんだけど。

あ、/usr/include/X11/X.hその他がないじゃん。

% tar tfvz tcltk-20001125-1.tar.gz |grep X11
% tar tfvz tcltk-20001125-1-src.tar.gz |grep X11
drwxrwxr-x cgf/group         0 2000-12-05 12:37 tcltk-20001125-1/tk/xlib/X11/
-rw-rw-r-- cgf/group     18382 2000-02-07 09:19 tcltk-20001125-1/tk/xlib/X11/X.h
-rw-rw-r-- cgf/group      2518 2000-02-07 09:19 tcltk-20001125-1/tk/xlib/X11/Xatom.h
-rw-rw-r-- cgf/group      1720 2000-02-07 09:19 tcltk-20001125-1/tk/xlib/X11/Xfuncproto.h
-rw-rw-r-- cgf/group    102687 2000-02-07 09:19 tcltk-20001125-1/tk/xlib/X11/Xlib.h
-rw-rw-r-- cgf/group     20738 2000-02-07 09:19 tcltk-20001125-1/tk/xlib/X11/Xutil.h
-rw-rw-r-- cgf/group      1953 2000-02-07 09:19 tcltk-20001125-1/tk/xlib/X11/cursorfont.h
-rw-rw-r-- cgf/group      1501 2000-02-07 09:19 tcltk-20001125-1/tk/xlib/X11/keysym.h
-rw-rw-r-- cgf/group     52429 2000-02-07 09:19 tcltk-20001125-1/tk/xlib/X11/keysymdef.h
-rw-rw-r-- cgf/group      2209 2000-02-07 09:19 tcltk-20001125-1/tk/xlib/X11/license.terms

これってどういうつもりなんだろう。 Cygwin/XFree86 があるから、<X11/X.h>があったらかえって邪魔ということか?

RubyWin 0.0.3.7

更新。$(exec_prefix)/bin/rubyを使うようになったので、 RUBYOPT1, RUBYOPT2の指定はもう要らない。

たまにはちゃんと書いとこ。

% unzip -a rubywin-0.0.3.7.zip
% cd ruby-0.0.3.7
% mkdir cygwin mingw
% cd cygwin
% i386-cygwin-ruby ../config.rb
% make
% i686-pc-cygwin-strip rubywin.exe
% upx rubywin.exe
% make install

% cd ../mingw
% i386-mingw32-ruby ../config.rb
% make
% i686-pc-cygwin-strip rubywin.exe
% upx rubywin.exe
% make install

% cd ..
% make -f ../Makefile.pack PACKAGE=rubywin VERSION=0.0.3.7 TARGET=i386-cygwin
% make -f ../Makefile.pack PACKAGE=rubywin VERSION=0.0.3.7 TARGET=i386-mingw32

[FFX] 辞書

2,4,6,7,23巻を見つけた。後からでも全部見つけられるのかな?


2001-08-15 (Wed)

zsh setopt cshjunkiequotes

cshのあの仕様は許せないと常々思っているので、 CSH_JUNKIE_QUOTESを設定してる人がいるとは思いませんでした。

% zsh --version
zsh 4.0.2 (i586-pc-linux-gnu)
% setopt cshjunkiequotes
% run-help :
No manual entry for :
% unsetopt cshjunkiequotes
% run-help :
No manual entry for :
%

4.0.2では問題ないようです。ってそういう話じゃない?

[FFX] 辞書

残りは20,22,26。20,22はもう行けないとこのような気がする。


2001-08-16 (Thu)

[Ruby] try_run

digestが1.6にbackportされた。 try_runが使われているのでクロスコンパイルできない。

if try_run(<<SRC, $defs.join(' '))
#include "defs.h"
int main(void) {
#ifdef NO_UINT64_T
    ruturn 1;
#else
    return 0;
#endif
}
SRC
then
  create_makefile("digest/sha2")
else
  puts "** Cannot find a 64bit integer type - skipping the SHA2 module."
end

実行しなくても、 要するにNO_UINT64_Tがdefineされてたらエラーになればいいわけで、 try_cppで十分だろう。こんな感じ。

if try_cpp(<<SRC, $defs.join(' '))
#include "defs.h"
#ifdef NO_UINT64_T
    #error ** Cannot find a 64bit integer type - skipping the SHA2 module.
#endif
SRC
then
  create_makefile("digest/sha2")
end

メッセージは出す必要ない気がする。他の拡張ライブラリも出してないし。

SirCam

"tanakasi"って人から「文書1.doc.bat」という名前のファイルが添付されたメールが来た。 って誰だよ、あんた?田中氏?

Hi! How are you?

だからSirCamだな。ったく、送るならOutlook同士にしてくれ。

扱いにくいのでhoge.batにrename。

% file hoge.bat
hoge.bat: MS-DOS executable (EXE), OS/2 or MS Windows
% i686-pc-cygwin-objdump -p hoge.bat |grep 'DLL Name'
        DLL Name: kernel32.dll
        DLL Name: user32.dll
        DLL Name: advapi32.dll
        DLL Name: oleaut32.dll
        DLL Name: kernel32.dll
        DLL Name: advapi32.dll
        DLL Name: kernel32.dll
        DLL Name: mpr.dll
        DLL Name: gdi32.dll
        DLL Name: user32.dll
        DLL Name: shell32.dll
        DLL Name: wsock32.dll
        DLL Name: wininet.dll
% strings hoge.bat |grep Microsoft
X-Mailer: Microsoft Outlook Express 5.50.4133.2400
X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
Microsoft Word 9.0
Microsoft Word 

MZで始まってるから実行ファイルとは思ったが。その他めぼしい文字列は

SOFTWARE\Borland\Delphi\RTL
Portions Copyright (c) 1983,99 Borland

てな感じ。Delphiで作られてるのか。って解析してどーする。


2001-08-17 (Fri)

$OLDPWD

tcshの$owdはbashやzshだと$OLDPWDになる。 なんか長くていやだなと思ったら

~-

というのがあった。ナイス。

tcshだと

% cd ~-
-というユーザーさんはいらっしゃいません.

となかなかとぼけたメッセージを出してくる。 あ、ってことは-というユーザを作っちゃいけないわけか。

Linux 2.4.9

ちと早いのが気になるというか、 早く出さざるを得ない状況はやっぱやばめなんだろうとうちも早速更新だ。

そういえばいつからかmake oldconfigしてもmake cleanしろよと言われなくなってる。

*** End of Linux kernel configuration.
*** Check the top-level Makefile for additional configuration.
*** Next, you must run 'make dep'.

じゃ2.4.8のオブジェクトを残したままmakeしてみよう。

% make dep bzImage modules
<途中略>
aicasm/aicasm_scan.l: In function `yylex':
aicasm/aicasm_scan.l:115: `T_VERSION' undeclared (first use in this function)
aicasm/aicasm_scan.l:115: (Each undeclared identifier is reported only once
aicasm/aicasm_scan.l:115: for each function it appears in.)
aicasm/aicasm_scan.l:132: `T_STRING' undeclared (first use in this function)
<後略>

がーん。やっぱだめか。 drivers/scsi/aic7xxx/aicasm/y.tab.hが更新されてないのが原因かな。

% cd drivers/scsi/aic7xxx/aicasm
% make clean
% cd -
% make modules
<途中略>
unistr.c: In function `ntfs_collate_names':
unistr.c:99: warning: implicit declaration of function `min'
unistr.c:99: parse error before "unsigned"
unistr.c:99: parse error before ')' token
<後略>

とりあえず、aicasmのほうは解決。 今度はfs/ntfs/unistr.cなんだけど、これは根本的に何か間違ってる気がする。 明日make cleanしてからやりなおそう。


2001-08-18 (Sat)

残暑お見舞いもうしあげられません

いやーもうすっかり秋ですね。って感じの涼しさだ。

Linux 2.4.9

make cleanしても結果は同じ。

原因はminマクロだ。include/linux/kernel.hに

#define min(type,x,y) \
        ({ type __x = (x), __y = (y); __x < __y ? __x: __y; })

と定義されているが、fs/ntfs/unistr.cではkernel.hをincludeしてない。 #include <linux/kernel.h>を追加した。これで全部通った。

reboot後NTFSもちゃんとmountできた。

ALSA

頻繁にkernelを上げてると、ALSAも上げなきゃいけないのがなんか面倒だな。 その点ppxpは必然的にethertapになったので楽になった。

xmms

なぜかホームディレクトリに*.wavがいっぱいある。 mp3は作った覚えがあるけど、 ふだんはpipeでエンコーダに渡してるからwavファイルはできないはず。 日付もmp3を作った日よりも後。

その日付の8月8日の日記を見るとxmmsとある。あ、Output Pluginの

Disk Writer Plugin 1.2.5j_20010621 [libdisk_writer.so]

か。ここに出てたのか。 てゆか突然8GB近くディスクを喰ってたのはこれが原因じゃん。


2001-08-19 (Sun)

glibc 2.2.4

出たみたい。 差分のglibc-2.2.3-2.2.4.diff.gzですら4,200,722バイトってでかいね。

もうgcc 3.0に対応してるかもしれないけど、遅すぎるので2.95.3を使う。

% tar xfvz glibc-2.2.3.tar.gz
% mv glibc-2.2.{3,4}
% cd glibc-2.2.4
% gzip -dc ../glibc-2.2.3-2.2.4.diff.gz | patch -p1
% tar xfvz ../glibc-linuxthreads-2.2.4.tar.gz
% mkdir linux; cd linux
% CC=/usr/bin/gcc CFLAGS=-Os ../configure \
  --prefix=/usr --enable-add-ons
% time make
make  10615.67s user 1690.72s system 91% cpu 3:44:59.57 total
% make install install_root=$HOME/glibc-2.2.4
% mkdir ~/glibc-2.2.4/bin
% cp /bin/bash ~/glibc-2.2.4/bin
% cp /lib/libncurses.so.5 ~/glibc-2.2.4/lib
% sudo chroot ~/glibc-2.2.4 /bin/bash 
bash-2.04#

dynamic link版bashが立ち上がったからok。あらかじめ別のktermで

% sudo /bin/sbash

しておいてから本番のinstallに備える。

% sudo make install

最後に

Your new glibc installation seems to be ok.

と表示された。問題ないようだ。忘れないうちに

% sudo make localedata/install-locales

しとく。これが実はとんでもなく時間がかかる。 1時間半経ってもまだ終わらない。 ja_JP.EUC-JPまで行ったからもうよしとした。 あとは後日暇なときにでも。

そういえば最近glibc-cryptも同梱されてる。 いつのまにかUSの輸出規制が緩和されてたのか。

LL-T1610W

結局SHARPの液晶カラーモニタをSofmapで買った。

ついでにPCもどーんとPentium4あたりにするつもりだ。 一気にクロック10倍化計画。 glibcも25分でmakeできるか?

cd -

その日の日記にもcd -を使ってるぐらいだし。

% cp ~-/foo.c .

みたいなことをしたいわけです。

でもおいらの感覚だとtcsh,bashって十分新人類だよなあ。 旧人類はcsh,shだと思う。

めくれたオレンジ

PV見て驚いたが、田島貴男がスカパラに入ったわけじゃないよね。


2001-08-20 (Mon)

FHS

あいかわらず全然つながらない FHS と思ったらつながるし。 fj.unixによると ここ にもあるらしい。 早速fhs-2.2-stage-II-12-Jan-2001.tar.gzを入手しmakeしてみる。

% make
groff -p -t -mm -Wall -M./tmac -Tps draft.mm > fhs.ps
pstoedit -f pdf fhs.ps fhs.pdf
make: pstoedit: Command not found
make: *** [fhs.pdf] Error 127

mmマクロとはまたしぶいねえ。pstoeditはどうしようかな。 印刷するつもりもないし、とりあえずtextだけ見られればいいので

% make fhs.txt

した。

RubyWin 0.0.3.8

更新。あ、SciLexer.dllがすでにupx済みだ。

ruby-talk ML

20000を越えた。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!