Some OpenEmbedded/Poky tricks

During use of OpenEmbedded and Poky build systems I learnt few tricks which I want to start sharing.

Installing l10n packages for all software in resulting rootfs

This one is rarely used — I know one company which makes use of it. How does it works? It is called after root filesystem is populated with packages and goes one by one and install “-locale-LANG” for each required language. As you may expect it makes whole process much, much longer. Activation is easy:

ROOTFS_POSTINSTALL_COMMAND += "install_all_locales; "

Code is available only for building from IPKG packages and is stored in rootfs_ipk.bbclass file. So far that code is present only in Poky Linux.

Building AUTOREV packages over slow link

How many times you had a situation when you did a build and many components used SRCREV="${AUTOREV}" setting? Parsing can take eons then…

But there is a solution. It will cache values of all SRCREV variables so just one parse will be long — next one use cached values. Of course you lose automatic revisions but instead you have fast parsing time which is blessing when most of your work is fixing build problems. Activation is easy:

BB_SRCREV_POLICY = "cache"

Save disc space by not generating GIT tarballs in DL_DIR

How many of you readers share your DL_DIR (directory where OE stores all fetched sources) with others? For those who answered “not me” there is a way to gain some space by not generating tarballs with GIT repositories.

By default BitBake clones GIT tree and checkouts it. Then 2 archives are generated: one with just “.git” directory and second with sources — the one which is used in do_unpack task. So why waste space for storing first one? We have it somewhere in DL_DIR/git/ for next time… Activation is easy:

BB_GENERATE_MIRROR_TARBALLS = "0"

More tricks in next posts.

openembedded poky