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

Andre McCurdy armccurdy at gmail.com
Fri Jul 6 13:52:44 PDT 2018


On Fri, Jul 6, 2018 at 1:28 PM, Giordon Stark <kratsg at gmail.com> wrote:
> Hi,
>
> Been struggling to understand the differences here. This is what the
> directory looks like
>
> kratsg at 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.

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.


More information about the yocto mailing list