This service is available only in Japanese-language.

パッケージ

ファイルが含まれるパッケージを調べる方法

講習の中で受講生から出された質問です。

あるファイルが含まれるパッケージを調べる方法は?

libpngを使いたい。

組込み機器で、正式に配布された、yoctoで開発をしています。
設定は案内のままに沿って行っております。

libpngを利用したいと思っております。
現行の開発環境では、pkg-config をリストアップしても
そこには、libpngに値するものがでてきません。
libpngを利用するためにはどうしたらよろしいでしょうか?

なお、wayland_egl とか egl とかは コンパイラ、リンカで
WAYLAND_EGL_OPT=`pkg-config wayland-egl --cflags --libs`
EGL_OPT=`pkg-config egl --cflags --libs`
などを付加することで利用できています。

自分で質問文面を見かえしてみる、「初歩的」質問と思われますが、
なにとぞ、お答えください。
よろしく、おねがいします。

独自レシピにて,defineの内容をbbappend等で切り替えたい場合の最適な方法

表題のように,独自レシピにて,defineの内容をbbappend等で切り替えたい場合の最適な方法を探しています。
ソースコード自体のパッチを作成することは,大本のソースの変更時にパッチの変更もまた必要になるため,避けたいです。

EXTRA_OECONFで文字列を--with-param1-opt=OPTIONのように実装し,コンパイラオプションにてdefineを与えることも考えていますが,
妥当な方法であるかが不明です。
表題の件に関しまして,妥当な方法はございますでしょうか,

また,EXTRA_OECONFにつきまして,既存のconfigurationを扱う情報は見つかってはいるのですが,新規に作成する場合の情報が見つかっておりません。
上記EXTRA_OECONFを使用する方法が妥当であれば,新規作成方法をご教示いただけますでしょうか。

不要なパッケージの削除について

openstlinux dunfellを使用しています。
packagegroup-framework-core-baseはイメージにふくめ,
packagegroup-framework-core-base-displayをイメージから削除したいのですが,どうしてもイメージに含まれてしまいます。

試行した記載は以下のとおりです。

CORE_IMAGE_EXTRA_INSTALL += " \
packagegroup-framework-core-base \
packagegroup-framework-tools-base \
\
${@bb.utils.contains('COMBINED_FEATURES', 'optee', 'packagegroup-optee-core', '', d)} \
${@bb.utils.contains('COMBINED_FEATURES', 'optee', 'packagegroup-optee-test', '', d)} \
"
RDEPENDS_packagegroup-framework-core-base_remove = " packagegroup-framework-core-base-display "
IMAGE_INSTALL_remove += " packagegroup-framework-core-base-display "

解決方法ございましたらご教示いただけますと幸いです。

ファイルを格納するだけのレシピにdebファイルを入れるとエラーとなる

諸事情あり,debファイルを格納するだけのレシピを作成しようとしています。
このdebファイルは生成物ではなく,予め用意したdebファイルを格納します。ファイルを格納するだけであり,格納したdebによるインストール等は不要です。
以下のようなレシピを試しに作成したのですが,bitbake時エラーとなります。
入れるファイルをxxx.txtに変更しましたところ,問題なく格納されたので,
debファイルを使用していることそのものが原因であることを疑っています。

なにか記載の追加等で対応できないか,ご教示いただけますでしょうか。

◆レシピ
SUMMARY = "copy files"
SECTION = "BASE"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://autofs_5.1.6-r0.0_armhf.deb "
S = "${WORKDIR}"
INHIBIT_DEFAULT_DEPS = "1"

do_install() {
install -d ${D}/usr/lib
cp -r ${WORKDIR}/autofs_5.1.6-r0.0_armhf.deb ${D}/usr/lib
}

FILES_${PN} = "/"

◆エラー出力
Log data follows:
| DEBUG: Executing shell function do_install
| cp: cannot stat '(省略)/build-openstlinuxweston-stm32mp1-xxx/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/xxx/0.1-r0/autofs_5.1.6-r0.0_armhf.deb': No such file or directory
| WARNING: exit code 1 from a shell command.
| ERROR: Execution of '(省略)/build-openstlinuxweston-stm32mp1-xxx/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/xxx/0.1-r0/temp/run.do_install.2357' failed with exit code 1:
| cp: cannot stat '(省略)/build-openstlinuxweston-stm32mp1-xxx/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/xxx/0.1-r0/autofs_5.1.6-r0.0_armhf.deb': No such file or directory
| WARNING: exit code 1 from a shell command.

apt-native (apt-ftparchive)のイメージへの追加について

