Re: [OE-core] Why does Openssl 1.0.2n use libcrypto.so.1.0.2 and not libcrypto.so.1.0.0?

2018-08-01 Thread Andre McCurdy
On Wed, Aug 1, 2018 at 1:35 PM, Ryan Pabis (pabisr) via
Openembedded-core  wrote:
> Alex,
>
> The library was precompiled by tail-f but I've also recompiled on Ubuntu 
> 16.04 with openssl 1.0.2n.  In both cases the library crypto.so and 
> libconfd.so refer to libcrypto.so.1.0.0.
>
> Having a pre-compiled library worked on krogoth and morty, but does not seem 
> to work on rocko.

You can often find the answer to questions like this by looking at the
git history and reading the comments from the commit which made a
particular change. In this case see:

  
http://git.openembedded.org/openembedded-core/commit/?id=1b430eef7131876bc735c22d66358379b0516821

ie the explanation given was that other distros are not consistent in
the soname they use and oe-core has chosen to follow Debian - which
apparently uses 1.0.2.

If you have a library which needs 1.0.0 then you can try to hack
around the mismatch by adding symlinks from libXXX.so.1.0.0 ->
libXXX.so.1.0.2 in the rootfs (and ignoring the file-rdeps QA test).

But as Alex mentions, be very careful about just copying binaries
created outside OE into an OE rootfs. By over-riding the soname you
are basically disabling sanity checks that prevent mismatches in
library APIs, so you could see crashes etc at runtime. The fact that
your preompiled library worked on krogoth and morty may just have been
luck.

If you have the source to (re)build under Ubuntu then why can't you
also build from an OE recipe? That would be the real solution.


> On 8/1/18, 3:47 PM, "Alexander Kanavin"  wrote:
>
> 2018-08-01 20:20 GMT+02:00 Ryan Pabis (pabisr) via Openembedded-core
> :
> > I have a library that uses libcrypto.so.1.0.0 from openssl 1.0.2n, 
> which is
> > the libcrypto.so version if you download the source code to ubuntu 16.04
> > from openssl and compile.  However, Yocto Rocko uses the same openssl 
> 1.0.2n
> > version but it uses libcrypto.so.1.0.2 and sets the FILERDEPENDS_ to the
> > same.  This causes a file_rdeps issue for me because it says
> > libcrypto.so.1.0.0()(64bit) is not provided.
> >
> >
> >
> > I’ve tried adding, DEPENDS += “openssl” and RPDEPENDS_confd += 
> “openssl”,
> > with no luck.  The only way I can get it to compile is if I manually 
> hack my
> > library and change from libcrypto.so.1.0.0 to libcrypto.so.1.0.2 (even
> > though it was really compiled with libcrypto.so.1.0.0 and that’s the
> > libcrypto version of openssl 1.0.2n).
> >
> >
> >
> > Can someone please advise?
>
> In which environment was the library built? You generally cannot take
> something that was compiled outside of Yocto. Write a recipe that
> builds the library from source code, or ask the provider of that
> library to do that.
>
> Alex
>
>
> --
> ___
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] Why does Openssl 1.0.2n use libcrypto.so.1.0.2 and not libcrypto.so.1.0.0?

2018-08-01 Thread Ryan Pabis (pabisr) via Openembedded-core
Alex,

The library was precompiled by tail-f but I've also recompiled on Ubuntu 16.04 
with openssl 1.0.2n.  In both cases the library crypto.so and libconfd.so refer 
to libcrypto.so.1.0.0.

Having a pre-compiled library worked on krogoth and morty, but does not seem to 
work on rocko.

Ryan

On 8/1/18, 3:47 PM, "Alexander Kanavin"  wrote:

2018-08-01 20:20 GMT+02:00 Ryan Pabis (pabisr) via Openembedded-core
:
> I have a library that uses libcrypto.so.1.0.0 from openssl 1.0.2n, which 
is
> the libcrypto.so version if you download the source code to ubuntu 16.04
> from openssl and compile.  However, Yocto Rocko uses the same openssl 
1.0.2n
> version but it uses libcrypto.so.1.0.2 and sets the FILERDEPENDS_ to the
> same.  This causes a file_rdeps issue for me because it says
> libcrypto.so.1.0.0()(64bit) is not provided.
>
>
>
> I’ve tried adding, DEPENDS += “openssl” and RPDEPENDS_confd += “openssl”,
> with no luck.  The only way I can get it to compile is if I manually hack 
my
> library and change from libcrypto.so.1.0.0 to libcrypto.so.1.0.2 (even
> though it was really compiled with libcrypto.so.1.0.0 and that’s the
> libcrypto version of openssl 1.0.2n).
>
>
>
> Can someone please advise?

In which environment was the library built? You generally cannot take
something that was compiled outside of Yocto. Write a recipe that
builds the library from source code, or ask the provider of that
library to do that.

Alex


-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] Why does Openssl 1.0.2n use libcrypto.so.1.0.2 and not libcrypto.so.1.0.0?

2018-08-01 Thread Alexander Kanavin
2018-08-01 20:20 GMT+02:00 Ryan Pabis (pabisr) via Openembedded-core
:
> I have a library that uses libcrypto.so.1.0.0 from openssl 1.0.2n, which is
> the libcrypto.so version if you download the source code to ubuntu 16.04
> from openssl and compile.  However, Yocto Rocko uses the same openssl 1.0.2n
> version but it uses libcrypto.so.1.0.2 and sets the FILERDEPENDS_ to the
> same.  This causes a file_rdeps issue for me because it says
> libcrypto.so.1.0.0()(64bit) is not provided.
>
>
>
> I’ve tried adding, DEPENDS += “openssl” and RPDEPENDS_confd += “openssl”,
> with no luck.  The only way I can get it to compile is if I manually hack my
> library and change from libcrypto.so.1.0.0 to libcrypto.so.1.0.2 (even
> though it was really compiled with libcrypto.so.1.0.0 and that’s the
> libcrypto version of openssl 1.0.2n).
>
>
>
> Can someone please advise?

In which environment was the library built? You generally cannot take
something that was compiled outside of Yocto. Write a recipe that
builds the library from source code, or ask the provider of that
library to do that.

Alex
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core