[yocto] build ntp with openssl support

Oliver Graute oliver.graute at gmail.com
Mon Sep 26 00:14:56 PDT 2016


On 23/09/16, Lennart Sorensen wrote:
> On Fri, Sep 23, 2016 at 02:19:20PM +0200, Oliver Graute wrote:
> > On 22/09/16, Khem Raj wrote:
> > > On Thu, Sep 22, 2016 at 12:16 AM, Oliver Graute <oliver.graute at gmail.com> wrote:
> > > > On 19/09/16, Oliver Graute wrote:
> > > >> On 16/09/16, Andre McCurdy wrote:
> > > >> > On Fri, Sep 16, 2016 at 1:24 AM, Oliver Graute <oliver.graute at gmail.com> wrote:
> > > >> > > Hello,
> > > >> > >
> > > >> > > how can I build ntp with openssl support?
> > > >> > >
> > > >> > > I already created a ntp_%.bbappend file to extend the recipe ntp_4.2.8p4.bb.
> > > >> > >
> > > >> > > FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
> > > >> >
> > > >> > You don't really need this line unless you are adding a file to
> > > >> > SRC_URI or replacing a file already in SRC_URI with your own version.
> > > >> >
> > > >> > > PACKAGECONFIG += "openssl"
> > > >> >
> > > >> > This will enable openssl, but it will also disable all the default
> > > >> > PACKAGECONFIG options (cap, debug and refclocks) which is probably not
> > > >> > what you want. Try this instead:
> > > >> >
> > > >> >   PACKAGECONFIG_append = " openssl"
> > > >> >
> > > >> > Note the space between " and openssl. It's required.
> > > >>
> > > >> ok now I see the right configure script options during the configuration
> > > >> of the ntp build.
> > > >>
> > > >> --with-openssl-libdir=/home/graute/5411_IBIS/yocto/build-imx6ulevk-nand/tmp/sysroots/imx6ulevk/usr/lib
> > > >> --with-openssl-incdir=/home/graute/5411_IBIS/yocto/build-imx6ulevk-nand/tmp/sysroots/imx6ulevk/usr/include
> > > >> --with-crypto
> > > >>
> > > >> But ntp is still build without openssl support. The configure scripts
> > > >> can't find the relevant openssl stuff.
> > > >>
> > > >> configure:34762: checking for openssl library directory
> > > >> configure:34802: result: no
> > > >> configure:34807: WARNING: libcrypto and libssl not found in any of /home/graute/5411_IBIS/yocto/build-imx6ulevk-nand/tmp/sysroots/imx6ulevk/usr/lib
> > > >> configure:34811: checking for openssl include directory
> > > >> configure:34833: result: /home/graute/5411_IBIS/yocto/build-imx6ulevk-nand/tmp/sysroots/imx6ulevk/usr/include
> > > >> configure:34877: checking if we will use crypto
> > > >> configure:34879: result: no
> > > >> configure:35109: checking if we want to use OpenSSL's crypto random (if available)
> > > >> configure:35119: result: yes
> > > >>
> > > >> some clue whats wrong here?
> > > >
> > > > in my sysroots/imx6ulevk/usr/lib I have
> > > >
> > > > ls -la libssl*
> > > >
> > > > libssl3.so
> > > > libssl.a
> > > > libssl.so -> libssl.so.1.0.0
> > > > libssl.so.1.0.0
> > > >
> > > > ls -la libcrypt*
> > > >
> > > > libcrypt.a
> > > > libcrypt_pic.a
> > > > libcrypt_pic.map
> > > > libcrypt.so -> ../../lib/libcrypt.so.1
> > > >
> > > >
> > > > but no libcrypto.so. I guess thats the reason why my ntp configure
> > > > script is complaining.
> > > >
> > > > Some ideas how to get libcrypto.so in my /usr/lib folder in the yocto
> > > > sysroot?
> > > >
> > > 
> > > It seems your openssl is not being compiled correctly. Can you go into
> > > builddir or openssl
> > > and see if libcrypto.so.1.0.0 is built ? if not then you have to do
> > > some digging why its not
> > > configuring to build libcrypto
> > 
> > libcrypto is build by openssl
> > 
> > openssl/1.0.2d-r0/openssl-1.0.2d$ ls -la  libcrypt*
> > libcrypto.a
> > libcrypto.pc
> > libcrypto.so -> libcrypto.so.1.0.0
> > libcrypto.so.1.0.0
> > 
> > but in my sysroot libcrypto is located in lib NOT in usr/lib
> > 
> > the ntp recipe in meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p4.bb
> > defines:
> > 
> >  --with-openssl-libdir=${STAGING_LIBDIR}
> > 
> > I assume I need ${STAGING_BASELIBDIR} here instead. But currently I fail
> > with overwriting this in my bbappend file.
> > 
> > If I use EXTRA_OECONF to overwrite it in my bbappend I see two --with-openssl-libdir
> > statements while configuring. The first with /lib the second one with /usr/lib. 
> > 
> > EXTRA_OECONF  += "\
> > 		--with-openssl \
> > 		--with-openssl-libdir=${STAGING_BASELIBDIR} \
> > 		--with-openssl-incdir=${STAGING_INCDIR} \
> > 		--with-crypto \
> > "
> 
> I have a .bbappend file containing:
> 
> # This is wrong in the upstream .bb file and doesn't work so override it
> PACKAGECONFIG[openssl] = "--with-crypto, \
>                           --without-crypto, \
>                           openssl"
> PACKAGECONFIG_append = " openssl"
> 
> By NOT specifying the directories, it uses pkg-config, which of course
> returns both directories correctly.  The ntp configure script can't
> imagine that the openssl libraries are in two different directories at
> the same time and hence fails to find them even though it searches both
> of them, but only trying one at a time.

Thank you this is working for me.

Best Regards,

Oliver



More information about the yocto mailing list