Awesome
OpenEmbedded/Yocto Project layer for Erlang, Elixir and Gleam support
This layer provides support for the following BEAM languages:
For use with OpenEmbedded and/or the Yocto Project build system.
Documentation
See meta-erlang documentation.
Dependencies
This layer depends on:
URI: git://git.openembedded.org/bitbake branch: master
URI: git://github.com/openembedded/oe-core.git branch: master revision: HEAD
URI: git://git.openembedded.org/openembedded-core layers: meta branch: master
For erlang odbc:
URI: https://github.com/openembedded/meta-openembedded.git layers: meta-oe branch: master
For erlang lksctp run-time support:
URI: https://github.com/openembedded/meta-openembedded.git layers: meta-networking branch: master
Usage instructions
Use the bitbake-layers add-layer command to add the meta-erlang to the configuration file:
cd ~/poky/build
bitbake-layers add-layer ../meta-erlang
Then run:
bitbake erlang-embedded-image-minimal
That will create an image with embedded erlang.
Or add IMAGE_INSTALL_append = " erlang"
in conf/local.conf file and run
bitbake core-image-minimal
to get an image with erlang support.
Also, there are a set of recipe examples demonstrating how to integrate Erlang/Elixir projects into YP/OE. The examples tried to cover some common use cases when dealing with cross compiled applications.
Supported versions
meta-erlang tries to support a well balanced range of Erlang, Elixir and Yocto Project versions. The purpose is to provide up-to-date recipes following the latest fixes found in Erlang and Elixir projects as well keeping the old recipes to not break compatibility.
Please, before building Erlang/Elixir applications, check out the PREFERRED_VERSION for each application on the meta-erlang application documentation.
As meta-erlang provides multiple versions for the same recipes, pay attention to configure the variable PREFERRED_VERSION in one of the configuration file like local.conf, site.conf, auto.conf or distro/include files. Like this:
PREFERRED_VERSION_erlang = "27.0"
PREFERRED_VERSION_erlang-native = "27.0"
PREFERRED_VERSION_elixir = "1.16.3"
PREFERRED_VERSION_elixir-native = "1.16.3"
PREFERRED_VERSION_gleam-native = "1.5.1"
However if you have any specific requirements for a special recipe version, you can always add it in your application/middleware layer.
Following the OTP Versions Tree, Elixir Compatibility and Deprecations and Yocto Project releases meta-erlang supports the below versions:
Erlang:
Elixir:
Gleam:
Yocto:
meta-erlang provides specific branches for each YP/OE release. So, please stick with one of the supported branches to avoid compatible problems:
- styhead
- scarthgap
- nanbield
- mickledore
- langdale
- kirkstone
- honister
- hardknott
- gatesgarth
- dunfell
- zeus
- warrior
Even though supporting a range of versions, users are recommended to checkout specific meta-erlang branch in order to find out the correct combination between Erlang/OTP versions. Due to how Erlang/OTP and YP/OE are made, it is not possible always to keep some versions without backporting or fixing cross compilation issues.
Other Information
This layer can provide the entire Erlang installation, from the base runtime (erlang) to a full erlang development environment with all of the bells and whistles (erlang-modules).
A list of all the packages provided can be found in the manifest file, at recipes-devtools/erlang/erlang-${PV}-manifest.inc. This file needs to be re-generated and new SRCREVs need to be added whenever the version hanges.
Contributing
You can send patches using the GitHub pull request process.
Maintainers
- João Henrique Ferreira de Freitas
<joaohf@gmail.com>