[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