M's Diary -- 2002年5月分 --

Last-modified: Thu, 26 Dec 2002 13:41:34 JST
powered by tds-1.7.4 [static,cache:on]
前月 2002/5 翌月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

2002年 5月 2日 (木)

NetBSD おぼえがき : USETOOLS=yes な cross build

_ ホストマシン

MKOBJ=			yes
MKOBJDIRS=		yes
USETOOLS?=		yes
MKTOOLS?=		yes

を /etc/mk.conf に書いておく。

#!/bin/sh
export LANG=C
portname=sparc

export MAKEOBJDIRPREFIX=/usr/obj/${portname}
export DESTDIR=/usr/cross/${portname}/dest
export TOOLDIR=/usr/tools/${portname}

[ ! -d $DESTDIR ] && mkdir -p $DESTDIR
[ ! -d $TOOLDIR ] && mkdir -p $TOOLDIR 
[ ! -d /usr/obj/${portname} ] && mkdir -p /usr/obj/${portname}

./build.sh -d -m ${portname} -R /usr/cross/${portname}/release

を走らせる。 4/30 の NetBSD current では dreamcast と playstation2 は make release まで完了。 sparc は make build までは OK だけど make release が miniroot 作成のところで NG。

_ ターゲットマシン

/etc/mk.conf に

MKOBJ=			yes
MKOBJDIRS=		yes
USETOOLS?=		yes
MKTOOLS?=		yes
TOOLDIR?=		/usr/tools/sparc

と書き、あらかじめ tools を build しておく。 USETOOLS=no では make install が途中で止まってしまうため。

# mount host:/usr/src /usr/src
# mount host:/usr/obj /usr/obj
# cd /usr/src
# make MKTOOLS=no MAKEOBJDIRPREFIX=/usr/obj/sparc includes
# make MKTOOLS=no MAKEOBJDIRPREFIX=/usr/obj/sparc install

MKTOOLS=no は tools を build し直すのを防ぐため。

_ kernel build

#!/bin/sh
export LANG=C

export MACHINE=sparc
export MACHINE_ARCH=sparc

TARGET=/usr/tools/sparc/bin/sparc--netbsdelf

export AR=${TARGET}-ar
export AS=${TARGET}-as
export CC=${TARGET}-gcc
export CPP=${TARGET}-cpp
export CXX=${TARGET}-c++
export LD=${TARGET}-ld
export NM=${TARGET}-nm
export RANLIB=${TARGET}-ranlib
export SIZE=${TARGET}-size
export STRIP=${TARGET}-strip
export OBJCOPY=${TARGET}-objcopy

make $*

というスクリプト (/foo/sparcmake.sh) を用意しておく。ホストマシンで

# cd /usr/src/sys/arch/sparc/conf
# config MYKERNEL
# cd ../compile/MYKERNEL
# /foo/sparcmake.sh depend
# /foo/sparcmake.sh

を実行。ターゲットでは普通に make install するだけ。

_ メモ

MAKEOBJDIRPREFIX
NetBSD では MAKEOBJDIRPREFIX を指定しない限り /usr/src の下に /usr/obj の下への symlink がいっぱい作られてしまう。 OBJMACHINE を指定すれば obj ではなく obj.${MACHINE} で symlink されるので異なる port を同じ ソースツリーで build しても大丈夫ではある。
USETOOLS=no で make install できない
これは非常に痛い。 tools はその性格上、実行するマシン (か同じ port のマシン) で作成する必要がある。遅いマシンで tools を build するのは非常に時間がかかる。 MKTOOLS=no で tools を再 build するのを最小限に抑えていくことはできるけど。
cross/mipsEEel-netbsd package
playstation2 port がターゲットのときは、 make release 相当を行うとき*1に cross/mipsEEel-netbsd の package をインストールしておく必要がある。

*1:kernel build で使うので make build 相当の段階では必要ない。


2002年 5月 4日 (土)

この日記

に書く内容と某所に書く内容との区別がちょっとわかりにくいかもしれません。

この日記
BSD 関係やネットワーク関係での出来事、コミックやゲーム関係の話題。
某所
それ以外の内容

という感じで使い分けて *1いるつもりです。


*1:したがって、某所には *BSD 関係の話題は書くつもりはありません :-)。

今日の出来事

