[oe] [PATCH] sstate.bbclass: Add progress bars when removing from the sysroots
Peter Kjellerstedt
peter.kjellerstedt at axis.com
Thu Dec 7 14:51:26 UTC 2017
And this was of course intended to go to the openembedded-core list.
//Peter
> -----Original Message-----
> From: openembedded-devel-bounces at lists.openembedded.org
> [mailto:openembedded-devel-bounces at lists.openembedded.org] On Behalf Of
> Peter Kjellerstedt
> Sent: den 7 december 2017 15:40
> To: openembedded-devel at lists.openembedded.org
> Subject: [oe] [PATCH] sstate.bbclass: Add progress bars when removing
> from the sysroots
>
> If there are many recipes that should be cleaned out from the
> sysroots, it can actually take some time. This adds a progress bar to
> give a visual clue that the clean up is actually progressing.
>
> Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
> ---
> meta/classes/sstate.bbclass | 36 ++++++++++++++++++++++--------------
> 1 file changed, 22 insertions(+), 14 deletions(-)
>
> diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
> index e30fbe1280..6e41b56861 100644
> --- a/meta/classes/sstate.bbclass
> +++ b/meta/classes/sstate.bbclass
> @@ -845,7 +845,7 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash,
> sq_hashfn, d, siginfo=False):
> missed.append(task)
> bb.debug(2, "SState: Unsuccessful fetch test for %s" %
> srcuri)
> pass
> - bb.event.fire(bb.event.ProcessProgress("Checking sstate
> mirror object availability", len(tasklist) -
> thread_worker.tasks.qsize()), d)
> + bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist)
> - thread_worker.tasks.qsize()), d)
>
> tasklist = []
> for task in range(len(sq_fn)):
> @@ -856,7 +856,8 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash,
> sq_hashfn, d, siginfo=False):
> tasklist.append((task, sstatefile))
>
> if tasklist:
> - bb.event.fire(bb.event.ProcessStarted("Checking sstate
> mirror object availability", len(tasklist)), d)
> + msg = "Checking sstate mirror object availability"
> + bb.event.fire(bb.event.ProcessStarted(msg, len(tasklist)),
> d)
>
> import multiprocessing
> nproc = min(multiprocessing.cpu_count(), len(tasklist))
> @@ -870,7 +871,7 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash,
> sq_hashfn, d, siginfo=False):
> pool.wait_completion()
> bb.event.disable_threadlock()
>
> - bb.event.fire(bb.event.ProcessFinished("Checking sstate
> mirror object availability"), d)
> + bb.event.fire(bb.event.ProcessFinished(msg), d)
>
> inheritlist = d.getVar("INHERIT")
> if "toaster" in inheritlist:
> @@ -1038,18 +1039,25 @@ python sstate_eventhandler2() {
> seen.append(stamp)
>
> if toremove:
> - bb.note("There are %d recipes to be removed from sysroot
> %s, removing..." % (len(toremove), a))
> + msg = "Removing %d recipes from the %s sysroot" %
> (len(toremove), a)
> + bb.event.fire(bb.event.ProcessStarted(msg, len(toremove)),
> d)
> +
> + removed = 0
> + for r in toremove:
> + (stamp, manifest, workdir) = r.split()
> + for m in glob.glob(manifest + ".*"):
> + if m.endswith(".postrm"):
> + continue
> + sstate_clean_manifest(m, d)
> + bb.utils.remove(stamp + "*")
> + if removeworkdir:
> + bb.utils.remove(workdir, recurse = True)
> + lines.remove(r)
> + removed = removed + 1
> + bb.event.fire(bb.event.ProcessProgress(msg, removed),
> d)
> +
> + bb.event.fire(bb.event.ProcessFinished(msg), d)
>
> - for r in toremove:
> - (stamp, manifest, workdir) = r.split()
> - for m in glob.glob(manifest + ".*"):
> - if m.endswith(".postrm"):
> - continue
> - sstate_clean_manifest(m, d)
> - bb.utils.remove(stamp + "*")
> - if removeworkdir:
> - bb.utils.remove(workdir, recurse = True)
> - lines.remove(r)
> with open(i, "w") as f:
> for l in lines:
> f.write(l)
> --
> 2.12.0
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
More information about the Openembedded-devel
mailing list