[OE-core] openssl10 unusable for many components
Martin Jansa
martin.jansa at gmail.com
Thu Aug 17 10:31:18 UTC 2017
Does openssl10 work for anyone in real-world scenarios?
I was trying to fix at least some of the failures reported in last bitbake
world status:
http://lists.openembedded.org/pipermail/openembedded-core/2017-August/140829.html
But in most recipes if you update DEPENDS to use openssl10, it will get
openssl (1.1) somewhere in dependency tree as well, e.g. like qtbase
through python3:
OE qemux86@ ~/build/oe-core $ grep " -> \"openssl.*do_populate_sysroot"
task-depends.dot
"qtbase.do_prepare_recipe_sysroot" -> "openssl10.do_populate_sysroot"
"openssl10.do_prepare_recipe_sysroot" ->
"openssl-native.do_populate_sysroot"
"python3-native.do_prepare_recipe_sysroot" ->
"openssl-native.do_populate_sysroot"
"python3.do_prepare_recipe_sysroot" -> "openssl.do_populate_sysroot"
and then do_prepare_recipe_sysroot fails, because both dependencies provid
libssl.a:
ERROR: qtbase-5.9.0+gitAUTOINC+f6b36eaafe-r0 do_prepare_recipe_sysroot:
Error executing a python function in exec_python_func() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:extend_recipe_sysroot(d)
0003:
File: '/OE/build/oe-core/openembedded-core/meta/classes/staging.bbclass',
lineno: 510, function: extend_recipe_sysroot
0506: dest = newmanifest[l]
0507: if l.endswith("/"):
0508: staging_copydir(l, targetdir, dest,
seendirs)
0509: continue
*** 0510: staging_copyfile(l, targetdir, dest,
postinsts, seendirs)
0511:
0512: for f in fixme:
0513: if f == '':
0514: staging_processfixme(fixme[f], recipesysroot,
recipesysroot, recipesysrootnative, d)
File: '/OE/build/oe-core/openembedded-core/meta/classes/staging.bbclass',
lineno: 151, function: staging_copyfile
0147: os.symlink(linkto, dest)
0148: #bb.warn(c)
0149: else:
0150: try:
*** 0151: os.link(c, dest)
0152: except OSError as err:
0153: if err.errno == errno.EXDEV:
0154: bb.utils.copyfile(c, dest)
0155: else:
Exception: FileExistsError: [Errno 17] File exists:
'/OE/build/oe-core/tmp-glibc/sysroots-components/i586/openssl/usr/lib/libssl.a'
->
'/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot/usr/lib/libssl.a'
ERROR: qtbase-5.9.0+gitAUTOINC+f6b36eaafe-r0 do_prepare_recipe_sysroot:
Function failed: extend_recipe_sysroot
ERROR: Logfile of failure stored in:
/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/temp/log.do_prepare_recipe_sysroot.6496
ERROR: Task (/OE/build/oe-core/meta-qt5/recipes-qt/qt5/qtbase_git.bb:do_prepare_recipe_sysroot)
failed with exit code '1'
And not just libssl.a, they both provide also identically named pkg-config
files:
openssl.pc, libcrypto.pc, libssl.pc
OE qemux86@ ~/build/oe-core $ find
/OE/build/oe-core/tmp-glibc/sysroots-components/i586/openssl10/ | grep pc
/OE/build/oe-core/tmp-glibc/sysroots-components/i586/openssl10/usr/lib/pkgconfig/openssl.pc
/OE/build/oe-core/tmp-glibc/sysroots-components/i586/openssl10/usr/lib/pkgconfig/libcrypto.pc
/OE/build/oe-core/tmp-glibc/sysroots-components/i586/openssl10/usr/lib/pkgconfig/libssl.pc
OE qemux86@ ~/build/oe-core $ find
/OE/build/oe-core/tmp-glibc/sysroots-components/i586/openssl | grep pc
/OE/build/oe-core/tmp-glibc/sysroots-components/i586/openssl/usr/lib/pkgconfig/openssl.pc
/OE/build/oe-core/tmp-glibc/sysroots-components/i586/openssl/usr/lib/pkgconfig/libcrypto.pc
/OE/build/oe-core/tmp-glibc/sysroots-components/i586/openssl/usr/lib/pkgconfig/libssl.pc
So you cannot just select which openssl implementation you want for given
component, unless it's very simple component with small dependency tree.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170817/2ceac45f/attachment-0002.html>
More information about the Openembedded-core
mailing list