[0/1,meta-oe] buildstats: avoiding disk usage warnings in Isar

Message ID 20211204063316.12502-1-ubely@ilbers.de
Headers show
Series buildstats: avoiding disk usage warnings in Isar | expand

Message

Uladzimir Bely Dec. 4, 2021, 6:33 a.m. UTC
Recently we've borrowed buildstats functionality to Isar (https://github.com/
ilbers/isar/). Everything works well, but there is a problem with a large 
number of warnings in the console.

The problems comes from run_buildstats() function (bb.build.TaskSucceeded 
handler). Here, rootfs_size is calculated by executing "du -sh" on the 
directory.

In case of Isar, this directory may: 1) be created by root, so some 
directories are not available for the user; 2) have ./proc and ./dev mounted. 
So "du" produces a big amount of "Permissions denied" warnings.

The easiest solution in our case is using "sudo du -shx" instead. This 
solution works, bus it requires forking buildstats.bbclass, so our copy will 
differ from OE's one. That's what we want to avoid.

I'm looking for a proper way to make some changes in openembedded-core 
upstream that will continue using "du -sh" (or "du -shx") in OE/Yocto/etc, but 
will allow to use "sudo du -shx" in Isar.

Current idea is to put "du -sh" functionality to some small separate file (.py 
or .bbclass) so it could be called from buidstats.bbclass via some abstract 
method. Isar could just use its own implementation.

But I'm not sure that it would be a good option for OE-core, because it 
doesn't bring any essential improvements for it.

Probably, someone could hint some other way to deal with the issue that 
doesn't require changes in files borrowed from OE?

The following patch is an example how it could look like.

Uladzimir Bely (1):
  buildstats: disk usage outside bbclass

 meta/classes/buildstats-utils.bbclass | 4 ++++
 meta/classes/buildstats.bbclass       | 5 +++--
 2 files changed, 7 insertions(+), 2 deletions(-)
 create mode 100644 meta/classes/buildstats-utils.bbclass