[yocto] Custom recipe - resolving "do_package_qa: QA Issue: -dev package contains non-symlink .so"

Colin Helliwell colin.helliwell at ln-systems.com
Wed Aug 23 10:17:32 PDT 2017


Resolved now - thanks for the assistance.

> On 23 August 2017 at 00:45 Andre McCurdy <armccurdy at gmail.com> wrote:
> 
> On Tue, Aug 22, 2017 at 12:18 PM, Jussi Kukkonen
> 
> <jussi.kukkonen at intel.com> wrote:
> 
> > On 22 August 2017 at 17:43, Colin Helliwell <colin.helliwell at ln-systems.com>
> > wrote:
> > 
> > > > On 22 August 2017 at 15:13 Jussi Kukkonen <jussi.kukkonen at intel.com>
> > > > wrote:
> > > > On 22 August 2017 at 16:43, <colin.helliwell at ln-systems.com> wrote:
> > > > 
> > > > > I have a custom recipe (for the AWS SDK), which is failing at the
> > > > > package_qa
> > > > > stage.
> > > > > The recipe is a very basic cmake styley, and on its own seems to begin
> > > > > with:
> > > > > 'bitbake -f -c package aws-sdk' completes without errors.
> > > > > 
> > > > > But for 'bitbake -c package_qa aws-sdk) I get:
> > > > > 
> > > > > ERROR: aws-sdk-1.1.31-r0 do_package_qa: QA Issue: -dev package
> > > > > contains
> > > > > non-symlink .so: aws-sdk-dev path
> > > > > 
> > > > > '/work/armv7a-neon-poky-linux-gnueabi/aws-sdk/1.1.31-r0/packages-split/aws-s
> > > > > dk-dev/usr/lib/libaws-cpp-sdk-core.so'
> > > > > -dev package contains non-symlink .so: aws-sdk-dev path
> > > > > 
> > > > > '/work/armv7a-neon-poky-linux-gnueabi/aws-sdk/1.1.31-r0/packages-split/aws-s
> > > > > dk-dev/usr/lib/libaws-cpp-sdk-s3.so' [dev-elf]
> > > > > 
> > > > > I'd appreciate help with resolving this. Thanks.>
> > > > 
> > > > It looks like aws-sdk installs .so files that are actual libraries (and
> > > > not symlinks to the versioned libraries as would be the usual case). The
> > > > best solution would be to get aws to install versioned libraries but if
> > > > that's not an option, you probably want to package the .so files in the
> > > > actual library package, not the -dev package (which is the default since
> > > > usually .so are symlinks for development and the actually versioned ).
> > > > 
> > > > You may have to set both FILES_${PN}-dev and FILES_${PN} (so the former
> > > > doesn't grab the so files, and the latter does)
> > > > 
> > > > HTH,
> > > >  Jussi
> > > 
> > > Thanks for the tips, Jussi.
> > > I'm managing to get a little further, added
> > > INSANE_SKIP_${PN}-dev += "dev-elf"
> > 
> > I suggest not doing this. It seems the warning is valid so you should fix
> > the issue, not silence the warning.
> 
> Right, and especially true for the dev-elf QA check. Putting an actual
> elf .so file in a -dev package introduces a run-time dependency on the
> -dev package, which causes header files etc to be pulled into the
> final image. Trying to disable the "dev-elf" QA test should be QA test
> failure in itself... :-)
> 
> > > FILES_${PN}-dev += "${libdir}/libaws-cpp-sdk-core.so
> > > ${libdir}/libaws-cpp-sdk-s3.so"
> > 
> > ${PN}-dev should _not_ contain so files (in your special case). The issue is
> > that the default value contains "${libdir}/lib*.so" already (it's not quite
> > so simple but see meta/conf/bitbake.conf for details if interested). You
> > should be able to just redefine the variable completely:
> > 
> > FILES_${PN}-dev = "${includedir}"
> 
> Completely over-riding any of the default packaging rules isn't ideal.
> To force .so files into main package the following is a little
> cleaner:
> 
> FILES_SOLIBSDEV = ""
>  FILES_${PN} += "${libdir}/*.so"
> 
> > > FILES_${PN} += "${libdir}/libaws-cpp-sdk-core.so
> > > ${libdir}/libaws-cpp-sdk-s3.so"
> > 
> > This looks correct to me.
> > 
> > Jussi
> > 
> > --
> > 
> > _______________________________________________
> > yocto mailing list
> > yocto at yoctoproject.org
> > https://lists.yoctoproject.org/listinfo/yocto



More information about the yocto mailing list