[PHP-users 7987] Re: もう一度組み立て直してみまたが
Yasuo Ohgaki
php-users@php.gr.jp
Sat, 08 Jun 2002 20:56:48 +0900
大垣です。
簡単に整理しておきます。
dolphine@axel.ocn.ne.jp wrote:
> 再び上杉です。
> 加藤さん、大場さんレス付けて頂いて感謝しております。
> 加藤さんのご指摘の [PHP-users 4273] を読みもう一度 php-4.1.2.tar.gz
> にあう拡張モジュールをピックアップして ---(2)からやり直してみました。
>
>
> %tar zxvf php-4.1.2.tar.gz
> %cd php-4.1.2/ext
> %tar zxvf ../../php4_namazu-2.1.0.tar.gz
php4_namazu-2.1.0.tar.gzとPECL版はたしか岩切さんの
パッチが当ててある事を除きPECL版と同じです。
> %tar zxvf ../../php4_jstring-1.1.1.tar.gz
4.1.0以降は必要ありません。
--enable-mbstringが必要です。ドキュメントされていませんが
i18n_*()関数のエイリアスが作ってあるのでphp3 i18n版から
の移行もしやくなっています。
次にリリースされる4.3.0からはデフォルトでビルドされます。
> %tar zxvf ../../php4_mbregex-1.3.1.tar.gz
4.2.0からmbregexはマージされています。(--enable-mbregex)
> %tar zxvf ../../php4_kakasi-0.3.0.tar.gz
PECLに収録されいるのはこのバージョンです。
> %tar zxvf ../../php4_chasen-0.3.0.tar.gz
PECLに収録されいるのはこのバージョンです。
> %cd ../
> %rm configure
> %./buildconf
> % ./configure --enable-jstring --with-namazu --with-kakasi \
>
>>--enable-mbregex --enable-iconv --with-pgsql \
>>--with-apxs=/usr/local/apache/bin/apxs --enable-trans-sid --enable-track-vars
>
> % make
>
> に変更しましたが、
> ------------------------------------------------------------------------
> jstring.c:54:37: ext/standard/php_output.h: No such file or directory
> make[3]: *** [jstring.lo] エラー 1
> make[3]: 出ます ディレクトリ `/usr/local/src/php-4.1.2/ext/jstring'
> make[2]: *** [all-recursive] エラー 1
> make[2]: 出ます ディレクトリ `/usr/local/src/php-4.1.2/ext/jstring'
> make[1]: *** [all-recursive] エラー 1
> make[1]: 出ます ディレクトリ `/usr/local/src/php-4.1.2/ext'
> make: *** [all-recursive] エラー 1
> [postgres@localhost php-4.1.2]$
> ------------------------------------------------------------------
> 今度は jstring のエラー版がでます。jstring はもとのphp-4.1.2.tar.g
> には入っていません。何かどうどうめぐりしているみたいなのですが、
> 困ってしまいました。
./configure --helpとしてどの様な機能があるか確認してから
モジュールを追加される事をお奨めします。
PECLに収録されているモジュールは今のところ新しいビルドシステ
ム用に変更していないのでPHP4.2.x以下で利用可能です。
# と言う事でPHP 4.3.0-devでは使えません。
# 修正は簡単です。4.3.0用パッチはまだ作ってません。
# パッチ歓迎します。
# PECLはcvs.php.netのpear repositoryの
# /pear/PECLに収録されています。4.3.0から
# pear downloaderでダウンロードできるように
# なるはずなのですが、、、
ext/iconvのソースですが、4.2.0以前のソースは塚田さんの
iconvモジュールと同等ではありません。4.2.0から私のパッチ
が適用されているので、libiconv, libgconv等を利用してい
ない場合(つまりlibcがiconvをサポートしている場合)は塚田
さんのiconvモジュールと同等の動作をします。
4.2.0より古いiconvモジュールにはwide charを正しく取り扱
えない、バッファーを元の"サイズ*sizeof(ucs4_t)"として確
保する為マルチバイト文字が正しく変換できない場合がある、と言っ
た不具合があります。
libiconv, libgconvを使っている場合、先ほど説明したバグ有
りの動作をします。少なくともLinuxのglibcはiconvをサポート
しています。4.2.0x+Linuxユーザーの方はiconvの動作を心配
される必要はありません。
# 自分でパッチしておきながら、今ソースを見て思い出しました。
# libiconv, libgconvを使っている場合も、大抵のマルチバイト
# 文字変換に困らない程度の余分なメモリを足す様に変更したので
# 4.2.0でlibiconv, libgconvを使っている方もほとんどの
# 場合、メモリを無駄にするコードになっている点を除けば使える
# と思います。完全な対処方法ではありません。変換後の文字列が
# バッファーサイズを越える場合もあります。
--
Yasuo Ohgaki
[ Web Developer Square ]
http://www.webds.net/ 構築中です。
(現在、XHTML準拠のためにコード修正中。準拠してない
ページに対するレポート歓迎します。)