yocto QA Issueのあれこれ

パッケージのbbやbbappendを書いている時にQA Issueでエラーになることがある。 とりあえず解消出来たようなので、今回遭遇したエラーと対処をメモ。

QA Issue: userland rdepends on [package]

WARNING: QA Issue: userland rdepends on wayland, but it isn't a build dependency? [build-deps]

この例ではwaylandにビルド依存関係があるのでは?という警告。 waylandは今回引っかかったパッケージ。

回避策

bb/bbappendに以下を記述

PACKAGECONFIG += " wayland"

指摘されたパッケージをPACKAGECONFIGに追加してやる。

QA Issue: non -dev/-dbg/-nativesdk package contains symlink .so:

ERROR: QA Issue: non -dev/-dbg/-nativesdk package contains symlink .so: userland path '/work/raspberrypi2-poky-linux-gnueabi/userland/git-r4/packages-split/userland/usr/lib/libGLESv2.so' [dev-so]

開発用とかデバッグ用パッケージに必要な設定が足りないということらしい。

回避策

bb/bbappendに以下を記述

FILES_${PN}-dev += "${libdir}/libGLESv2.so \
                    ${libdir}/libEGL.so \
                    "
FILES_${PN}-dbg += "${libdir}/.debug"

なので、必要なものを追加してみる。

installed-vs-shipped

ERROR: QA Issue: userland: Files/directories were installed but not shipped
  /usr/lib/libGLESv2.so.2.0.0
  /usr/lib/libEGL.so.1.0.0
  /usr/lib/libGLESv2.so.2
  /usr/lib/libEGL.so.1
  /usr/lib/pkgconfig
  /usr/lib/pkgconfig/glesv2.pc
  /usr/lib/pkgconfig/wayland-egl.pc
  /usr/lib/pkgconfig/egl.pc [installed-vs-shipped]

これはイメージとしてイントールされるけど、 sysrootへ反映されないというエラーになるだろうか。

回避策

bb/bbappendに以下を記述

FILES_${PN} += "${libdir}/pkgconfig \
                ${libdir}/pkgconfig/glesv2.pc \
                ${libdir}/pkgconfig/egl.pc \
                ${libdir}/libGLESv2.so.2.0.0 \
                ${libdir}/libEGL.so.1.0.0 \
                ${libdir}/libGLESv2.so.2 \
                ${libdir}/libEGL.so.1 \

提供ファイルにの一覧に追加してみる。