This will allow us to submit the recipe to Poky Linux (which used to be called OpenEmbedded), so we can run Parrot on many, many kinds of embedded devices, mobile phones and probably sentient toasters.
Detecting qemu is IMHO worthless.
We should detect if we are running under an open embedded cross-compilation bb recipe.
qemu just simulates hw and compiling remotely does not care if done via qemu/kvm/real hw
or ssh/ttyS0 connected hosts.
But we need to detect the bitbake/oe-init-build-env environment, which does an actual cross-compilation.
I'm trying to add a parrot.bb recipe, currently there is only one for perl (enabling cross compiling).
What I see are two distinct env variables being set:
BB_ENV_EXTRAWHITE=MACHINE DISTRO TCMODE TCLIBC http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS BB_NO_NETWORK PARALLEL_MAKE GIT_PROXY_COMMAND GIT_PROXY_IGNORE SOCKS5_PASSWD SOCKS5_USER SCREENDIR
BUILDDIR must end in build
PATH must have bitbake/bin included.
@rurban what you are describing was my intent for this issue. The last time I looked, the Emacs BitBake recipe used qemu to cross-compile, which is what I want to emulate for Parrot.
I have read the BB recipe for Perl 5 (a while ago) and when I looked, it did many many source modifications to enable cross-compiling, which is not something I want to emulate.
Can you put your parrot.bb in a branch of parrot.git, maybe somewhere in the ports/ directory ?
It's unlikely that Parrot will get included upstream in the openembedded-core or poky repositories directly. However what you can do is create a Parrot "layer" which would allow Parrot support to be easily added to build configurations based on oe-core or poky (what is now known as the Yocto Project from an organizational point of view).
The layer would then be referenced here:
so that people will know of its existence and can make use of it.
Here is some documentation on creating layers for use with the Yocto Project:
I'm happy to answer questions or review the layer once you get going on it.
Scott (Yocto Project core team developer)
Thanks @ScottGarman ! Do you have any suggestions for an already existing meta-layer that we could emulate? Is meta-ruby a good example?
Yes, meta-ruby looks like a great layer to model yours from - it's as minimal as possible.