X



OpenBSDで日本語環境設定
■ このスレッドは過去ログ倉庫に格納されています
0001RAF
垢版 |
NGNG
誰か、できる人いないかな。
008886
垢版 |
NGNG
>>87
やっぱ、できるんだね。
0089名無しさん@お腹いっぱい。
垢版 |
NGNG
以前NetBSD/CitrusのlocaleまわりをOpenBSD 3.0/3.1で使えるようにしたpatchを
本スレでうpしたんだけど、3.2用に更新したpatchって需要ありまつか?
0090ENIGMA ◆TuqOJBbLXY
垢版 |
NGNG
>>89
いや、需要あるも無いもオープンソースの世界ではオープンにしないと、

役に立つかどうかは別として公開してみては。
0091ENIGMA ◆TuqOJBbLXY
垢版 |
NGNG
OpenBSD 3.2をインストールした人で、日本語が上手くいったら結果報告希望。

当方、3.0で失敗しました。
0096名無しさん@お腹いっぱい。
垢版 |
NGNG
>>94
Theo は、もうそろそろ入れてもいいかもね、と去年の夏ごろ発言してた
ような気がする。単に作業する人がいないだけちゃうか?
そんなもん日本人以外ありえないから、ここ読んでる香具師、誰か立候補しる!
itojun さんばっかりに期待しててはダメだ。
0097名無しさん@お腹いっぱい。
垢版 |
NGNG
入れるならやっぱdlopen()使わないでstaticにlibcに組み込んだ方は良いのかねぇ。
あとMB_LEN_MAX 32でbinary compatibility崩れるんだけど
NetBSDの魔法__RENAMEマクロでなしにlibcのmajorをサクっと上げちまえば良い?
0098名無しさん@お腹いっぱい。
垢版 |
NGNG
厨でもうしわけないんだけど、_RENAME マクロってどういう役割なの?
シンボルの頭に "_" を付けたり付けなかったりするものらしい、
というのは分かるんだけど、それがどういう意味なのか理解できない。
誰か解説して or 情報のポインタ、ぷりーづ。
0099名無しさん@お腹いっぱい。
垢版 |
NGNG
>>95 さん
ありがたく使わせていただきました<patch
この patch は、i386 専用ですか?
sparc64 で make したら、そのままではうまく動かなかった。
0100名無しさん@お腹いっぱい。
垢版 |
NGNG
スマソ、i386以外のarchも対応したつもりだったのですが、PC/AT機しか
自由にできるマシンが身の回りに無いので、buildと動作確認はi386のみです。
# sparc64かぁ、ansi.h/int_types.hあたりでなんかやっちゃったかなぁ。。。
修正個所があれば、patchをここにはっつけてもらえれば更新しますんで、どうぞよろしうに。

どーしても動かんようであれば、kurati氏のとこのpatchも3.2用に更新されてるので、
そちらを試してみてください。
# ただしkurati氏のpatchはもう長いこと誰もメンテしてない
# anoncvs@citrus.bsdclub.orgの方のソースコードがベースみたい。
# 漏れのはいちおー最新のNetBSD/Citrusベースです。動きゃどっちでも良いけど。

動作確認は、↓を参考に、xpg4dl/testモジュールを拾って
http://mail-index.netbsd.org/tech-userlevel/2000/03/30/0001.html
Makefileをごにょごにょして出力結果を
塩兄氏の日記でチェックしてみてください。
0101名無しさん@Emacs
垢版 |
NGNG
>>98

俺もあぬまり詳しくないけど。どういう目的かというと、ABI を保つためでしょう。例えば sys/times.h 中で、times(3) という関数は

__BEGIN_DECLS
#ifdef __LIBC12_SOURCE__
clock_t times __P((struct tms *));
#else
clock_t times __P((struct tms *)) __RENAME(__times13);
#endif
__END_DECLS

こういう風に宣言されています。ここで __LIBC12_SOURCE__ は旧版で、times(3) の ABI が変わった(?)ときに加わったのが __RENAME(__times13) の方。新しい環境で times(3) を使うと後者が適用されると思います。

で、__RENAME(__times13) とは、コンパイル時に、シンボル times を __times13 にすり替えるのだと思います。ここで、なんでかっていうのはうまく説明できませんけど、#define times __times13 じゃ整合がとれなくなったりするからでしょうか。__RENAME の振る舞いは

