The motivation for creating this error logs directory is to facilitate troubleshooting build failures -- after experiencing first hand working with developers not being able to find error logs... Amy On Wed, Jan 8, 2025 at 3:56 PM Jan Kiszka wrote: > On 08.01.25 16:57, Amy Fong wrote: > > From: Amy Fong > > > > On a build, create a directory that gets populated > > with temp directories of recipes that fail to build. > > > > The variable ERROR_DIR defines this directory, defaults > > to ${TOPDIR}/errorLogs > > This is missing a reason why we want this. I'm also not seeing something > similar in OE. > > Jan > > > > > Signed-off-by: Amy Fong > > --- > > bitbake/lib/bb/build.py | 10 ++++++++++ > > bitbake/lib/bb/runqueue.py | 6 ++++++ > > meta/conf/bitbake.conf | 2 ++ > > 3 files changed, 18 insertions(+) > > > > diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py > > index 44d08f5c..1c8ad032 100644 > > --- a/bitbake/lib/bb/build.py > > +++ b/bitbake/lib/bb/build.py > > @@ -25,6 +25,7 @@ import bb > > import bb.msg > > import bb.process > > import bb.progress > > +import shutil > > from io import StringIO > > from bb import data, event, utils > > > > @@ -103,6 +104,15 @@ class TaskFailed(TaskBase): > > def __init__(self, task, fn, logfile, metadata, errprinted = False): > > self.errprinted = errprinted > > super(TaskFailed, self).__init__(task, fn, logfile, metadata) > > + d = metadata > > + errorDir = d.getVar('ERROR_DIR') > > + if errorDir is not None: > > + pkg = d.getVar("PF") > > + newtmp = os.path.join(errorDir, pkg) > > + if os.path.exists(newtmp): > > + shutil.rmtree(newtmp) > > + tempdir = d.getVar('T') > > + shutil.copytree(tempdir, newtmp) > > > > class TaskFailedSilent(TaskBase): > > """Task execution failed (silently)""" > > diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py > > index bc7e1817..a77749c3 100644 > > --- a/bitbake/lib/bb/runqueue.py > > +++ b/bitbake/lib/bb/runqueue.py > > @@ -25,6 +25,7 @@ from multiprocessing import Process > > import shlex > > import pprint > > import time > > +import shutil > > > > bblogger = logging.getLogger("BitBake") > > logger = logging.getLogger("BitBake.RunQueue") > > @@ -1334,6 +1335,11 @@ class RunQueue: > > self.rqexe = None > > self.worker = {} > > self.fakeworker = {} > > + errorDir = self.cfgData.getVar('ERROR_DIR') > > + if errorDir is not None: > > + if os.path.exists(errorDir): > > + shutil.rmtree(errorDir) > > + os.mkdir(errorDir) > > > > @staticmethod > > def send_pickled_data(worker, data, name): > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > > index ef408faa..f345b9cb 100644 > > --- a/meta/conf/bitbake.conf > > +++ b/meta/conf/bitbake.conf > > @@ -200,3 +200,5 @@ PATCHRESOLVE ?= "noop" > > > > PREFERRED_PROVIDER_bootstrap-host ??= "isar-mmdebstrap-host" > > PREFERRED_PROVIDER_bootstrap-target ??= "isar-mmdebstrap-target" > > + > > +ERROR_DIR ?= "${TOPDIR}/errorLogs" > > -- > Siemens AG, Foundational Technologies > Linux Expert Center > -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/CAMB4A97bSXwq-JyR10LqvNU9BCk_N35H0J6Aw1dZzRapYy-v0w%40mail.gmail.com.