All of lore.kernel.org
 help / color / mirror / Atom feed
* Custom recipe - resolving "do_package_qa: QA Issue: -dev package contains non-symlink .so"
@ 2017-08-22 13:43 colin.helliwell
  2017-08-22 14:13 ` Jussi Kukkonen
  0 siblings, 1 reply; 6+ messages in thread
From: colin.helliwell @ 2017-08-22 13:43 UTC (permalink / raw)
  To: yocto

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.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Custom recipe - resolving "do_package_qa: QA Issue: -dev package contains non-symlink .so"
  2017-08-22 13:43 Custom recipe - resolving "do_package_qa: QA Issue: -dev package contains non-symlink .so" colin.helliwell
@ 2017-08-22 14:13 ` Jussi Kukkonen
  2017-08-22 14:43   ` Colin Helliwell
  0 siblings, 1 reply; 6+ messages in thread
From: Jussi Kukkonen @ 2017-08-22 14:13 UTC (permalink / raw)
  To: colin.helliwell; +Cc: Yocto Project

[-- Attachment #1: Type: text/plain, Size: 1428 bytes --]

On 22 August 2017 at 16:43, <colin.helliwell@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

[-- Attachment #2: Type: text/html, Size: 1657 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Custom recipe - resolving "do_package_qa: QA Issue: -dev package contains non-symlink .so"
  2017-08-22 14:13 ` Jussi Kukkonen
@ 2017-08-22 14:43   ` Colin Helliwell
  2017-08-22 19:18     ` Jussi Kukkonen
  0 siblings, 1 reply; 6+ messages in thread
From: Colin Helliwell @ 2017-08-22 14:43 UTC (permalink / raw)
  To: Jussi Kukkonen; +Cc: Yocto Project


> On 22 August 2017 at 15:13 Jussi Kukkonen <jussi.kukkonen@intel.com> wrote:
> 
> On 22 August 2017 at 16:43, <colin.helliwell@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...)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Custom recipe - resolving "do_package_qa: QA Issue: -dev package contains non-symlink .so"
  2017-08-22 14:43   ` Colin Helliwell
@ 2017-08-22 19:18     ` Jussi Kukkonen
  2017-08-22 23:45       ` Andre McCurdy
  0 siblings, 1 reply; 6+ messages in thread
From: Jussi Kukkonen @ 2017-08-22 19:18 UTC (permalink / raw)
  To: Colin Helliwell; +Cc: Yocto Project

[-- Attachment #1: Type: text/plain, Size: 2521 bytes --]

On 22 August 2017 at 17:43, Colin Helliwell <colin.helliwell@ln-systems.com>
wrote:

>
> > On 22 August 2017 at 15:13 Jussi Kukkonen <jussi.kukkonen@intel.com>
> wrote:
> >
> > On 22 August 2017 at 16:43, <colin.helliwell@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.

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}"


> FILES_${PN} += "${libdir}/libaws-cpp-sdk-core.so
> ${libdir}/libaws-cpp-sdk-s3.so"
>

This looks correct to me.

Jussi

[-- Attachment #2: Type: text/html, Size: 3721 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Custom recipe - resolving "do_package_qa: QA Issue: -dev package contains non-symlink .so"
  2017-08-22 19:18     ` Jussi Kukkonen
@ 2017-08-22 23:45       ` Andre McCurdy
  2017-08-23 17:17         ` Colin Helliwell
  0 siblings, 1 reply; 6+ messages in thread
From: Andre McCurdy @ 2017-08-22 23:45 UTC (permalink / raw)
  To: Jussi Kukkonen; +Cc: Yocto Project

On Tue, Aug 22, 2017 at 12:18 PM, Jussi Kukkonen
<jussi.kukkonen@intel.com> wrote:
> On 22 August 2017 at 17:43, Colin Helliwell <colin.helliwell@ln-systems.com>
> wrote:
>> > On 22 August 2017 at 15:13 Jussi Kukkonen <jussi.kukkonen@intel.com>
>> > wrote:
>> > On 22 August 2017 at 16:43, <colin.helliwell@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@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Custom recipe - resolving "do_package_qa: QA Issue: -dev package contains non-symlink .so"
  2017-08-22 23:45       ` Andre McCurdy
@ 2017-08-23 17:17         ` Colin Helliwell
  0 siblings, 0 replies; 6+ messages in thread
From: Colin Helliwell @ 2017-08-23 17:17 UTC (permalink / raw)
  To: Jussi Kukkonen, Andre McCurdy; +Cc: Yocto Project

Resolved now - thanks for the assistance.

> On 23 August 2017 at 00:45 Andre McCurdy <armccurdy@gmail.com> wrote:
> 
> On Tue, Aug 22, 2017 at 12:18 PM, Jussi Kukkonen
> 
> <jussi.kukkonen@intel.com> wrote:
> 
> > On 22 August 2017 at 17:43, Colin Helliwell <colin.helliwell@ln-systems.com>
> > wrote:
> > 
> > > > On 22 August 2017 at 15:13 Jussi Kukkonen <jussi.kukkonen@intel.com>
> > > > wrote:
> > > > On 22 August 2017 at 16:43, <colin.helliwell@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@yoctoproject.org
> > https://lists.yoctoproject.org/listinfo/yocto


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-08-23 17:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-22 13:43 Custom recipe - resolving "do_package_qa: QA Issue: -dev package contains non-symlink .so" colin.helliwell
2017-08-22 14:13 ` Jussi Kukkonen
2017-08-22 14:43   ` Colin Helliwell
2017-08-22 19:18     ` Jussi Kukkonen
2017-08-22 23:45       ` Andre McCurdy
2017-08-23 17:17         ` Colin Helliwell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.