printf '#include <sys/cdefs.h>\n__RENAME(foo)\n' | cc -E - | tail -1
printf '#undef __ELF__\n#include <sys/cdefs.h>\n__RENAME(foo)\n' | cc -E - | tail -1
printf '#include <sys/times.h>\ntimes(foo)\n' | cc -E - | grep times
nm -g /usr/lib/libc.a | grep times

とかやれば分かるんじゃないでしょうか。(というか、わたしもすぐ分からなくなるから↑こんな風にしています。)
010399
垢版 |
NGNG
>>100 さん、アドバイスどうも。
その後、patch を眺めたりイロイロいじってみたところ、
どうも cdefs.h の _RENAME マクロの #if 0 で決め打ってる
部分がよろしくないようです。

下の patch のようにしたところ、sparc64 では、うまく動いてる
ように見えます。i386 は休みが明けたら make してみます(^^;
gas のバージョンが違うせい?


193a194,199
> #ifdef __i386__
> #define _C_LABEL(x) __CONCAT(_,x)
> #else
> #define _C_LABEL(x) x
> #endif
>
195d200
< #if 0
197,199d201
< #else
< #define ___RENAME(x) __asm__(___STRING(__CONCAT(_,x)))
< #endif
201c203,204
< #define ___RENAME(x) ____RENAME(_/**/*)
---
> #ifdef __i386__
> #define ___RENAME(x) ____RENAME(_/**/x)
202a206,208
> #else
> #define ___RENAME(x) __asm__(___STRING(x))
> #endif
0105100@お雑煮うまうま
垢版 |
NGNG
>>103
げ、OpenBSD/sparc64ってELFだったのか。そりゃsymbolに"_"が余分に付く罠。
ですので>>103のpatchは__i386__でなくて__ELF__っすね。
暇見て更新しておきます、ありがとうございました。
0106101
垢版 |
NGNG
>>102

ちなみに私はちっとも神じゃないです。:-)

101 の内容もちっとも自信がありませぬので鵜呑みにされませぬよう。>all
010899
垢版 |
NGNG
>>100 さん
げ、OpenBSD/i386 って、aout だったのか。
# ELF と aout の違いを全然理解してない厨房<洩れ

あと、install.txt に /usr/lib/i18n を掘っておくことを
追加しといたほうが親切かもしれません。
0109100
垢版 |
NGNG
お待たせしました、20030106版に更新しますたです。
http://wave.prohosting.com/sigsegv/distfiles/citrus/

変更点:
ELFで__RENAMEが正しく動くようにした(Thanks to >>99さん)。
これでalpha、sparc64、hppaでもちゃんと動く...はず。
# まー、__RENAMEはlibcのmajorを上げて良いのならまったく必要ないんですが。

>>108
うひー、/usr/lib/i18nはmtreeが掘ってくれると信じてたんですが。
もういっぺんチェックしますです。
0110名無しさん@お腹いっぱい。
垢版 |
NGNG
スマソ、Citrusについて、最近send-prを1件yamtさん処理してくれてたみたい。
# wcrtomb/wctombの挙動が変ってやつ。

これはまだ漏れのpatchには取り込んでいないです。
お急ぎの方はこちら↓を参考に。
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/citrus/citrus_ctype_template.h.diff?r1=1.19&r2=1.20
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/citrus/citrus_none.c.diff?r1=1.6&r2=1.7

また夜にでも更新しますです。
0112名無しさん@お腹いっぱい。
垢版 |
NGNG
コソーリ、20030128版に更新のお知らせ。

変更点:
 fgetwc/fputwcなどのwide file io関係もNetBSD-currentからmerge
 これでCitrusの成果は全部取り込んだはずっす。

んで、いつもProhostingにpatchを置いとったのですが、
一部有料化するそうなので、こちら↓に移転しますた。

http://sigsegv.s25.xrea.com/distfiles/citrus/
0114名無しさん@お腹いっぱい。
垢版 |
NGNG
あぐぇ
0115名無しさん@お腹いっぱい。
垢版 |
NGNG
citrusの移植をしている方がいると聞きましたが、、、。

>>112
おおっ、あなたですね。OpenBSDはユーザー少ないし、ユーザー同士の
横のつながりもあまりないので反応が無く見えるけど、期待してる人は
いっぱいいる(私も含めて)と思いますよ。応援してます。