_ 買い物

近所の本屋にて。

江洲さんも 書いているけど、最近のカレカノは今一つという気がする。

Web 日記から

_ 某つながり

TF さんとこから。最近は寮や運動会関係のイベントにほとんど行ってないからわからないかも。 山中へも最近はあまり行ってないからなぁ...。


2002年 5月 5日 (日)

FreeBSD

_ CVS

www/en/cgi/cvsweb.conf rev 1.20の commit log で指摘されている、 CVSweb で $FreeBSD$ タグの展開がおかしくなる件について調べてみた。

してある状態で、

% cvs -R -d /home/ncvs co src/Makefile
% head -2 src/Makefile
#
# $FreeBSD: src/Makefile,v 1.253 2002/04/30 11:50:01 ru Exp $
			<-- 正常
% cvs -R -d /home/ncvs -q co -p src/Makefile | head -2
#
# $FreeBSD: /foo/ncvs/src/Makefile,v 1.253 2002/04/30 11:50:01 ru Exp $
			<-- symlink 先を -d で指定して cvs co -p すると変
% cvs -R -d /foo/ncvs -q co -p src/Makefile | head -2
#
# $FreeBSD: src/Makefile,v 1.253 2002/04/30 11:50:01 ru Exp $
			<-- symlink 先でなければ cvs co -p でも大丈夫

_ fix

-p を指定するかしないかで $FreeBSD$ (や CVSHeader) の展開が変わって しまうのは CVS のバグだろう。

CVSweb 側の対策としては symlink 先を指定しなければいいので、 cvs -d $cvsroot co -p する個所で

use Cwd 'abs_path';
exec($CMD{cvs}, @cvs_options, '-d', abs_path($cvsroot),
    'co', '-p', $revopt, $where);

とすれば大丈夫そう。


2002年 5月 7日 (火)

Web 日記から

_ 聖蹟桜ヶ丘

五反田さんとこのネタ。聖蹟桜ヶ丘は京王がショッピングセンター *1作る前からそれなりに乗降客が多かった記憶があります。多摩ニュータウン北部に行く バスターミナルとして機能していたからでしょう。京王線が特急運転開始した当時 *2から特急が停車するなど昔から優等列車が停車しているのは、 駅の東側にある多摩川の橋の部分が単線だった *3ためかな。


*1:京王はけっこう宣伝してるのだが、いまいちセンスがないのでわざわざ下車して 行くほどの価値は見いだせなかったりする。デパート行くなら新宿に出ちゃうな。
*2:昭和 38 年 10 月開始。
*3:昭和 39 年に複線化。

今日の出来事

_ TDS

日記システムに使っている TDS を 1.7.4 にバージョンアップ。

_ 買い物


2002年 5月 9日 (木)

今日の出来事

_ 藍青 #5

録画失敗。予約の日付が 2003 年になってた。

_ 買い物

近所の本屋にて

T-ZONE

_ メンバーズカード終了

とのこと。 1,583 ポイントあるので 7/31 までに使わなければならないなぁ。

FreeBSD

_ CVSweb

回りで作業ちょこちょこ。

_ CVS のタグ

src/contrib/cvs/src/rcs.cの RCS_check_tag() より:

である文字列。 CVSweb で表示するときに特別な意味をもつ文字列 *1でも CVS 的には許される。


*1: HTML のタグとか


2002年 5月 10日 (金)

今日の出来事

_ N+I 2002 登録

猿丸さんとこで事前登録が始まったのを知って私も登録。今年行けるかどうかはわからないけど。

_ 買い物


2002年 5月 12日 (日)

FreeBSD

_ 嫌がらせ

たちの悪い嫌がらせらしい。 web の上から submit できるのは便利だけど、こういうの *1も可能になっちゃうんだよな。


*1:前にも日本の匿名掲示板 2ch にやられたことがある。


2002年 5月 20日 (月)

今日の出来事

_ 買い物

近所の本屋にて

今月から SD は購入リストから外した。


2002年 5月 21日 (火)

FreeBSD

_ awk

作業の合間に snapshots.jp.FreeBSD.orgから 5/19 版の current を持ってきて current マシンに再インストール。 最近の current では base system から perl が消えたなど変化が大きいので古い環境の残滓を捨ててテストするのが目的。

