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

Giordon Stark kratsg at gmail.com
Fri Jul 6 14:10:03 PDT 2018


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


On Fri, Jul 6, 2018 at 3:52 PM Andre McCurdy <armccurdy at gmail.com> wrote:

> 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.
>
-- 
Giordon Stark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20180706/2fc73d9e/attachment-0001.html>


More information about the yocto mailing list