site  contact  subhomenews

OE gatesgarth-pre compile

October 13, 2020 — BarryK

I am doing a recompile in OE, based on the latest from git master branch. Previously I used the 'dunfell' branch. 'gatesgarth' release of OE is due out this month, but as it is not yet out, I got everything from master branch.

OE is a cross-compiler environment, that can build packages for a complete Linux distribution. The people who use it are mostly targeting embedded hardware, however, it can be used to create packages for a complete Linux distro such as as EasyOS.

OE is composed of layers, each one named 'meta-*', for example 'meta-gnome' and 'meta-networking', and each layer contains recipes for downloading, compiling and installing packages. I have created 'meta-quirky', and meta-quirky/recipes-quirky currently has recipes for 187 packages. These are not provided by OE, they are created by me, packages required for building EasyOS or Quirky Linux. Or any pup.

Usually, when I upgrade to the latest OE, many of my recipes in 'meta-quirky' get broken, and it takes a lot of work to fix them, with some that have to give up on. I decided to download OE "gatesgarth-pre" and see how my 187 recipes hold up.

Not the only reason though. I wanted to remove 'modemmanager' and 'pulseaudio'.

Also wanted to bump to the 5.8.x kernel, as it has enhancements to /proc that look like might improve security in containers.

I am watching it now, compiling on same computer that I am sending this blog post. Going OK.

gcc has bumped from 9.x to 10.x, and I was expecting that might cause failure of some of my recipes, but OK so far.

Note that although OE is very sophisticated and complex, and daunting at first, it can be pretty straightforward to use. I have provided a OE dunfell tarball, with simple instructions, and it is just a matter of typing a few lines and watch it compile 745+ packages.

I intend to provide a OE gatesgarth tarball also, though might do so after 'gatesgarth' is officially released. Coz, the developers are likely finding issues that need fixing in master.

Here is an overview of OE:

https://en.wikipedia.org/wiki/OpenEmbedded

Another overview:

https://elinux.org/Yocto_Project_Introduction

The "Yocto" project tends to get most attention, however, it is really just a layer in OpenEmbedded. 'meta-yocto' contains recipes for building for specific boards. I am using "genericx86-64", which is good for PCs.

EDIT 2020-10-14:
I have decided to abandon the gatesgarth build and stay with dunfell release of OE.

A couple of reasons. One is that lots of my recipes are failing in the gatesgarth build. They are all giving a similar error message when compiling, about symbol redefinition. It would seem that there is some fundamental structural change in OE that is causing this problem. It will probably be in the release-notes when gatesgarth is released, but I don't really need to go down another rabbit hole.

Another reason is that gatesgarth is apparently a "dev" release, whereas dunfell is "lts" -- long term supported. Dunfell obviously has had a lot of effort put into it, given how easy it was to get my recipes to work. Also, layers maintained by other people are likely to become compatible with dunfell sometime, if not already. Many layers are maintained by just one person or a few people, and often lag behind the official releases -- meaning that they might not work with the dunfell release. "meta-debian" is an example, currently only compatible with the warrior release of OE.   

Tags: oe