This service is available only in Japanese-language.
拡張モジュールの追加する方法について質問させて頂きます。
●PACKAGECONFIG optionsのある場合
optionsを確認(https://layers.openembedded.org/)し、PACKAGECONFIG_appendで追加する方法で正しいでしょうか?
PACKAGECONFIG_append = " harfbuzz"
PACKAGECONFIG[harfbuzz] = "-system-harfbuzz,-qt-harfbuzz,harfbuzz"
PACKAGECONFIG = "openssl"
PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl"
●PACKAGECONFIG optionsの無い場合
現在php-mbstringの組み込みを予定しておりますが、正しい方法がわかりませんでした。
PHPとphp-mbstringを分離して組み込むのか、PHPのレシピを修正して1つのレシピに統合(パッケージ化)した方が良いのか。
良い方法がありましたら、ご教授願います。
yakuhito
2020/2/13 (木) 16:38
PACKAGECONFIG変数は、あくまでもコンパイル・リンク時のパスやファイルの指定となります
autotoolsを使用するレシピで生成されるパッケージの構築時のオプションは、EXTRA_OECONF 変数に、configure 実行時に指定したいオプションを記載します。
phpの場合、EXTRA_OECONF で、--enable-mbstring 指定されており、該当するソースはコンパイルされています。
bitbake php -c devshell で構築用のターミナルを立ち上げ、./configure --help を実行すると指定可能なオプションが表示されるので
必要なものを bbappend の中で EXTRA_OECONF += 等で追加します。
追加で生成されたファイルは、独立したパッケージを定義し、FILES_${PN}-mbstring 変数に追加すれば良いかと。
takeda
2020/2/13 (木) 18:10
回答ありがとうございます。
大変失礼しました。EXTRA_OECONF で--enable-mbstringされているのを見落としていました。
php-pecl-memcachedのようなhelpに記載のないパッケージを含めようと検討しております。
同様にbbappendでEXTRA_OECONFに追記する方がよいのか、新たなレシピを作成する方が良いのかどちらが良いのでしょうか?
yakuhito
2020/2/14 (金) 19:07
php本体に含まれない拡張モジュールは、php本体のconfigureでは構築できないかと。
EXTRA_OECONF での変更は、あくまでもphp本体のソースに含まれるモジュールが対象となります。
追加を検討されている拡張モジュールのソースの構成にもよりますが、autoconf を使用するものであれば、
・devtoolを使用してレシピのひな形を作成。
・依存関係にphp-devel を追加して、ヘッダーファイルやライブラリをレシピのsysrootに追加
・configre の --help を実行して、EXTRA_OECONF に指定するオプションを決定
といった形で構築は可能かと。
拡張モジュールを有効としたphp.ini を最初からrootfsに含める場合には、phpのbbappendで変更後の
php.ini を使用するように設定するなど、調整が必要になりそうです。