蝉は、やがて死ぬる午後に気づいた。ああ、私たち、もっと仕合せになってよかったのだ。:2006年10月19日分

2006/10/19(Thu)

pkgsrc

@devel/apr

pkgsrc/26056、これlibaptutilのapr-iconvに依存してるpackage(subversion-baseとか)も
pkg revision上げなきゃダメなんじゃないかな。mk.confに

PREFERE.iconv=	pkgsrc

をセットしてる場合(会社で使わされてるFC2のglibc builtin iconvだとsambaが困る)
make replaceでaprだけ入れ替えると

-bash-2.05b$ svn
svn: error while loading shared libraries: /usr/pkg/lib/libaprutil-0.so.0: undefined symbol: libiconv_open

となってしまうジャマイカ。

@つーわけで

バイナリ互換性ないならsubversion-baseをrebuildすんべと思ったら

=> Required installed package libtool-base>=1.5.18nb5: libtool-base-1.5.22nb3 found
=> Required installed package apr>=0.9.7.2.0.55nb2: apr-0.9.12.2.0.59nb1 found
=> Required installed package neon>=0.25.5nb2: neon-0.
(中略)
collect2: ld returned 1 exit status
*** Error code 1

Stop.

うーん、libiconvへの依存関係がマズイもより。
*.mk読んでる暇がないのでwork/.buildlink/libの下に
libiconvへのsymlink貼って逃げた。

NetBSD

@Citrus iconv vs GNU libiconv

pkgsrcのGNU libiconvがサポートしてCitrus iconvがサポートしないCESはあとこんだけかな?

C99			※1
JAVA			※1
MACHEBREW		※2
MACARABIC		※2
MULELAO-1
CP1133
TIS-620
VISCII
TCVN
CP51932			※4
CP50221			※4
ISO-2022-CN-EXT
HZ			※1
BIG5-HKSCS		※3
CP922
CP943
CP1046
CP1124
CP1129
CP1161
CP1162
CP1163
DEC-KANJI
DEC-HANYU
CP853
CP858
CP1125
EUC-JISX0213		※2
SHIFT_JISX0213		※2
ISO-2022-JP-3		※2
TDS565
RISCOS-LATIN1

※1 module/iconvdataは書いたけどまだcommitしてない
※2 iconvでm:n変換を実装する必要あり
※3 変換表は入手してある
※4 既存のmoduleの修正が必要かも
なかなか追いつかんね...いや追い付いてどうすんだという話もあるが。

Unicode.org

@小林克也のBestFit(以下略

これ何だろ。
ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/ WideCharToMultiByteはそのロケールにないワイド文字が渡された場合
強引に似た字に置き換えるらすいんだけど(んで時にセキュリティホールになる奴ねw)
そのルールを決めた変換表なのかな。

続NetBSD

@iconvdata

/usr/share/i18n以下が全部で8.8MB。
UCS%*が無駄に領域喰ってるのよね...

SRC_ZONE= 0x0000 - 0xFFFC
BEGIN_MAP
0x0000 = 0x00
0xFFFC = 0x1
END_MAP

みたいな極端なケースだと、0xFFFA*sizeof(uint32_t)の領域は
そのままディスクの無駄領域なんだよね。速度を優先してるんだろうけど
8bitに収まる文字集合くらいなら詰めこんでbinary searchで問題なさげ。
そのうちなんか考える。