OpenBSDで日本語環境設定
■ このスレッドは過去ログ倉庫に格納されています
mysqlを./configure --with-charset=ujisでコンパイルしようとしたら、 ujisを扱う方法がわからないってしかられた。これってlocaleの処理が できないからだよね? どうしよう? / ̄\_/ ̄ ̄||___ / ̄ ̄ ̄ // ̄\_\ / / ̄\/\\__ ̄´ \ _/ (\_/ \ |´■■■ノ /■■ /\|/ (・)|_/(・) | \/|\__/(_\_/ / | `´/ \ __] / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /\ \_| < 今後、アメリカ政府の暗号規制で \__/ \  ̄| | OpenBSDの使用は禁止になるのかよ? \_| \______________ OpenBSDは、カナダが原産国だからその様なことにはならないと想われ。 >>64 アメリカ国内でのみ使えないことになる可能性はあるが、アメリカが 発信源でない以上その他の国は無関係だな。日本はアメリカの圧力に 負けてダメになるかも知れないけど。 保守アゲ 最近ネタがないね。 漏れは日本語化なんてしないからネタはないよ 日本語にはならないあるよ。 ペンがないから。 0penBSD (w ^ XF4 を X_LOCALE つけて make すると XIM がぜんぜんダメなんだけれども、そういうもん? XF3 の方は同様にして普通に動くんですが。 XF3とかXF4てな呼び方は最近メジャーなのか? 一瞬なんの事かワカランかったぞい。 >72 XMODIFIERS="@im=hoge"は指定してるか? XMODIFIERSは "@im=kinput2" とか指定してます。 けっこう前のソースだと、XIMがぜんぜんアクティブにならなくて、 最近のソースだと ja locale で rxvt とか立ち上げた瞬間コアはいて死にますね。 _XimRegisterIMInstantiateCallback() とかなんかそのへん。 最近は libc の locale がないとダメなのかな。 XF4はモジュール名、XF3はオレ語です。 対比でわかるかと思って。モジュール名は X11。<XF3 X_LOCALEはまーかす君が殲滅作戦遂行中なんではないかと >72 www.xfree86.orgに行って公開されてるi18n@メーリングリストの 4.2.0のリリース日から後を適当に拾い読むのがお薦め。 確か、Linux何かでわコマンド打った後のメッセージからマニュアルページの説明に至るまで日本語にするプロジェクトがあったよね? nkf? nsl? だったかと思うけど、忘れた,, おいら,OpenBSDにはX入れてないんだけど,konってOpenBSDで走るのかな? リモートメンテがほとんどだから,コンソールで日本語表示させようとは 思わないけど。 FreeBSDはjmanがあるからいいねぇ。OpenBSDではjman-doc ML出来るぐらい の国内コミュニティはないのかな。でも,FreeBSDでもjp.freebsd.orgの サイトのman検索ばっかり使ってて,マシンにはjman入れていない罠。(w あとLinuxだけど馬鹿に出来ないのはJF。あれはBSDユーザでも役に立つと思う。 って,そう言う話題を話すスレではないのかな?スマソ。 あー、あー。 Linux エミュレーションな Mozilla から書き込んでみるテスと。 もはや OpenBSD じゃないかも...。 λ_λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( `ー´) < いいんじゃネーノ? / ノつ \__________ (人_つ_つ LC_CTYPE設定して、vimとかjlessとかでまぁ満足。大抵Windowsマシンから LOGINするから、MS-IMEで入力できるし 正攻法じゃないけど、FreeBSDのlocaleからかっぱらってくるっていう手もあるんじゃない。 >>86 それを是としないのが良くも悪くも OpenBSD では ないかといってみる手スト 以前NetBSD/CitrusのlocaleまわりをOpenBSD 3.0/3.1で使えるようにしたpatchを 本スレでうpしたんだけど、3.2用に更新したpatchって需要ありまつか? >>89 いや、需要あるも無いもオープンソースの世界ではオープンにしないと、 役に立つかどうかは別として公開してみては。 OpenBSD 3.2をインストールした人で、日本語が上手くいったら結果報告希望。 当方、3.0で失敗しました。 ありがとう。(涙; 3.2インストしたら試してみます。 Citrus が OpenBSD のソースツリーに入らないのはなんでなのかな? すまん、>>92 のpatchはdiffとる前にcommitし忘れてたファイル多数あり(汗 直してbuildできるようにした&今日のstableに同期したんで、 http://wave.prohosting.com/sigsegv/distfiles/citrus/ から20021206版を拾ってってくだーさつぁい。 >>94 Theo は、もうそろそろ入れてもいいかもね、と去年の夏ごろ発言してた ような気がする。単に作業する人がいないだけちゃうか? そんなもん日本人以外ありえないから、ここ読んでる香具師、誰か立候補しる! itojun さんばっかりに期待しててはダメだ。 入れるならやっぱdlopen()使わないでstaticにlibcに組み込んだ方は良いのかねぇ。 あとMB_LEN_MAX 32でbinary compatibility崩れるんだけど NetBSDの魔法__RENAMEマクロでなしにlibcのmajorをサクっと上げちまえば良い? 厨でもうしわけないんだけど、_RENAME マクロってどういう役割なの? シンボルの頭に "_" を付けたり付けなかったりするものらしい、 というのは分かるんだけど、それがどういう意味なのか理解できない。 誰か解説して or 情報のポインタ、ぷりーづ。 >>95 さん ありがたく使わせていただきました<patch この patch は、i386 専用ですか? sparc64 で make したら、そのままではうまく動かなかった。 スマソ、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をごにょごにょして出力結果を 塩兄氏の日記でチェックしてみてください。 >>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 とかやれば分かるんじゃないでしょうか。(というか、わたしもすぐ分からなくなるから↑こんな風にしています。) 神が降臨したようなので、おれも久々にOpenBSDを使ってみようかと思う今日このごろ >>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 >>103 げ、OpenBSD/sparc64ってELFだったのか。そりゃsymbolに"_"が余分に付く罠。 ですので>>103 のpatchは__i386__でなくて__ELF__っすね。 暇見て更新しておきます、ありがとうございました。 >>102 ちなみに私はちっとも神じゃないです。:-) 101 の内容もちっとも自信がありませぬので鵜呑みにされませぬよう。>all 実は OpenBSD の話題じゃない罠。>_RENAME >>100 さん げ、OpenBSD/i386 って、aout だったのか。 # ELF と aout の違いを全然理解してない厨房<洩れ あと、install.txt に /usr/lib/i18n を掘っておくことを 追加しといたほうが親切かもしれません。 お待たせしました、20030106版に更新しますたです。 http://wave.prohosting.com/sigsegv/distfiles/citrus/ 変更点: ELFで__RENAMEが正しく動くようにした(Thanks to >>99 さん)。 これでalpha、sparc64、hppaでもちゃんと動く...はず。 # まー、__RENAMEはlibcのmajorを上げて良いのならまったく必要ないんですが。 >>108 うひー、/usr/lib/i18nはmtreeが掘ってくれると信じてたんですが。 もういっぺんチェックしますです。 コソーリ、20030128版に更新のお知らせ。 変更点: fgetwc/fputwcなどのwide file io関係もNetBSD-currentからmerge これでCitrusの成果は全部取り込んだはずっす。 んで、いつもProhostingにpatchを置いとったのですが、 一部有料化するそうなので、こちら↓に移転しますた。 http://sigsegv.s25.xrea.com/distfiles/citrus/ citrusの移植をしている方がいると聞きましたが、、、。 >>112 おおっ、あなたですね。OpenBSDはユーザー少ないし、ユーザー同士の 横のつながりもあまりないので反応が無く見えるけど、期待してる人は いっぱいいる(私も含めて)と思いますよ。応援してます。 >>113 うーん。もう見れないみたい。ktermがエラー吐かずに立ち上がります? 移植(汗 つーかコピぺ程度の作業量なんで... いい忘れてたけど、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仕えちゃったりする方が実は嬉しいかったりするのかもしれないと チョトだけ思った。 んで、洩れができそうな範囲での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 >>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ではやってくれてるみたいなんですが。 >>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としてのっける予定 documentだけ更新、 http://sigsegv.s25.xrea.com/distfiles/citrus/install_openbsd.txt make includesでなくてmake beforeinstall走らせりゃmtreeまでやってくれんのね。 トラブった方、失礼致しますた。 >>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でだまらせることにしました。 >>121 HEADに対応されていたのですね!早速導入してみます!! (実は121のinstall_openbsd.txtを取りに行こうとしたら、HTTP404を返されて 見に行ったらって、とこだったんですが) >>123 HEAD向けはコンパイルできるかどうかさえテストしてないです。 libpthread(3.2ではlibc_rだったやつ)あたりでヘッダ見つからんとかいって buildへくるかも。buildが通りさえすれば、OpenBSDは他の*BSDと違って releaseとcurrentには大きな違いがないんで、動作自体は支障ないとは思います。 HEAD 向けコンパイルしてみますた。 make beforeinstall するときに、幾つかヘッダが無いと言われますが、 その dir へ行って make してやればヘッダ生成されるので、改めて make beforeinstall すればOK。 そこさえ越えれば、make build は問題ないようでつ。 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はまだ読んでないっす。 >>125 >make beforeinstall するときに、幾つかヘッダが無いと言われますが、 make beforeinstallの前にmake includesを実行すると問題ないようでつ。 send-prに[PATCH]でなくて[PACTH]とか書いちまったよ...逝ってくる >>126 手元の計算機に導入してみますた。 前回のHEAD用に公開されたバージョンからかも知れませんが、lib/libs/stdlib/multibyte.c がrejectされるようです。 /dev/nullとのdiffみたいなんでrm multibyte.c*でエェかぁ、とかやってまつ。 注意点としては前のパッチがあたっている環境故か、この計算機固有なのか追いかけ る時間が無いのでわかんないんですが、LOCALE関連の環境変数が定義されていると、 libcのインストールの段階でcore dumpまたはmemory faultしました。 取り敢えずLOCALE関連の環境変数をunsetenvすればオケですた。 4回目のコンパイル前に気づけよ>漏れ 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]とか対策入れてる模様。 流 石 だ な 、 兄 者。 追伸 libcとlib${ENCODING}のABIが揃っていれば落ちないです。 だからbuildし直す必要は無いです。unset LC_ALL LC_CTYPE LANGとかで とりあえず逃げてください。 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もでないと楽観。 そいじゃ。 /usr/share/nls.aliasでなくて/usr/share/nls/nls.aliasね。 >>133 >んで、別の作業がやりたいんでOpenBSDは一応これで安定版とし >しばらく更新しない予定。 ># stdioまわりにthread safeの為のlock/unlockが実装されだすまでは ># conflictもでないと楽観。 ホントにおつかれさまでした。 お蔭様で、管理しているサーバともどもデスクトップも全てOpenBSD化 できますた。 今mac68kでコンパイル中ですがいったいいつ終るやら…。 #すでに4日経過…。 バカ>漏れ >>135 > お蔭様で、管理しているサーバともどもデスクトップも全てOpenBSD化 > できますた。 デスクトップをOpenBSD化する利点は? >>136 管理しているサーバ用のcvsリポジトリが使えるようになったことで パッケージのアップデート等で回線を逼迫しなくなった点。 使っている環境の回線が細いので。あとは「利点」というより個人的 趣味です。 ダレモイナイ... xpg4dl-20030409ヲリリーススルナライマノウチ... ChangeLog: * OPENBSD_3_3 branch対応 * 最新のNetBSD-currentへの追従 - wcstoll, wcstoullの追加(wcstoimax, wcstoumaxはOpenBSDの事情により未merge) - gbk2k module、zh_CN.GB18030ロケールの追加 >>138 ご苦労さまです。currentのXFree86が4.3.0になったお蔭で大方の パッケージを再コンパイルするハメに…。 結果報告が遅れてしまいますた。近々デスクトップのスナップを 撮り直します。 >>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なっちゃうすか…。安定するまで静観するス。 OpenBSDを日本語環境してデスクトップで利用している人はいない、ってことでファイナルアンサー? >>146 >>145 じゃ無理なんだよ。まあ、アホはスルーするなりしてほっとけよ。 >>147 145=146 自作自演で荒したいんじゃネーノ sage 進行っつったって、沈み過ぎ。 このスレ無くなってもらっちゃ困るし、活性化を祈念して age しもた、xpg4dl-20030409 のリンク先がなくなってる。弱ったな。 どこか or 誰か保存してない?<HEAD-xpg4dl-20030409.tar.bz2 >>154 これを機会にWindowsに移行する事を勧める。 Windows使えば、そんなくだらない事で悩まなくていいし。 今みたいに、自己満足ばかりの生活から脱却できるよ。 非常に有益な素晴しい時間を過したければWindowsを使おう。 >>158 多謝。ゲトできました。 さっきアクセスできなかったのは、ネットワークトラブルだったんだろか…? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる