Discussion:
[yocto] Understanding "dev package contains non-symlink"
Giordon Stark
2018-06-28 21:19:10 UTC
Permalink
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
<https://github.com/kratsg/meta-l1calo/blob/add/xrootd/recipes-core/root/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
Burton, Ross
2018-06-28 22:53:26 UTC
Permalink
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...

Ross
Post by Giordon Stark
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
https://github.com/xrootd/xrootd.
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
/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'
FILES_SOLIBSDEV = ""
FILES_${PN} += "${libdir}/*.so"
I find that nothing is really fixed. It seems to be a similar error, but
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
/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
https://lists.yoctoproject.org/listinfo/yocto
--
Andre McCurdy
2018-06-29 00:37:08 UTC
Permalink
Post by Burton, Ross
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).
Post by Burton, Ross
Post by Giordon Stark
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
https://github.com/xrootd/xrootd.
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
/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'
FILES_SOLIBSDEV = ""
FILES_${PN} += "${libdir}/*.so"
I find that nothing is really fixed. It seems to be a similar error, but
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
/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
https://lists.yoctoproject.org/listinfo/yocto
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
--
Giordon Stark
2018-07-06 20:28:21 UTC
Permalink
Hi,

Been struggling to understand the differences here. This is what the
directory looks like

***@dc:/local/d4/gstark/poky/build$ ls
tmp/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/
total 4.3M
drwxr-xr-x 2 kratsg atlas 4.0K Jun 28 16:13 .
drwxr-xr-x 5 kratsg atlas 4.0K Jun 28 16:13 ..
lrwxrwxrwx 1 kratsg atlas 19 Jun 28 16:13 libXrdAppUtils.so ->
libXrdAppUtils.so.1
lrwxrwxrwx 1 kratsg atlas 23 Jun 28 16:13 libXrdAppUtils.so.1 ->
libXrdAppUtils.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 44K Jun 28 16:13 libXrdAppUtils.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdBlacklistDecision-4.so
-rwxr-xr-x 2 kratsg atlas 59K Jun 28 16:13 libXrdBwm-4.so
-rwxr-xr-x 2 kratsg atlas 11K Jun 28 16:13 libXrdCksCalczcrc32-4.so
lrwxrwxrwx 1 kratsg atlas 13 Jun 28 16:13 libXrdCl.so -> libXrdCl.so.2
-rwxr-xr-x 2 kratsg atlas 27K Jun 28 16:13 libXrdClProxyPlugin-4.so
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdClient.so ->
libXrdClient.so.2
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdClient.so.2 ->
libXrdClient.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 554K Jun 28 16:13 libXrdClient.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdCl.so.2 ->
libXrdCl.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 937K Jun 28 16:13 libXrdCl.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdCrypto.so ->
libXrdCrypto.so.1
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdCryptoLite.so ->
libXrdCryptoLite.so.1
lrwxrwxrwx 1 kratsg atlas 25 Jun 28 16:13 libXrdCryptoLite.so.1 ->
libXrdCryptoLite.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 5.9K Jun 28 16:13 libXrdCryptoLite.so.1.0.0
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdCrypto.so.1 ->
libXrdCrypto.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 95K Jun 28 16:13 libXrdCrypto.so.1.0.0
lrwxrwxrwx 1 kratsg atlas 14 Jun 28 16:13 libXrdFfs.so -> libXrdFfs.so.2
lrwxrwxrwx 1 kratsg atlas 18 Jun 28 16:13 libXrdFfs.so.2 ->
libXrdFfs.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 47K Jun 28 16:13 libXrdFfs.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 156K Jun 28 16:13 libXrdFileCache-4.so
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdN2No2p-4.so
-rwxr-xr-x 2 kratsg atlas 11K Jun 28 16:13 libXrdOssSIgpfsT-4.so
lrwxrwxrwx 1 kratsg atlas 16 Jun 28 16:13 libXrdPosix.so ->
libXrdPosix.so.2
lrwxrwxrwx 1 kratsg atlas 23 Jun 28 16:13 libXrdPosixPreload.so ->
libXrdPosixPreload.so.1
lrwxrwxrwx 1 kratsg atlas 27 Jun 28 16:13 libXrdPosixPreload.so.1 ->
libXrdPosixPreload.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 67K Jun 28 16:13 libXrdPosixPreload.so.1.0.0
lrwxrwxrwx 1 kratsg atlas 20 Jun 28 16:13 libXrdPosix.so.2 ->
libXrdPosix.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 128K Jun 28 16:13 libXrdPosix.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 56K Jun 28 16:13 libXrdPss-4.so
-rwxr-xr-x 2 kratsg atlas 19K Jun 28 16:13 libXrdSecProt-4.so
-rwxr-xr-x 2 kratsg atlas 112K Jun 28 16:13 libXrdSecpwd-4.so
-rwxr-xr-x 2 kratsg atlas 35K Jun 28 16:13 libXrdSecsss-4.so
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdSecunix-4.so
-rwxr-xr-x 2 kratsg atlas 52K Jun 28 16:13 libXrdSec-4.so
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdServer.so ->
libXrdServer.so.2
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdServer.so.2 ->
libXrdServer.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 764K Jun 28 16:13 libXrdServer.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdSsiLib.so ->
libXrdSsiLib.so.1
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdSsiLib.so.1 ->
libXrdSsiLib.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 108K Jun 28 16:13 libXrdSsiLib.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdSsiLog-4.so
lrwxrwxrwx 1 kratsg atlas 19 Jun 28 16:13 libXrdSsiShMap.so ->
libXrdSsiShMap.so.1
lrwxrwxrwx 1 kratsg atlas 23 Jun 28 16:13 libXrdSsiShMap.so.1 ->
libXrdSsiShMap.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 31K Jun 28 16:13 libXrdSsiShMap.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 100K Jun 28 16:13 libXrdSsi-4.so
-rwxr-xr-x 2 kratsg atlas 47K Jun 28 16:13 libXrdThrottle-4.so
lrwxrwxrwx 1 kratsg atlas 16 Jun 28 16:13 libXrdUtils.so ->
libXrdUtils.so.2
lrwxrwxrwx 1 kratsg atlas 20 Jun 28 16:13 libXrdUtils.so.2 ->
libXrdUtils.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 589K Jun 28 16:13 libXrdUtils.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 14 Jun 28 16:13 libXrdXml.so -> libXrdXml.so.2
lrwxrwxrwx 1 kratsg atlas 18 Jun 28 16:13 libXrdXml.so.2 ->
libXrdXml.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 88K Jun 28 16:13 libXrdXml.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 11K Jun 28 16:13 libXrdXrootd-4.so


According to the docs, there is a CMAKE_INSTALL_PREFIX I can configure:

* CMAKE_INSTALL_PREFIX - indicates where the XRootD files should be
installed,
(default: /usr)

and this might let me set the install prefix to something custom, move
those files into the package, and the plug-ins elsewhere.. But I'm not sure
if this is the right way to go... e.g.

EXTRA_OEMAKE = "-DCMAKE_INSTALL_PREFIX=/opt/xrootd" or something.

Giordon
Post by Burton, Ross
Post by Burton, Ross
Hi Giordan,
https://wiki.yoctoproject.org/wiki/TipsAndTricks/Packaging_Prebuilt_Libraries
Post by Burton, Ross
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).
Post by Burton, Ross
Post by Giordon Stark
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"
Post by Burton, Ross
Post by Giordon Stark
occurs. I understand that normally, one expects "*.so" files installed
as
Post by Burton, Ross
Post by Giordon Stark
part of the package, with symlinks to these versions in the "-dev"
package.
Post by Burton, Ross
Post by Giordon Stark
What I don't understand is the fix, and why this problem occurs in the
first
Post by Burton, Ross
Post by Giordon Stark
place.
The recipe I'm working on in question is here: xrootd_4.8.3.bb (if
this link
Post by Burton, Ross
Post by Giordon Stark
doesn't work in the future, it's probably because I've merged this to
https://github.com/xrootd/xrootd.
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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
-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'
Post by Burton, Ross
Post by Giordon Stark
[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
/local/d4/gstark/poky/build/tmp/work/aarch64-poky-linux/xrootd/4.8.3-r0/temp/log.do_package_qa.28174
Post by Burton, Ross
Post by Giordon Stark
ERROR: Task
do_package_qa)
Post by Burton, Ross
Post by Giordon Stark
failed with exit code '1'
FILES_SOLIBSDEV = ""
FILES_${PN} += "${libdir}/*.so"
I find that nothing is really fixed. It seems to be a similar error, but
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
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'
Post by Burton, Ross
Post by Giordon Stark
[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
/local/d4/gstark/poky/build/tmp/work/aarch64-poky-linux/xrootd/4.8.3-r0/temp/log.do_package_qa.30048
Post by Burton, Ross
Post by Giordon Stark
ERROR: Task
do_package_qa)
Post by Burton, Ross
Post by Giordon Stark
failed with exit code '1'
I'm getting a bit confused as these errors didn't show up the first
time.
Post by Burton, Ross
Post by Giordon Stark
And I suppose part of the confusing is about packaging vs installation.
Thanks,
Giordon
--
Giordon Stark
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
--
Giordon Stark
Andre McCurdy
2018-07-06 20:52:44 UTC
Permalink
Post by Giordon Stark
Hi,
Been struggling to understand the differences here. This is what the
directory looks like
tmp/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/
total 4.3M
drwxr-xr-x 2 kratsg atlas 4.0K Jun 28 16:13 .
drwxr-xr-x 5 kratsg atlas 4.0K Jun 28 16:13 ..
lrwxrwxrwx 1 kratsg atlas 19 Jun 28 16:13 libXrdAppUtils.so ->
libXrdAppUtils.so.1
lrwxrwxrwx 1 kratsg atlas 23 Jun 28 16:13 libXrdAppUtils.so.1 ->
libXrdAppUtils.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 44K Jun 28 16:13 libXrdAppUtils.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdBlacklistDecision-4.so
-rwxr-xr-x 2 kratsg atlas 59K Jun 28 16:13 libXrdBwm-4.so
-rwxr-xr-x 2 kratsg atlas 11K Jun 28 16:13 libXrdCksCalczcrc32-4.so
lrwxrwxrwx 1 kratsg atlas 13 Jun 28 16:13 libXrdCl.so -> libXrdCl.so.2
-rwxr-xr-x 2 kratsg atlas 27K Jun 28 16:13 libXrdClProxyPlugin-4.so
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdClient.so ->
libXrdClient.so.2
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdClient.so.2 ->
libXrdClient.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 554K Jun 28 16:13 libXrdClient.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdCl.so.2 ->
libXrdCl.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 937K Jun 28 16:13 libXrdCl.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdCrypto.so ->
libXrdCrypto.so.1
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdCryptoLite.so ->
libXrdCryptoLite.so.1
lrwxrwxrwx 1 kratsg atlas 25 Jun 28 16:13 libXrdCryptoLite.so.1 ->
libXrdCryptoLite.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 5.9K Jun 28 16:13 libXrdCryptoLite.so.1.0.0
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdCrypto.so.1 ->
libXrdCrypto.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 95K Jun 28 16:13 libXrdCrypto.so.1.0.0
lrwxrwxrwx 1 kratsg atlas 14 Jun 28 16:13 libXrdFfs.so -> libXrdFfs.so.2
lrwxrwxrwx 1 kratsg atlas 18 Jun 28 16:13 libXrdFfs.so.2 ->
libXrdFfs.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 47K Jun 28 16:13 libXrdFfs.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 156K Jun 28 16:13 libXrdFileCache-4.so
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdN2No2p-4.so
-rwxr-xr-x 2 kratsg atlas 11K Jun 28 16:13 libXrdOssSIgpfsT-4.so
lrwxrwxrwx 1 kratsg atlas 16 Jun 28 16:13 libXrdPosix.so ->
libXrdPosix.so.2
lrwxrwxrwx 1 kratsg atlas 23 Jun 28 16:13 libXrdPosixPreload.so ->
libXrdPosixPreload.so.1
lrwxrwxrwx 1 kratsg atlas 27 Jun 28 16:13 libXrdPosixPreload.so.1 ->
libXrdPosixPreload.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 67K Jun 28 16:13 libXrdPosixPreload.so.1.0.0
lrwxrwxrwx 1 kratsg atlas 20 Jun 28 16:13 libXrdPosix.so.2 ->
libXrdPosix.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 128K Jun 28 16:13 libXrdPosix.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 56K Jun 28 16:13 libXrdPss-4.so
-rwxr-xr-x 2 kratsg atlas 19K Jun 28 16:13 libXrdSecProt-4.so
-rwxr-xr-x 2 kratsg atlas 112K Jun 28 16:13 libXrdSecpwd-4.so
-rwxr-xr-x 2 kratsg atlas 35K Jun 28 16:13 libXrdSecsss-4.so
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdSecunix-4.so
-rwxr-xr-x 2 kratsg atlas 52K Jun 28 16:13 libXrdSec-4.so
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdServer.so ->
libXrdServer.so.2
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdServer.so.2 ->
libXrdServer.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 764K Jun 28 16:13 libXrdServer.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdSsiLib.so ->
libXrdSsiLib.so.1
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdSsiLib.so.1 ->
libXrdSsiLib.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 108K Jun 28 16:13 libXrdSsiLib.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdSsiLog-4.so
lrwxrwxrwx 1 kratsg atlas 19 Jun 28 16:13 libXrdSsiShMap.so ->
libXrdSsiShMap.so.1
lrwxrwxrwx 1 kratsg atlas 23 Jun 28 16:13 libXrdSsiShMap.so.1 ->
libXrdSsiShMap.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 31K Jun 28 16:13 libXrdSsiShMap.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 100K Jun 28 16:13 libXrdSsi-4.so
-rwxr-xr-x 2 kratsg atlas 47K Jun 28 16:13 libXrdThrottle-4.so
lrwxrwxrwx 1 kratsg atlas 16 Jun 28 16:13 libXrdUtils.so ->
libXrdUtils.so.2
lrwxrwxrwx 1 kratsg atlas 20 Jun 28 16:13 libXrdUtils.so.2 ->
libXrdUtils.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 589K Jun 28 16:13 libXrdUtils.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 14 Jun 28 16:13 libXrdXml.so -> libXrdXml.so.2
lrwxrwxrwx 1 kratsg atlas 18 Jun 28 16:13 libXrdXml.so.2 ->
libXrdXml.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 88K Jun 28 16:13 libXrdXml.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 11K Jun 28 16:13 libXrdXrootd-4.so
* CMAKE_INSTALL_PREFIX - indicates where the XRootD files should be
installed,
(default: /usr)
and this might let me set the install prefix to something custom, move those
files into the package, and the plug-ins elsewhere.. But I'm not sure if
this is the right way to go... e.g.
EXTRA_OEMAKE = "-DCMAKE_INSTALL_PREFIX=/opt/xrootd" or something.
That's probably just going to install everything in a different
location. What you ideally want is to install the shared libraries
(e.g. libXrdAppUtils.so*, etc) where they are now in /usr/lib and the
plug-ins (e.g. lib*-4.so) somewhere else. That will potentially
require patching the cmake files etc and probably the sources as well
(to change the directory from which plug-ins are loaded).

You could perhaps get away with moving the plug-ins from a
do_install_append() (ie let cmake install proceed as it does now and
then move them afterwards) but then you'd still need to potentially
patch the sources so that the plug-ins are found in their new
location.

If you're not interested in that amount of work (and submitting the
fixes upstream, etc) then, as already suggested, you can alternatively
just force all .so files into the main run-time package and ignore the
"dev-so" QA test. That would be an acceptable workaround.
--
Giordon Stark
2018-07-06 21:10:03 UTC
Permalink
Hi,

So the good news is that this is at least the source code itself appears to
be written in a packaged-up-manner which makes some things easier to deal
with. It seems that all of the plugins are here:
https://github.com/xrootd/xrootd/blob/dad82068ae99859ebf40f65d95fe7c44f7db057e/src/XrdPlugins.cmake


where it seems to install to

install(
TARGETS ${LIB_XRD_PSS} ${LIB_XRD_BWM} ${LIB_XRD_GPFS} ${LIB_XRD_ZCRC32}
${LIB_XRD_THROTTLE} ${LIB_XRD_N2NO2P}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )

While all other "non-plugins" also install to the same
"CMAKE_INSTALL_LIBDIR". I suppose it might be possible to patch this one
particular file to get the installs in a separate location? This seems like
potentially a short patch given that all plug-ins, from a cursory glance,
are installed with the same CMake instruction...

If not, I would be ok with adding

INSANE_SKIP_${PN} += "dev-so"

to my recipe along with the other two lines I've added (one to erase the
so-libs pattern for ${PN}-dev, and one to force all the *.so libs into
${PN}).

Would a third option be to just manually write out my ${PN} and ${PN}-dev
files to split up which are symlinks and which are not -- given that I'm
writing this recipe for a given version/configuration?

Giordon
Post by Giordon Stark
Post by Giordon Stark
Hi,
Been struggling to understand the differences here. This is what the
directory looks like
tmp/work/aarch64-poky-linux/xrootd/4.8.3-r0/packages-split/xrootd/usr/lib/
Post by Giordon Stark
total 4.3M
drwxr-xr-x 2 kratsg atlas 4.0K Jun 28 16:13 .
drwxr-xr-x 5 kratsg atlas 4.0K Jun 28 16:13 ..
lrwxrwxrwx 1 kratsg atlas 19 Jun 28 16:13 libXrdAppUtils.so ->
libXrdAppUtils.so.1
lrwxrwxrwx 1 kratsg atlas 23 Jun 28 16:13 libXrdAppUtils.so.1 ->
libXrdAppUtils.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 44K Jun 28 16:13 libXrdAppUtils.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdBlacklistDecision-4.so
-rwxr-xr-x 2 kratsg atlas 59K Jun 28 16:13 libXrdBwm-4.so
-rwxr-xr-x 2 kratsg atlas 11K Jun 28 16:13 libXrdCksCalczcrc32-4.so
lrwxrwxrwx 1 kratsg atlas 13 Jun 28 16:13 libXrdCl.so -> libXrdCl.so.2
-rwxr-xr-x 2 kratsg atlas 27K Jun 28 16:13 libXrdClProxyPlugin-4.so
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdClient.so ->
libXrdClient.so.2
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdClient.so.2 ->
libXrdClient.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 554K Jun 28 16:13 libXrdClient.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdCl.so.2 ->
libXrdCl.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 937K Jun 28 16:13 libXrdCl.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdCrypto.so ->
libXrdCrypto.so.1
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdCryptoLite.so ->
libXrdCryptoLite.so.1
lrwxrwxrwx 1 kratsg atlas 25 Jun 28 16:13 libXrdCryptoLite.so.1 ->
libXrdCryptoLite.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 5.9K Jun 28 16:13 libXrdCryptoLite.so.1.0.0
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdCrypto.so.1 ->
libXrdCrypto.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 95K Jun 28 16:13 libXrdCrypto.so.1.0.0
lrwxrwxrwx 1 kratsg atlas 14 Jun 28 16:13 libXrdFfs.so ->
libXrdFfs.so.2
Post by Giordon Stark
lrwxrwxrwx 1 kratsg atlas 18 Jun 28 16:13 libXrdFfs.so.2 ->
libXrdFfs.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 47K Jun 28 16:13 libXrdFfs.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 156K Jun 28 16:13 libXrdFileCache-4.so
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdN2No2p-4.so
-rwxr-xr-x 2 kratsg atlas 11K Jun 28 16:13 libXrdOssSIgpfsT-4.so
lrwxrwxrwx 1 kratsg atlas 16 Jun 28 16:13 libXrdPosix.so ->
libXrdPosix.so.2
lrwxrwxrwx 1 kratsg atlas 23 Jun 28 16:13 libXrdPosixPreload.so ->
libXrdPosixPreload.so.1
lrwxrwxrwx 1 kratsg atlas 27 Jun 28 16:13 libXrdPosixPreload.so.1 ->
libXrdPosixPreload.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 67K Jun 28 16:13 libXrdPosixPreload.so.1.0.0
lrwxrwxrwx 1 kratsg atlas 20 Jun 28 16:13 libXrdPosix.so.2 ->
libXrdPosix.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 128K Jun 28 16:13 libXrdPosix.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 56K Jun 28 16:13 libXrdPss-4.so
-rwxr-xr-x 2 kratsg atlas 19K Jun 28 16:13 libXrdSecProt-4.so
-rwxr-xr-x 2 kratsg atlas 112K Jun 28 16:13 libXrdSecpwd-4.so
-rwxr-xr-x 2 kratsg atlas 35K Jun 28 16:13 libXrdSecsss-4.so
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdSecunix-4.so
-rwxr-xr-x 2 kratsg atlas 52K Jun 28 16:13 libXrdSec-4.so
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdServer.so ->
libXrdServer.so.2
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdServer.so.2 ->
libXrdServer.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 764K Jun 28 16:13 libXrdServer.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 17 Jun 28 16:13 libXrdSsiLib.so ->
libXrdSsiLib.so.1
lrwxrwxrwx 1 kratsg atlas 21 Jun 28 16:13 libXrdSsiLib.so.1 ->
libXrdSsiLib.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 108K Jun 28 16:13 libXrdSsiLib.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 15K Jun 28 16:13 libXrdSsiLog-4.so
lrwxrwxrwx 1 kratsg atlas 19 Jun 28 16:13 libXrdSsiShMap.so ->
libXrdSsiShMap.so.1
lrwxrwxrwx 1 kratsg atlas 23 Jun 28 16:13 libXrdSsiShMap.so.1 ->
libXrdSsiShMap.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 31K Jun 28 16:13 libXrdSsiShMap.so.1.0.0
-rwxr-xr-x 2 kratsg atlas 100K Jun 28 16:13 libXrdSsi-4.so
-rwxr-xr-x 2 kratsg atlas 47K Jun 28 16:13 libXrdThrottle-4.so
lrwxrwxrwx 1 kratsg atlas 16 Jun 28 16:13 libXrdUtils.so ->
libXrdUtils.so.2
lrwxrwxrwx 1 kratsg atlas 20 Jun 28 16:13 libXrdUtils.so.2 ->
libXrdUtils.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 589K Jun 28 16:13 libXrdUtils.so.2.0.0
lrwxrwxrwx 1 kratsg atlas 14 Jun 28 16:13 libXrdXml.so ->
libXrdXml.so.2
Post by Giordon Stark
lrwxrwxrwx 1 kratsg atlas 18 Jun 28 16:13 libXrdXml.so.2 ->
libXrdXml.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 88K Jun 28 16:13 libXrdXml.so.2.0.0
-rwxr-xr-x 2 kratsg atlas 11K Jun 28 16:13 libXrdXrootd-4.so
* CMAKE_INSTALL_PREFIX - indicates where the XRootD files should be
installed,
(default: /usr)
and this might let me set the install prefix to something custom, move
those
Post by Giordon Stark
files into the package, and the plug-ins elsewhere.. But I'm not sure if
this is the right way to go... e.g.
EXTRA_OEMAKE = "-DCMAKE_INSTALL_PREFIX=/opt/xrootd" or something.
That's probably just going to install everything in a different
location. What you ideally want is to install the shared libraries
(e.g. libXrdAppUtils.so*, etc) where they are now in /usr/lib and the
plug-ins (e.g. lib*-4.so) somewhere else. That will potentially
require patching the cmake files etc and probably the sources as well
(to change the directory from which plug-ins are loaded).
You could perhaps get away with moving the plug-ins from a
do_install_append() (ie let cmake install proceed as it does now and
then move them afterwards) but then you'd still need to potentially
patch the sources so that the plug-ins are found in their new
location.
If you're not interested in that amount of work (and submitting the
fixes upstream, etc) then, as already suggested, you can alternatively
just force all .so files into the main run-time package and ignore the
"dev-so" QA test. That would be an acceptable workaround.
--
Giordon Stark
Andre McCurdy
2018-07-06 22:08:35 UTC
Permalink
Post by Giordon Stark
Hi,
So the good news is that this is at least the source code itself appears to
be written in a packaged-up-manner which makes some things easier to deal
https://github.com/xrootd/xrootd/blob/dad82068ae99859ebf40f65d95fe7c44f7db057e/src/XrdPlugins.cmake
where it seems to install to
install(
TARGETS ${LIB_XRD_PSS} ${LIB_XRD_BWM} ${LIB_XRD_GPFS} ${LIB_XRD_ZCRC32}
${LIB_XRD_THROTTLE} ${LIB_XRD_N2NO2P}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
While all other "non-plugins" also install to the same
"CMAKE_INSTALL_LIBDIR". I suppose it might be possible to patch this one
particular file to get the installs in a separate location? This seems like
potentially a short patch given that all plug-ins, from a cursory glance,
are installed with the same CMake instruction...
If not, I would be ok with adding
INSANE_SKIP_${PN} += "dev-so"
to my recipe along with the other two lines I've added (one to erase the
so-libs pattern for ${PN}-dev, and one to force all the *.so libs into
${PN}).
Would a third option be to just manually write out my ${PN} and ${PN}-dev
files to split up which are symlinks and which are not -- given that I'm
writing this recipe for a given version/configuration?
Yes, that should be OK.
--

Loading...