>>113
うーん。もう見れないみたい。ktermがエラー吐かずに立ち上がります?
0116112
垢版 |
NGNG
移植(汗 つーかコピぺ程度の作業量なんで...

いい忘れてたけど、Citrus patchを適用した後はX(だけじゃないけど)は
-D_XLOCALE有無に関係なく作り直してちょ。古いbinaryが参照する
selocaleのシンボルはsinglebyte onlyでしか動かんので。
__RENAMEで__setlocale_mb_len_max_32を参照してやらないと
multibyte localeは使えないです。

# まあ、X & EUCとかだとsetlocaleが成功の戻り値を返すだけで
# 表示できちゃったりする記憶もあるような...

sparc64は元々MB_LEN_MAX=32だからISO2022は当然、
alphaとかはMB_LEN_MAX=6なのでUTF-8までならバイナリ互換性を
保ったpatchは作れるんだけど、i386筆頭にその他のarchはMB_LEN_MAX=1なので
いっしょにmake Worldの海に溺れようってとこです。

MB_LEN_MAXのbinary非互換性は強気に無視してrecompileなしで
multibyte locale仕えちゃったりする方が実は嬉しいかったりするのかもしれないと
チョトだけ思った。
0117112
垢版 |
NGNG
んで、洩れができそうな範囲でのTODO
やるかどうかはわかんないけど。

足りない関数とか
* fwprintf, swprintf, vfwprintf, vwprintf, vswprintf, fgetws, fputws, wscan, fwscanf, wcstok, wcswcs, wcsftime
FreeBSD-currentでは実装されてる模様、 いくつかはそのまま使えるかも。未調査。

* btowc, wctob
citrus_ctype_template.hで実装するなら マンドクセー(゚听)イラネ
FreeBSDの実装みたいに内部でmbrtowc/wcrtombが動く簡単な奴で(・∀・)イイのかも

* iswctype, wctype, towctrans, wctrans
FreeBSDには中途半端な実装あるけど、NetBSD/Citrusとしては
新フレーム待ちかねぇ。NetBSDスレで煽り入ってたけど、
berkeley DB使ってlocaledef(1)(゚д゚)ウマー話とか洩れもちと気になるけど傍観。

OpenBSD固有の問題とか
気が向いたらbsd.libs.mkとかを整備、PICFLAGSつかって逃げてたりするし。
あと↓はOpenBSD的には嬉しいのかな。
http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=18151
0118名無しさん@お腹いっぱい。
垢版 |
NGNG
ed + skkfep で満足
0119113
垢版 |
NGNG
>>115
>うーん。もう見れないみたい。ktermがエラー吐かずに立ち上がります?
問題ないみたいです。
手元でサーバ立ててあげときます。
http://prim.cotton.ne.jp/openbsd/screenshots/3.3-1.jpg
http://prim.cotton.ne.jp/openbsd/screenshots/3.3-2.jpg
容量がちょいとあるのと(それぞれ179.5KBと216.3KB)回線が細いのでそのあたりはごかんべん。

ちなみにこのスクリーンショットは3.2じゃなくて3.3betaつまりcurrentに
112さんのパッチをスピードハック(いや、思いきりダーティハック)したものを
使っています。

あと、XもXft周りいじってますし、KDEもQt結構いじってたり…。
gtk+も泣かされました。
とりあえず満足できるレベルになったんで近いうちにサマリまとめて、こちらに
うpするか、上のURLにでもポストします。

>>112
おかげで日本語使えるようになりました。んが、依然make buildの段階で/usr/lib/i18n
を掘ってくれないようです。
make releaseではやってくれてるみたいなんですが。
0120112
垢版 |
NGNG
>>119
gtk+とかよう知らんですが、localeを認識しないってのは
・libcの場合 LC_ALL > LC_{CTYPE, MESSAGES...} > LANG
・Citrus libintlの場合 LINGUAGE > LC_ALL > LC_MESSAGES > LANG
の順に環境変数を参照するので、LC_ALL=Cがセットしてあると
LC_{CTYPE, MESSAGES...}, LANGはそもそも無視されることに注意して
再度環境変数を設定してもらえますか?

mtreeの件はMakefileまだ読んでないです。
そのうちinstall_openbsd.txtにBUGSとしてのっける予定
0122119
垢版 |
NGNG
>>120
gtk+については素のPortsのgtk+では日本語の部分が何も表示されない状態だったのですが、
CONFIGURE_ARGSに"--with-native-locale"を追加することでOKでした。

ただ、このままではimlib回りで、

IMLIB ERROR: SHM can't attach SHM Segment for Shared Pixmap mask Wrapper
Falling back on Shared XImages
Imlib ERROR: SHM can't attach SHM Segment for Shared XImage mask
Falling back on XImages
Gdk-ERROR **: BadAccess (attempt to access private resource denied)
serial 17549 error_code 10 request_code 146 minor_code 1
Gdk-ERROR **: BadShmSeg (invalid shared segment parameter)
serial 17550 error_code 177 request_code 146 minor_code 5

てなエラーを吐いてクラッシュしてたので、
sysctlで
kern.shminfo.shmseg=32(default 8)
kern.shminfo.shmall=32768(default 8192)
に変更することで回避しました。
もっともこれはx11/ogleを入れた時の設定がそのままOKだった、っーオチなんですが…。

citrusのlocale参照順序は理解しました。s/LINGUAGE/LANGUAGE/かな?
LC_ALL=Cとしていたのはperlがうるさかったからなんですが、取り敢えず
PERL_BADLANGでだまらせることにしました。
0123119
垢版 |
NGNG
>>121
HEADに対応されていたのですね!早速導入してみます!!
(実は121のinstall_openbsd.txtを取りに行こうとしたら、HTTP404を返されて
見に行ったらって、とこだったんですが)
0124112
垢版 |
NGNG
>>123
HEAD向けはコンパイルできるかどうかさえテストしてないです。
libpthread(3.2ではlibc_rだったやつ)あたりでヘッダ見つからんとかいって
buildへくるかも。buildが通りさえすれば、OpenBSDは他の*BSDと違って
releaseとcurrentには大きな違いがないんで、動作自体は支障ないとは思います。
012599
垢版 |
NGNG
HEAD 向けコンパイルしてみますた。
make beforeinstall するときに、幾つかヘッダが無いと言われますが、
その dir へ行って make してやればヘッダ生成されるので、改めて
make beforeinstall すればOK。
そこさえ越えれば、make build は問題ないようでつ。
0126112
垢版 |
NGNG
NetBSD-currentで
* btowc, wctob(btowc('\0')がWEOF返すバグあり、send-pr済)
* iswctype, wctype, iswctrans, wctrans
(但しiswctype(.., wcrtpe("jkana"))とかのlocale固有機能は未サポート)
* wcscoll, wcsxfrm(LC_COLLATEは未サポート)
がサポートされた模様なので、patchを追従しますた。

3.2向けとHEAD向けがありますが、今回はどちらもmake releaseまでの
テストはしてないです。
前のpatchからupgradeされる方は、libc.soとlib{ENCODING}.soとmklocaleの
入れ換えだけでいいです、がbuild前にmake includesを忘れずに。

btowc/wctobはちと迷ったのですが、NetBSDの実装とは違い、
内部でmbrtowc/wcrtombを直接呼ぶのではなく、citrus_ctype_template.hで
実装し、各lib{ENCODING}.soが実体を持つようにしました。
なんで、NetBSDだとlibcとmklocaleの入れ換えだけで済むのですが、
OpenBSD私家版はlibcとlib{ENCODING}の入れ換えも必須。
# SUSv3だとerrnoはno definedだけど、mbrtowc/wcrtombを直接呼ぶと
# EILSEQが返ることがあるので...まあ、そのうち戻すかも。

あとFreeBSD-currentからfgetws/fputws, wcstokをパチってきたので
NetBSDにsend-prしました。それが採用されればpatchにもmergeします。
vfwprintf/vfwscanfはまだ読んでないっす。
0127119
垢版 |
NGNG
>>125
>make beforeinstall するときに、幾つかヘッダが無いと言われますが、

make beforeinstallの前にmake includesを実行すると問題ないようでつ。
0128112
垢版 |
NGNG
send-prに[PATCH]でなくて[PACTH]とか書いちまったよ...逝ってくる
0130119
垢版 |
NGNG
>>126
手元の計算機に導入してみますた。
前回のHEAD用に公開されたバージョンからかも知れませんが、lib/libs/stdlib/multibyte.c
がrejectされるようです。
/dev/nullとのdiffみたいなんでrm multibyte.c*でエェかぁ、とかやってまつ。

注意点としては前のパッチがあたっている環境故か、この計算機固有なのか追いかけ
る時間が無いのでわかんないんですが、LOCALE関連の環境変数が定義されていると、
libcのインストールの段階でcore dumpまたはmemory faultしました。

取り敢えずLOCALE関連の環境変数をunsetenvすればオケですた。

4回目のコンパイル前に気づけよ>漏れ
0131112
垢版 |
NGNG
patchはChair of IMOUな方から採用したよんとのことです。
# fgetws/fputwsが抜けてたし...漏れマヌケ過ぎ。

> 4回目の

ごめんなさい、btowc/wctobを追加したので
lib${ENCODING}.soのABIが変わってるので
古いlibcとlib${ENCODING}.soの組合せになると落ちるんだと思います。
lib${ENCODING}.soのmajorをageるか迷ったんだけど、
まあ、本家にmergeされてる訳でもないのでそのまま放置してマスタ。

NetBSDはcitrus_ctype_fallback.[ch]とか対策入れてる模様。
流 石 だ な 、 兄 者。
0132131
垢版 |
NGNG
追伸

libcとlib${ENCODING}のABIが揃っていれば落ちないです。
だからbuildし直す必要は無いです。unset LC_ALL LC_CTYPE LANGとかで
とりあえず逃げてください。
0133132
垢版 |
NGNG
20030308版っす。
http://sigsegv.s25.xrea.com/distfiles/citrus/OpenBSD/

変更点
fgetws, fputws, wcstok, wcswcsの追加
en_US.UTF-8ロケールがより賢くなった(つかマージ忘れ)
ABIの変更でlib${ENCODING}のminorをbump

あーんど、いくつかのbug fixを含みます。
1. IS_RUNE_CACHEDマクロがtypoで正しく動作しない
2. hppaとpowerpc系のarchで_BSD_WINT_T_ & _BSD_RUNE_T_の定義がansi.hに
存在せず、おそらくcompileできてなかった
3. /usr/share/nls.aliasがインストールされてなかった

んで、CVS repositoryを作り直したついでに、patchを
xpg4dl.patchとrename.patchの2つに分けたので、
install-{HEAD, OPNBSD_3_2}.txtを更新しました。

んで、別の作業がやりたいんでOpenBSDは一応これで安定版とし
しばらく更新しない予定。
# stdioまわりにthread safeの為のlock/unlockが実装されだすまでは
# conflictもでないと楽観。

そいじゃ。
0134133
垢版 |
NGNG
/usr/share/nls.aliasでなくて/usr/share/nls/nls.aliasね。
0135119
垢版 |
NGNG
>>133
>んで、別の作業がやりたいんでOpenBSDは一応これで安定版とし
>しばらく更新しない予定。
># stdioまわりにthread safeの為のlock/unlockが実装されだすまでは
># conflictもでないと楽観。

ホントにおつかれさまでした。
お蔭様で、管理しているサーバともどもデスクトップも全てOpenBSD化
できますた。

今mac68kでコンパイル中ですがいったいいつ終るやら…。
#すでに4日経過…。 バカ>漏れ
0137135
垢版 |
NGNG
>>136
管理しているサーバ用のcvsリポジトリが使えるようになったことで
パッケージのアップデート等で回線を逼迫しなくなった点。
使っている環境の回線が細いので。あとは「利点」というより個人的
趣味です。
0138133
垢版 |
NGNG
ダレモイナイ... xpg4dl-20030409ヲリリーススルナライマノウチ...

ChangeLog:
* OPENBSD_3_3 branch対応
* 最新のNetBSD-currentへの追従
- wcstoll, wcstoullの追加(wcstoimax, wcstoumaxはOpenBSDの事情により未merge)
- gbk2k module、zh_CN.GB18030ロケールの追加

0140135
垢版 |
NGNG
>>138
ご苦労さまです。currentのXFree86が4.3.0になったお蔭で大方の
パッケージを再コンパイルするハメに…。
結果報告が遅れてしまいますた。近々デスクトップのスナップを
撮り直します。
0142135
垢版 |
NGNG
>>140
>パッケージを再コンパイルするハメに…。

こんなことやってるウチにsource-changes@cvs.openbsd.orgからのメールが…。

>CVS: cvs.openbsd.org: www
>From:
>Dale Rahn <drahn@cvs.openbsd.org>
>
>To:
>source-changes@cvs.openbsd.org
>
>日時:
>今日 14:17:01
>
>CVSROOT: /cvs
>Module name: www
>Changes by: drahn@cvs.openbsd.org 2003/04/16 23:17:01
>
>Modified files:
> faq : upgrade-minifaq.html
>
>Log message:
>Document that i386 has moved to ELF and we will NOT support source updates.

(ようやく?)ELFなっちゃうすか…。安定するまで静観するス。
0145名無しさん@XEmacs
垢版 |
NGNG
OpenBSDを日本語環境してデスクトップで利用している人はいない、ってことでファイナルアンサー?
0146名無しさん@お腹いっぱい。
垢版 |
NGNG
>>145
アホか?
いっぺん死んでこいや(藁
0152名無しさん@お腹いっぱい。
垢版 |
NGNG
sage 進行っつったって、沈み過ぎ。
このスレ無くなってもらっちゃ困るし、活性化を祈念して age
0153名無しさん@お腹いっぱい。
垢版 |
NGNG
山崎のせいで、数々の良スレが沈んでいったな。
0155名無しさん@お腹いっぱい。
垢版 |
NGNG
>>154
これを機会にWindowsに移行する事を勧める。
Windows使えば、そんなくだらない事で悩まなくていいし。
今みたいに、自己満足ばかりの生活から脱却できるよ。
非常に有益な素晴しい時間を過したければWindowsを使おう。
0157名無しさん@お腹いっぱい。
垢版 |
NGNG
>>156
現実から目を背けるな
0159154
垢版 |
NGNG
>>158
多謝。ゲトできました。
さっきアクセスできなかったのは、ネットワークトラブルだったんだろか…?
0162名無しさん@お腹いっぱい。
垢版 |
NGNG
OpenBSD 3.4
0164sage
垢版 |
NGNG
>>161
typo ハケーン。

/usr/src/etc/mtree/4.4BSD.dist の 1025 行目
誤:en_GR.ISO8859-7
正:el_GR.ISO8859-7
ですよね?
0165161
垢版 |
NGNG
>>164さん ありがとうございます。 20030920版にて修正しました。
http://sigsegv.s25.xrea.com/distfiles/citrus/OpenBSD/HEAD-xpg4dl-20030920.tar.bz2

その他の変更点は
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/citrus/modules/citrus_iconv_std.c?rev=1.6&content-type=text/x-cvsweb-markup
の取り込みくらいなので、20030828版を既に導入済なら
cd ${BSDSRCDIR}/src/lib/i18n_module/iconv_std && make depend all install
して/usr/lib/i18n/libiconv_std.* を入れ換えるだけでOKです。
0166名無しさん@お腹いっぱい。
垢版 |
NGNG
>>165
導入してみますた。
導入自身は問題なかったのですが、setenv LC_CTYPE ja_JP.eucJPとかやると、
"Wrong dl symbols!"とか言われたり。
導入方法は"INSTALL"を参考にしますた。
0167sage
垢版 |
NGNG
>>166
それって、install 失敗して途中で止まってやしませんか?

>>165
make obj してから make build すると、以下な具合に止まるようです。

> install -c -o root -g bin -m 444 /usr/src/share/i18n/csmapper/obj/ISO646/ISO646-BASIC@1983%UCS.646 //usr/share/i18n/csmapper/ISO646/ISO646-BASIC@1983%UCS.646
> install: /usr/src/share/i18n/csmapper/obj/ISO646/ISO646-BASIC@1983%UCS.646: No such file or directory
> *** Error code 71
>
> Stop in /usr/src/share/i18n/csmapper (line 51 of /usr/src/share/i18n/csmapper/Makefile).

私は、とりあえず

/usr/src/share/i18n/csmapper/ISO646/Makefile.inc を

32c32
< OBJDIR_ISO646-${i:S/:/@/}%UCS.646= ${.OBJDIR}/ISO646
---
> OBJDIR_ISO646-${i:S/:/@/}%UCS.646= ${.CURDIR}/ISO646

てな具合にして無理やり通してみましたが、どうするのが正しいかは
よくわかりません。
# まだ、build ちう
0168167
垢版 |
NGNG
どうやら、無事 build 出来た模様。i386 です。
0169165
垢版 |
NGNG
アク禁中につきレス遅くなってスマソ。

>>166さん
archは何ですか?
そのメッセージは/usr/libexec/ld.soにdlfcn系の関数が無くて
libc.soのdlfcn_stub.cが使われる時に出るもののようです。
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/dlfcn/dlfcn_stubs.c?rev=1.7&content-type=text/x-cvsweb-markup

xpg4dl/iconvフレームはdlopenとdlsymに依存してるので、
それが機能してないとmultibyte localeもiconvも動かないです。

そのようなarchや、static linked binaryでも
http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=18151
みたいに全部libcが抱えこんじゃうよなoptionを用意してmultibyte localeを
使うよううすることも出来るんですが... するとXPG4"DL"で無くなる罠。

dlfcn系がサポートされているarchでも、ここ最近の-currentで
ld.soにいろいろ修正が入ってるようなので、それが影響しているのかも...
# 少なくとも20030920の-current/i386では動いとります。

>>167さん
そこでbuildがコケるのは漏れのミス100%でつ。
そのpatchで正解、ありがとうございます。
反映版を近いうちに用意いたしますです。
0170名無しさん@お腹いっぱい。
垢版 |
NGNG
>>167
make obj後にエラーを起こすのは分かっていたので、${SRC_DIR}で、make cleandir
後にmakeしますた。

>>169
archはi386でつ。
ソースツリーはCVSで-D20030920を使っていたと思いますが、現在導入したPCが、
メモリか電源不良を起こして、まともに起動できなくなっていたり・・・。

修理したらまたトライしてみまつ。
0171166,170
垢版 |
NGNG
>>169
CVSオプションで-D20030920を指定していたつもりが、CVS/Tagを見てみたら、
20030919でトホホなオチだったよーでつ。
0172166
垢版 |
NGNG
CVS/TagがD2003.09.20.15.00.00で導入してみますた。(i386)
setenv LANG ja_JP.eucJPやsetenv LC_ALL ja_JP.eucJPだと、相変わらず、
"Wrong dl symbols!"が出てきますが、setenv LANGUAGE ja_JP.eucJPだと、
何事もなく…。

>>169
>そのメッセージは/usr/libexec/ld.soにdlfcn系の関数が無くて
>libc.soのdlfcn_stub.cが使われる時に出るもののようです。

nm /usr/libexec/ld.so |grep " dl"したところ、

(略)
000026a0 T dlopen
0000285c T dlsym

となっているのでこれは問題なし…?

とりあえず、setenv LANGUAGE ja_JP.eucJPでkterm上で無事日本語入力や、
表示が出来ているので満足していまつ。
0173169
垢版 |
NGNG
>>174
> setenv LANG ja_JP.eucJPやsetenv LC_ALL ja_JP.eucJPだと、相変わらず、
> "Wrong dl symbols!"が出てきますが、
このメッセージ出ること自体どっかぶっ壊れてるんでつよねー

> setenv LANGUAGE ja_JP.eucJPだと、
> 何事もなく…。
環境変数 LANGUAGE は gettext(3) の為のもので、
setlocale(3) は一切関知しません、よって何も発生しないでしょう

つーことで
> とりあえず、setenv LANGUAGE ja_JP.eucJPでkterm上で無事日本語入力や、
> 表示が出来ているので満足していまつ。
setenv LANGUAGE〜では setlocale(3) は C locale で動作してるはずなので
kinput2にktermは日本語表示/入力できない筈なんですが...

漏れのところではどーにも再現しないので
/etc/mk.conf
/usr/libexec/ld.so
/usr/lib/libc.so.*
/usr/lib/i18n/libEUC.so.*
/usr/share/locale/ja_JP.eucJP/LC_CTYPE
/usr/X11R6/lib/libX11.so.*
/usr/X11R6/lib/libXaw.so.*
/usr/X11R6/lib/X11/locale/ja/*
/usr/X11R6/lib/X11/locale/lib/common/x*.so.*
/usr/X11R6/lib/X11/config/OpenBSD.cf
/usr/local/bin/kinput2
/usr/local/bin/kterm
を固めてどっかにうpしてもらえれば、調査してみまつ...
0174174
垢版 |
NGNG
>>173

>漏れのところではどーにも再現しないので
>/etc/mk.conf
>/usr/libexec/ld.so
>/usr/lib/libc.so.*
>/usr/lib/i18n/libEUC.so.*
>/usr/share/locale/ja_JP.eucJP/LC_CTYPE
>/usr/X11R6/lib/libX11.so.*
>/usr/X11R6/lib/libXaw.so.*
>/usr/X11R6/lib/X11/locale/ja/*
>/usr/X11R6/lib/X11/locale/lib/common/x*.so.*
>/usr/X11R6/lib/X11/config/OpenBSD.cf
>/usr/local/bin/kinput2
>/usr/local/bin/kterm
>を固めてどっかにうpしてもらえれば、調査してみまつ...

ありがとうございます・・・。って、

>/usr/X11R6/lib/X11/locale/lib/common/x*.so.*

は存在しないようでつ。
とりあえず、ソコ以外を固めて以下のURLに置いてもらいますた。
ttp://mahodo.jp/~admin/patched_openbsd.tar.gz
0175173
垢版 |
NGNG
>>/usr/X11R6/lib/X11/locale/lib/common/x*.so.*
>は存在しないようでつ

↓を忘れておりました。
http://www.openbsd.org/cgi-bin/cvsweb/XF4/xc/config/cf/OpenBSD.cf.diff?r1=1.1.1.6%3AXFREE86_4_3_0&tr1=1.1&r2=1.122%3AHEAD&tr2=1.122&f=u
+/* Dynamic loading of i18n modules in libX11 has too many problems for now */
+#ifndef BuildLoadableXlibI18n
+#define BuildLoadableXlibI18nNO
+#endif

>とりあえず、ソコ以外を固めて以下のURLに置いてもらいますた。
>ttp://mahodo.jp/~admin/patched_openbsd.tar.gz

うちの環境にlibcその他をコピーしていろいろ動かしてるのですが、
"Wrong dl symbol"などの警告は一切出てこないでつね。

kinput2、ktermの組み合わせも
  LANGUAGE=ja_JP.eucJP -> 動かない
  LC_ALL=ja_JP.eucJP -> 動く

つまり正常にbuildできてるとしか思えない状態。つーことで、
1. メモリの不良がないこと
http://www.memtest86.com/
2. LD_PRELOADやLD_LIBRARY_PATHなどの環境変数で、
壊れたlibcなどを読み込んでいない事

以上2点をちょっと確認してもらえまつか?
0176175
垢版 |
NGNG
173を訂正、漏れの環境でも(誰の環境でも)発生シマスタ、ひらにゴメソ。

setlocale(3)が内部でdlopen(3)に依存してるのは前述でつが、
static linked binaryの場合は、当然libc側のdlopen
(/usr/src/lib/libc/dlfcn/dlfcn_stubs.c)が使われます。

んで、static dlopen(3)の中の人がprintfで余計なメッセージを垂れ流してるわけですな...
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/dlfcn/dlfcn_stubs.c?rev=1.7&content-type=text/x-cvsweb-markup

NetBSDだと、無言なのだが。
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/dlfcn/dlfcn_elf.c?rev=1.4&content-type=text/x-cvsweb-markup

単純明快には、dlfcn_stubs.cから全てのprintfを消しちまえ、ってとこですね。
つかせめてwarnx(3)つかってくれよぉ〜。標準出力にだすなよぉ〜。
0177175
垢版 |
NGNG
んで、パッチ。

--- dlfcn_stubs.c.orig2003-10-11 17:56:56.484375000 +0900
+++ dlfcn_stubs.c2003-10-11 17:57:14.328125000 +0900
@@ -45,21 +45,18 @@
void *
dlopen(const char *libname, int how)
{
-printf("Wrong dl symbols!\n");
return NULL;
}

int
dlclose(void *handle)
{
-printf("Wrong dl symbols!\n");
return 0;
}

void *
dlsym(void *handle, const char *name)
{
-printf("Wrong dl symbols!\n");
return NULL;
}

0178名無しさん@お腹いっぱい。
垢版 |
NGNG
OpenBSD 3.4で日本語通った人いますか。
0179昭夫@号寛大隙
垢版 |
NGNG
おい、お前レイプ好きか?
0180174
垢版 |
NGNG
会社が倒れるは、導入してたマシンのマザーのコンデンサは抜けるは、でアクセス
出来ませんでした。

で、手元にあったK6-533MHzなマシンに3.4を導入した上で、パッチ当ててみまし
たところ、無事機能しますた。

当面はcurrent追っかける余裕も無いのでしばらくおとなしくしときまつ。
0181名無しさん@お腹いっぱい。
垢版 |
NGNG
>>178

私も(180な方と同様)3.4に入れてみました(xpg4dlを)が、動いている
ようです。mozilla-firebirdで日本語のウィンドウタイトルも表示
されているし(今、書いているのはOpenBSD3.4の環境なのでmozillaでの
日本語入力も問題なくできているという事です)メーラのsylpheed等も
問題なく使えてます。(fvwm2-i18nを作り直して、gtk+を作り直して……
しましたが)
ちなみに、P150なノートパソコンなので、XPG4DLを入れる時には最後の
make buildだけでも↓な感じでした。(11.5時間以上掛かりました)
# cd /usr/src ; time make build
30082.4u 6198.5s 11:35:18.30 86.9% 0+0k 233261+882661io 70264pf+0w
0183178
垢版 |
NGNG
>>181
新年明けましておめでとうございます。
昨年の11月から、システム管理の仕事に就きました。

まだ、C言語やシェルスクリプトからシステムコールのことも満足にできない
状態でUNIXだけで食っていってる状態ですが、これからシステム管理を極めつつ
プログラミングの技術もつけてさらに磨きをかけてくつもりです。

mozillaでの日本語入力ができていると聞いて驚きを隠せない状態です。
これもオープンソースのもつ凄さなのでしょうかね。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況