[yocto] Understanding "dev package contains non-symlink"

Andre McCurdy armccurdy at gmail.com
Thu Jun 28 17:37:08 PDT 2018


On Thu, Jun 28, 2018 at 3:53 PM, Burton, Ross <ross.burton at intel.com> wrote:
> Hi Giordan,
>
> https://wiki.yoctoproject.org/wiki/TipsAndTricks/Packaging_Prebuilt_Libraries
> might be helpful to you.
>
> One useful thing would be to show us exactly what files are being
> installed (and what files are symlinks).  It sounds like xrootd is
> messing up library installation...

Based on the logs, it looks like xrootd is installing both versioned
shared libraries (e.g. "libXrdXml.so" is presumably a symlink to a
real library named libXrdXml.so.<something> ?) and it's ALSO
installing a set of plug-ins (e.g. "libXrdThrottle-4.so").

If so, then the real problem seems to be that the plug-ins are being
installed in /usr/lib. To avoid tripping up the default packaging
rules and QA tests, plug-ins should ideally be installed somewhere
other than ${base_libdir} or ${libdir}.

If you can fix the build so that the plug-ins (just the plug-ins, not
the versioned shared libraries) get installed to a different directory
then I guess you will be able remove the packaging rules over-rides
and the QA errors will go away.

If you can't fix the build to install the plug-ins in another
directory, then you could keep the packaging rules over-rides that you
have already and just ignore the "dev-so" QA test (unlike the
"dev-elf" QA test, which you should never ignore, the consequences of
ignoring the "dev-so" QA test are fairly benign - you will end up with
.so symlinks in the run-time package, which doesn't do any real harm).

> On 28 June 2018 at 22:19, Giordon Stark <kratsg at gmail.com> wrote:
>> Hi,
>>
>> I've read the emails in this mailing list. I'm mostly struggling to
>> understand the situation for which "-dev package contains non-symlink .so"
>> occurs. I understand that normally, one expects "*.so" files installed as
>> part of the package, with symlinks to these versions in the "-dev" package.
>> What I don't understand is the fix, and why this problem occurs in the first
>> place.
>>
>> The recipe I'm working on in question is here: xrootd_4.8.3.bb (if this link
>> doesn't work in the future, it's probably because I've merged this to
>> master). This recipe is to install this piece of code:
>> https://github.com/xrootd/xrootd.
>>
>> Here's an example of the errors:
>>
>> ERROR: xrootd-4.8.3-r0 do_package_qa: QA Issue: -dev package contains
>> non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdThrottle-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdSecsss-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdSecunix-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdSecpwd-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdN2No2p-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdSec-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdFileCache-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdSsiLog-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdCksCalczcrc32-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdBwm-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdBlacklistDecision-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdClProxyPlugin-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdSecProt-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdOssSIgpfsT-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdSsi-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdPss-4.so'
>> -dev package contains non-symlink .so: xrootd-dev path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd-dev/usr/lib/libXrdXrootd-4.so'
>> [dev-elf]
>> ERROR: xrootd-4.8.3-r0 do_package_qa: QA run found fatal errors. Please
>> consider fixing them.
>> ERROR: xrootd-4.8.3-r0 do_package_qa: Function failed: do_package_qa
>> ERROR: Logfile of failure stored in:
>> /local/d4/gstark/poky/build/tmp/work/aarch64-poky-linux/xrootd/4.8.3-r0/temp/log.do_package_qa.28174
>> ERROR: Task
>> (/local/d4/gstark/meta-l1calo/recipes-core/root/xrootd_4.8.3.bb:do_package_qa)
>> failed with exit code '1'
>>
>> Then, when I add these lines to the recipe:
>>
>>   FILES_SOLIBSDEV = ""
>>   FILES_${PN} += "${libdir}/*.so"
>>
>> I find that nothing is really fixed. It seems to be a similar error, but
>> with different files now:
>>
>> ERROR: xrootd-4.8.3-r0 do_package_qa: QA Issue: non -dev/-dbg/nativesdk-
>> package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdXml.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdSsiLib.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdCryptoLite.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdAppUtils.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdCrypto.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdPosix.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdUtils.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdSsiShMap.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdCl.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdClient.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdServer.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdPosixPreload.so'
>> non -dev/-dbg/nativesdk- package contains symlink .so: xrootd path
>> '/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/libXrdFfs.so'
>> [dev-so]
>> ERROR: xrootd-4.8.3-r0 do_package_qa: QA run found fatal errors. Please
>> consider fixing them.
>> ERROR: xrootd-4.8.3-r0 do_package_qa: Function failed: do_package_qa
>> ERROR: Logfile of failure stored in:
>> /local/d4/gstark/poky/build/tmp/work/aarch64-poky-linux/xrootd/4.8.3-r0/temp/log.do_package_qa.30048
>> ERROR: Task
>> (/local/d4/gstark/meta-l1calo/recipes-core/root/xrootd_4.8.3.bb:do_package_qa)
>> failed with exit code '1'
>>
>> I'm getting a bit confused as these errors didn't show up the first time.
>> And I suppose part of the confusing is about packaging vs installation.
>>
>> Thanks,
>>
>> Giordon
>> --
>> Giordon Stark
>>
>> --
>> _______________________________________________
>> yocto mailing list
>> yocto at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto
>>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto


More information about the yocto mailing list