public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Adithya Balakumar <Adithya.Balakumar@toshiba-tsip.com>
To: isar-users@googlegroups.com
Cc: jan.kiszka@siemens.com, kazuhiro3.hayashi@toshiba.co.jp,
	dinesh.kumar@toshiba-tsip.com,
	shivanand.kunijadar@toshiba-tsip.com,
	sai.sathujoda@toshiba-tsip.com,
	adithya.balakumar@toshiba-tsip.com
Subject: [PATCH v1 1/1] image.bbclass: use oe.utils.directory_size() instead of du
Date: Fri, 29 Nov 2024 11:58:26 +0530	[thread overview]
Message-ID: <20241129062827.527177-2-Adithya.Balakumar@toshiba-tsip.com> (raw)
In-Reply-To: <20241129062827.527177-1-Adithya.Balakumar@toshiba-tsip.com>

Currently the "du" command is used to calculate the rootfs size, and
sometimes the reported size of the rootfs by "du" varies across multiple
builds (usually by a few kb). But the rootfs contents are reproducible.

Although this does not affect any functionality, but it does affect
reproducibility of artifacts that rely on the calculated rootfs size.

Some of the files/directories in the rootfs has different number of
blocks allocated and "du" estimates the directory size based on the
allocated blocks. The files/directories affected are not always the
same across builds.

OE-Core uses a custom function to calculate directory size (See [1])
and this patch introduces the use of that function from oe.utils to
calculate the directory size.

[1] https://github.com/openembedded/openembedded-core/commit/d8f1f3a6b024a2ae6631d1ce25421e8d94b69a12

Signed-off-by: Adithya Balakumar <Adithya.Balakumar@toshiba-tsip.com>
---
 meta/classes/image.bbclass | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 982523b0..3e70fe83 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -85,13 +85,10 @@ inherit image-account-extension
 ROOTFS_EXTRA ?= "64"
 
 def get_rootfs_size(d):
-    import subprocess
+    import subprocess, oe.utils
     rootfs_extra = int(d.getVar("ROOTFS_EXTRA"))
 
-    output = subprocess.check_output(
-        ["sudo", "du", "-xs", "--block-size=1k", d.getVar("IMAGE_ROOTFS")]
-    )
-    base_size = int(output.split()[0])
+    base_size = int(oe.utils.directory_size(d.getVar("IMAGE_ROOTFS")) / 1024)
 
     return base_size + rootfs_extra * 1024
 
-- 
2.39.5


-- 
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/20241129062827.527177-2-Adithya.Balakumar%40toshiba-tsip.com.

  reply	other threads:[~2024-11-29  6:22 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-29  6:28 [PATCH v1 0/1] Use oe.utils.directory_size() instead of du for calculating rootfs size Adithya Balakumar
2024-11-29  6:28 ` Adithya Balakumar [this message]
2024-12-06  7:29 ` Uladzimir Bely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241129062827.527177-2-Adithya.Balakumar@toshiba-tsip.com \
    --to=adithya.balakumar@toshiba-tsip.com \
    --cc=dinesh.kumar@toshiba-tsip.com \
    --cc=isar-users@googlegroups.com \
    --cc=jan.kiszka@siemens.com \
    --cc=kazuhiro3.hayashi@toshiba.co.jp \
    --cc=sai.sathujoda@toshiba-tsip.com \
    --cc=shivanand.kunijadar@toshiba-tsip.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox