Hi all,
I think the documentation on migrating between Yocto 2.2 and 2.3 needs more
clarification as to how did the sysroots have changed.
I wanted to migrate our build system from 2.2 to 2.5 and one package in
particular has caused me a day worth of scratching my head and trying different
ideas.
We have a custom recipe for openssh-server which among other things had a line:
EXTRA_OECONF += "--with-ssl-dir=${STAGING_DIR}/${MACHINE}/usr/local/openssl-1.0"
This is due the fact that openssl-1.0 is being installed to
/usr/local/openssl-1.0.
Now when trying to migrate I have noticed that STAGING_DIR is not populated any
more and this is clearly explained by the documentation. What is not explained
however is how to get the files from other recipes. The documentation simply
states that each recipe has its own staging directory. Hence what I have tried
to is steer this directory to the staging directory of openssl-1.0.
Of course the real solution is that openssh-server recipe installs header files
of all packages in DEPENDS into openssh-server STAGING_DIR_TARGET (in my case,
could be other STAGING_* directories apart from STAGING_DIR which is empty
right now) and the simple solution was to change the above line to:
EXTRA_OECONF += "--with-ssl-dir=${STAGING_DIR_TARGET}/usr/local/openssl-1.0"
And thus to save other people time I think it would be best to add another
point to the documentation
(https://www.yoctoproject.org/docs/2.5.1/ref-manual/ref-manual.html#migration-2.3-recipe-specific-sysroots)
"Consider the following:
[..]
* Examine the recipes that use STAGING_DIR: STAGING_DIR is a shared
directory not populated any more. Instead if You want to use files from another
recipe in Your recipe include that recipe in DEPENDS variable which will copy
the files from another recipe into Your recipe's staging directories. Now You
can refer to those files using STAGING_DIR* pointing to Your recipe's staging
directories. For example instead of:
EXTRA_OECONF += "--with-ssl-dir=${STAGING_DIR}/${MACHINE}/usr/local/openssl-1.0"
Write the following:
DEPENDS += "openssl-1.0"
EXTRA_OECONF += "--with-ssl-dir=${STAGING_DIR_TARGET}/usr/local/openssl-1.0"
"
Of course this can be made more general and a precaution could be added that
this is taken care of by most of the packages. Maybe in my case it could also
be changed to be automatic but this I haven't yet explored.
Cheers,
Radek Chmielarz
Leica Geosystems AG
--
_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto