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

Colin Helliwell colin.helliwell at ln-systems.com
Tue Aug 22 07:43:07 PDT 2017


> 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"
FILES_${PN}-dev += "${libdir}/libaws-cpp-sdk-core.so ${libdir}/libaws-cpp-sdk-s3.so"
FILES_${PN} += "${libdir}/libaws-cpp-sdk-core.so ${libdir}/libaws-cpp-sdk-s3.so"

and now the package_qa succeeds, but when I try to build the full system image I get:

ERROR: core-image-wg2xx-1.0-r0 do_rootfs: Unable to install packages. Command '/home/colin/fsl-community-bsp/build/tmp/sysroots/x86_64-linux/usr/bin/apt-get  install --force-yes --allow-unauthenticated  .....' returned 100:
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 packagegroup-my-apps : Depends: aws-sdk but it is not installable
E: Unable to correct problems, you have held broken packages.

Perhaps the INSANE_SKIP is un-necessary/over-zealous, but I didn't yet manage to get through the package_qa without it. 
(Admittedly, I wasn't *100%* sure of what you were suggesting...)



More information about the yocto mailing list