現在,apt-ftparchiveをイメージに含めようとしていますが,できておりません。
レシピ内を検索し,apt-ftparchiveはapt-nativeに含まれていることをを確認し,以下三通りを試行しました。

方法1:st-image-xxx.bb(ビルド対象のイメージに関するレシピ)のIMAGE_INSTALL_append にapt-nativeを追加
結果:エラーが表示され,ビルド不可
Task do_populate_sdk in /home/(省略)/layers/meta-xxxx/recipes-st/images/st-image-xxx.bb rdepends upon non-existent task do_package_write_deb in /home/(省略)/layers/openembedded-core/meta/recipes-devtools/apt/apt-native_1.2.31.bb

方法2:(本来はbbappendにて記載すべきですが)apt_package.incに以下を追記しビルド
(もともとaptはイメージに含まれており,apt-package.incはaptのレシピにincludeされています)
FILES_${PN} 内に追加
${bindir}/apt-ftparchive \
do_install()内に追加
install -m 0755 bin/apt-ftparchive ${D}${bindir}/
結果:apt-ftparchiveをイメージ内に含めることに成功
ただしレシピの変更方法としては妥当でない状態

方法3:方法2をbbappendにて実現することを試行
apt_%.bbappendを以下の内容で記載
FILES_${PN} += " ${bindir}/apt-ftparchive "
do_install_append() {
install -m 0755 bin/apt-ftparchive ${D}${bindir}/
}
結果(おそらくはFILES_${PN}の記載が妥当でなく)ビルドは可能だが,apt-ftparchiveはイメージに含まれない

また,FILESEXTRAPATHS_appendはおそらくbbappendのあるパスのファイルしか追加できないと考え,試行していません。

apt-ftparchiveをイメージに含める方法をご教示いただけますでしょうか。

全てのパッケージのリビルド方法

以前別トピックにて,PRServerについてご教授いただき,導入しようとしています。
セットアップはでき,local.confのPRSERVERへの記載によりクライアントからのアクセスもできているのですが,
ワークスペースの再作成などしていないことから,
変化のないパッケージについては,以前のローカルでインクリメントしていたリビジョンが適用されています。
これを全てPRServerのリビジョンに置き換えるには,おそらく全てのパッケージに対する強制リビルドが必要なのではないかと考えるのですが,
強制リビルド方法はございますでしょうか。
あるいはbuild-xxxを削除し最初からビルドし直す方法しかないのでしょうか。

yocto環境で作成したイメージでのdpkg-scanpackagesの使用

ローカルリポジトリ作成のためdpkg-scanpackagesを使用しようとしています。
しかし,実行するとDpkg.pmが存在しない旨のエラーが表示されます。
(ひとまず実行可能なことの確認のため,引数を入れていません。正しく引数を入れたとしても同様です)

root@stm32mp1-xxx:~# dpkg-scanpackages
Can't locate Dpkg.pm in @INC (you may need to install the Dpkg module) (@INC contains: /usr/lib/perl5/site_perl/5.30.1/arm-linux /usr/lib/perl5/site_perl/5.30.1 /usr/li.
BEGIN failed--compilation aborted at /usr/bin/dpkg-scanpackages line 27.

IMAGE_INSTALL_appendにて不足しているものがあるのではないかと考え,IMAGE_INSTALL_appendへ以下追加してある状態となっています。
apt
libmodule-build-perl
dpkg-dev
dpkg-perl
dpkg
しかし追加後も同様の現象が解消されることはありませんでした。
使用しているディストリビューションはopenstlinux-5.4-dunfell-mp1-20-11-12です。

何を追加すれば解消可能か,ご教示いただけますでしょうか。

xerces-cについて

いつもお世話になっております。

xerces-cというパッケージの追加に手間取っております。(Yocto Warrior)
bblayers.confとshow-layersで確認してもレイヤーとして登録されています。
meta-oe poky/meta-openembededd/meta-oe 6(priority)

IMAGE_INSTALL_append += " xerces-c"ではだめなのでしょうか?

ERROR: Nothing RPROVIDES 'xerces-c' (but ****/poky/meta/recipes-core/images/core-image-minimal.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'xerces-c' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['xerces-c']
ERROR: Required build target 'core-image-minimal' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-minimal', 'xerces-c']

商用パッケージについて

いつもお世話になっております。

今回Soxというレシピを使用出来ないか調査していたところ、
because it has a restricted license 'commercial'.という表現を見つけました。
LICENSE_FLAGS_WHITELIST = "commercial"をlocal.confへ追加することで
組み込むことは出来ましたが、このパッケージは商用利用禁止?ということなのでしょうか?
商用ライセンスレシピの使用方法・制限などについて教えていただけないでしょうか?

ページ