まずは kernel の構築。いままで perl 使っていた部分は awk 使うように 書き直してあるのね。

_ groff がない !

つづいて make world。む、今の current では groff が無くなっているので make world できないじゃない。 gcc 3.1 では (src tree にある) groff が build できないので 5/10 に外された *1のか。 groff がないと man 関係が全滅しちゃうので、 5/10 以前の 5-current から groff を持ってきたほうがいい *2かな。 以前のバージョンと非互換な gcc 3.1 が悪いのだけど、ちょっと面倒。


*1:の rev 1.64 の commitlog 参照。
*2:5/10 以前の 5-current をインストールしてから最新の current に上げる方法では 5/16 に外された perl までインストールされてしまう。

今日の出来事

_ 買い物

近くの本屋に行ったら 北斗の拳のケンシロウのフィギィアが 290 円で売ってたので何となく購入。おまけにコミック雑誌がついてたけど、 こちらは比較的どうでもいいや :-)。

Web 日記から

_ CVS による管理

片山さん波田野さんとこのネタ。

/etc 以下は permission や file owner が重要なので、

するのが私の好みです。スクリプトを書くときは install(1) を使います。 file owner や permission を明示的に指定できるし、 install -C を使えば 変更しなかったファイルの更新時刻はそのままにできます。

似たような設定のマシンが複数台ある場合、 OS の major version が同じ かつ台数が少ないという前提が成り立てば、 CVS では同じ場所に入れて マシン毎に別の branch にするという手が使えるかもしれません。こうしておくと 「どの設定が同じでどの設定が違うのか」がわかりやすくなります。

どういう手法をとるにせよやったほうがいいのは、

です。ローカルな変更が何か把握できますし、 OS を version up するときに、 新しい version の設定ファイルを cvs import -> cvs checkout -j すれば 変更点の merge が比較的簡単にできます。

余談ですが、 FreeBSD の mergemaster はどういう変更を行ったかが見えにくいので きちんと管理したいサーバにはちょっと使いにくい *1です。


*1:mergemaster した結果を CVS に入れるという手もありますが。


2002年 5月 22日 (水)

今日の出来事

_ 継続

JUSの会員継続申し込みをして、会費を郵便局から振り込み。 今年は単なる会員としてイベントに参加したい *1ね。来月は 近藤さんの話が聞けるかな。


*1:某イベントでは、話を聞きに行くつもりがいつの間にか講師役になっていた。


2002年 5月 23日 (木)

FreeBSD

_ Linux 版 Netscape 6

portがちょっと前に追加されたのでインストールしてみる。

Netscape6 画面 画面はこんな感じ。当然と言えば当然だけど、 Mozilla の Modern Skin を使ったときとほぼ同じ。使って受ける印象も、重さも、 Mozilla とほぼ同じ。 Mozilla と比較した時の利点は、 Java Plugin と Macromedia Flash Plugin が最初から添付されていることかな。

欠点は二つ、

前者については IPv6 を日常で使っていない人にはあまり影響ないだろうけれど、 後者は非常に問題。 ~/.mozilla に置くファイルに互換性がないみたい。

Netscape6 ではバイナリに ~/.mozilla が埋め込まれているので、 Mozilla の側で ~/.mozilla 以外を使うように変更するという方法もある。 Mozilla では configure で --with-user-appdir=DIR を指定すれば ~/.mozilla 以外を使うようになっているけれど、実際のソースを grep してみると .mozilla をハードコーディングしている個所が数ヵ所あって使えない。

その部分を修正して Mozilla を build し直せばいいのだけれど、 Netscape6 はそこまでして使うだけの価値が見い出せないということで消去処分。

(23:30 追記) FreeBSD native な mozilla よりも有利な点として Linux 版しか出ていない plugin が使えるというのはある。


2002年 5月 24日 (金)

今日の出来事

_ 買い物


2002年 5月 25日 (土)

今日の出来事

_ 買い物

amazon.co.jp に注文していたのが届いた。

4 巻のときは 最寄りの本屋でこういう扱いだったので amazon.co.jp に注文しておいたのだが、今度の 5 巻はレジ前に 何冊も横積みされていた。コミックコーナーでは既刊の 4 冊が同じく横積み。 注目度が急上昇しているんだろうか。


以上、13日分です。