Home

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:

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