[yocto] build ntp with openssl support

Oliver Graute oliver.graute at gmail.com
Fri Sep 23 05:19:20 PDT 2016


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 \
"

Best Regards,

Oliver



More information about the yocto mailing list