[yocto] Ruby and OpenSSL version mismatch?

Takashi Matsuzawa tmatsuzawa at xevo.com
Thu Feb 2 05:31:39 PST 2017


Hello, I just tried and the below seems to be the fix.


https://patchwork.openembedded.org/patch/119999/

________________________________
From: Takashi Matsuzawa
Sent: Thursday, February 2, 2017 3:25 PM
To: yocto at yoctoproject.org
Subject: Ruby and OpenSSL version mismatch?


Hello, Yocto.

I am trynig a build of fido based yocto image, with openssl 1.0.2j for security reason.
The openssl recipe itself builds successfully, but later in the build I see error in jscore.
In fact, ruby is complaining that 'OPENSSL_1.0.0' is not available.

| /xxx/sysroots/x86_64-linux/usr/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': /xxx/sysroots/x86_64-linux/usr/lib/ruby/2.2.0/x86_64-linux-gnu/digest/../../../../libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /xxx/sysroots/x86_64-linux/usr/lib/ruby/2.2.0/x86_64-linux-gnu/digest/sha1.so) - /xxx/sysroots/x86_64-linux/usr/lib/ruby/2.2.0/x86_64-linux-gnu/digest/sha1.so (LoadError)
|     from /xxx/sysroots/x86_64-linux/usr/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
|     from /xxx/work/core2-32-poky-linux/qtwebkit/5.5.0+gitAUTOINC+0d592678ba-r0/git/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb:30:in `<main>'
| make[2]: *** [LLIntDesiredOffsets.h] Error 1

In fact, if I do objdump -p on sha1.so (in ruby tree):

>  required from libcrypto.so.1.0.0:
>    0x066a2b20 0x00 02 OPENSSL_1.0.0

Whereas, my libcrypt.so.1.0.0 says:

>Version definitions:
>1 0x01 0x0746be50 libcrypto.so.1.0.0
>2 0x00 0x06a2b2e4 OPENSSL_1.0.2d
>3 0x00 0x06a2b2e7 OPENSSL_1.0.2g
>    OPENSSL_1.0.2d

So, this might be the cause of the problem.
But I am not sure why sha1.so (which ruby build generats) define these version numbers and not refer to the OpenSSL library in the build.

I googled, but there were some tips on updating ruby to solve OpenSSL version mismatch, but it is through grew or apt-get, etc.  Not a tip for yocto build.

I may be not familiar with ruby build yet, but any idea how I can fix this?
I could try updating ruby recipe as well to more recent version, but first I want to confirm how ruby is deciding the OpenSSL version for its plugin library and causing this mismatch.

Thank you for your knowledge..

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20170202/d4e52d5b/attachment.html>


More information about the yocto mailing list