[1/2] rootfs.bbclass: clean blkid cache files from rootfs

Message ID 20230807163512.19570-2-venkata.pyla@toshiba-tsip.com
State Superseded, archived
Headers show
Series Fix reproducible issues in armhf | expand

Commit Message

venkata.pyla@toshiba-tsip.com Aug. 7, 2023, 4:35 p.m. UTC
From: venkata pyla <venkata.pyla@toshiba-tsip.com>

Sometimes `blkid` generates cached files `/run/blkid/blkdid.tab*`, these
cache files are not reproducible and not necessary in the final image,
so remove them to achieve reproducible builds.

Signed-off-by: venkata pyla <venkata.pyla@toshiba-tsip.com>
---
 meta/classes/rootfs.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

vijai kumar Aug. 7, 2023, 4:58 p.m. UTC | #1
On Monday, August 7, 2023 at 10:05:21 PM UTC+5:30 
venkat...@toshiba-tsip.com wrote:

From: venkata pyla <venkat...@toshiba-tsip.com> 

Sometimes `blkid` generates cached files `/run/blkid/blkdid.tab*`, these 
cache files are not reproducible and not necessary in the final image, 
so remove them to achieve reproducible builds. 

Signed-off-by: venkata pyla <venkat...@toshiba-tsip.com> 
--- 
meta/classes/rootfs.bbclass | 6 ++++++ 
1 file changed, 6 insertions(+) 

diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass 
index 22449d71..5d493ea2 100644 
--- a/meta/classes/rootfs.bbclass 
+++ b/meta/classes/rootfs.bbclass 
@@ -293,6 +293,12 @@ rootfs_export_dpkg_status() { 
'${ROOTFS_DPKGSTATUS_DEPLOY_DIR}'/'${ROOTFS_PACKAGE_SUFFIX}'.dpkg_status 
} 

+ROOTFS_POSTPROCESS_COMMAND += "rootfs_postprocess_clean_blkid_cache" 
+rootfs_postprocess_clean_blkid_cache() { 
+ # blkid generates cache file which are not reproducible 
+ sudo rm -rf "${ROOTFSDIR}/run/blkid/blkid.tab"* 
+} 


If this is a necessary clean up function, can we not move to 
rootfs_finalize? Or maybe adding it to ROOTFS_CLEAN_FILES?

Thanks,
Vijai Kumar K
 

+ 
do_rootfs_postprocess[vardeps] = "${ROOTFS_POSTPROCESS_COMMAND}" 
do_rootfs_postprocess[network] = "${TASK_USE_SUDO}" 
python do_rootfs_postprocess() {
venkata.pyla@toshiba-tsip.com Aug. 9, 2023, 4:05 a.m. UTC | #2
From: isar-users@googlegroups.com <isar-users@googlegroups.com> On Behalf Of vijai kumar
Sent: Monday, August 7, 2023 10:29 PM
To: isar-users <isar-users@googlegroups.com>
Subject: Re: [PATCH 1/2] rootfs.bbclass: clean blkid cache files from rootfs


On Monday, August 7, 2023 at 10:05:21 PM UTC+5:30 venkat...@toshiba-tsip.com<mailto:venkat...@toshiba-tsip.com> wrote:
From: venkata pyla <venkat...@toshiba-tsip.com>

Sometimes `blkid` generates cached files `/run/blkid/blkdid.tab*`, these
cache files are not reproducible and not necessary in the final image,
so remove them to achieve reproducible builds.

Signed-off-by: venkata pyla <venkat...@toshiba-tsip.com>
---
meta/classes/rootfs.bbclass | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index 22449d71..5d493ea2 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -293,6 +293,12 @@ rootfs_export_dpkg_status() {
'${ROOTFS_DPKGSTATUS_DEPLOY_DIR}'/'${ROOTFS_PACKAGE_SUFFIX}'.dpkg_status
}

+ROOTFS_POSTPROCESS_COMMAND += "rootfs_postprocess_clean_blkid_cache"
+rootfs_postprocess_clean_blkid_cache() {
+ # blkid generates cache file which are not reproducible
+ sudo rm -rf "${ROOTFSDIR}/run/blkid/blkid.tab"*
+}

If this is a necessary clean up function, can we not move to rootfs_finalize? Or maybe adding it to ROOTFS_CLEAN_FILES?

There is no issue to keep this cleaning in `rootfs_finalize`, in fact it is more meaning full to keep all cleanup in finalize methods.

Thanks for the suggestion, I will change in v2.

Thanks,
Vijai Kumar K

+
do_rootfs_postprocess[vardeps] = "${ROOTFS_POSTPROCESS_COMMAND}"
do_rootfs_postprocess[network] = "${TASK_USE_SUDO}"
python do_rootfs_postprocess() {
--
2.20.1

--
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<mailto:isar-users+unsubscribe@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/isar-users/6340d949-acc1-4283-9713-01f584686929n%40googlegroups.com<https://groups.google.com/d/msgid/isar-users/6340d949-acc1-4283-9713-01f584686929n%40googlegroups.com?utm_medium=email&utm_source=footer>.
vijai kumar Aug. 14, 2023, 11:57 a.m. UTC | #3
On Wednesday, August 9, 2023 at 7:17:10 PM UTC+5:30 
venkat...@toshiba-tsip.com wrote:

From: venkata pyla <venkat...@toshiba-tsip.com> 

Hi, 

Updated the patch series based on the feedback. 

v2 changes: 
- Drop cleaning of blkid cache files in rootfs_postporcess_command and 
do it in rootfs_finalize method. 
- corrected the condition for scanning the *.core files 

venkata pyla (2): 
image.bbclass: remove core files generated in rootfs 
image.bbclass: clean blkid cache files from rootfs 


LGTM.

Thanks,
Vijai Kumar K
 

meta/classes/image.bbclass | 10 ++++++++++ 
1 file changed, 10 insertions(+)
Uladzimir Bely Aug. 15, 2023, 2:59 p.m. UTC | #4
On Wed, 2023-08-09 at 19:17 +0530, venkata.pyla@toshiba-tsip.com wrote:
> From: venkata pyla <venkata.pyla@toshiba-tsip.com>
> 
> Hi,
> 
> Updated the patch series based on the feedback.
> 
> v2 changes:
>  - Drop cleaning of blkid cache files in rootfs_postporcess_command
> and
>    do it in rootfs_finalize method.
>  - corrected the condition for scanning the *.core files
> 
> venkata pyla (2):
>   image.bbclass: remove core files generated in rootfs
>   image.bbclass: clean blkid cache files from rootfs
> 
>  meta/classes/image.bbclass | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> -- 
> 2.20.1
> 
> 

Applied to next, thanks.
MOESSBAUER, Felix Aug. 31, 2023, 6:16 a.m. UTC | #5
On Mon, 2023-08-07 at 09:58 -0700, vijai kumar wrote:
> 
> 
> On Monday, August 7, 2023 at 10:05:21 PM UTC+5:30
> venkat...@toshiba-tsip.com wrote:
> > From: venkata pyla <venkat...@toshiba-tsip.com>
> > 
> > Sometimes `blkid` generates cached files `/run/blkid/blkdid.tab*`,
> > these
> > cache files are not reproducible and not necessary in the final
> > image,
> > so remove them to achieve reproducible builds.
> > 
> > Signed-off-by: venkata pyla <venkat...@toshiba-tsip.com>
> > ---
> >  meta/classes/rootfs.bbclass | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/meta/classes/rootfs.bbclass
> > b/meta/classes/rootfs.bbclass
> > index 22449d71..5d493ea2 100644
> > --- a/meta/classes/rootfs.bbclass
> > +++ b/meta/classes/rootfs.bbclass
> > @@ -293,6 +293,12 @@ rootfs_export_dpkg_status() {
> >  '${ROOTFS_DPKGSTATUS_DEPLOY_DIR}'/'${ROOTFS_PACKAGE_SUFFIX}'.dpkg_
> > status
> >  }
> >  
> > +ROOTFS_POSTPROCESS_COMMAND +=
> > "rootfs_postprocess_clean_blkid_cache"
> > +rootfs_postprocess_clean_blkid_cache() {
> > + # blkid generates cache file which are not reproducible
> > + sudo rm -rf "${ROOTFSDIR}/run/blkid/blkid.tab"*
> > +}
> 
> 
> If this is a necessary clean up function, can we not move to
> rootfs_finalize? Or maybe adding it to ROOTFS_CLEAN_FILES?

Why is the /run dir included at all? It will be over-mounted with a
tmpfs at runtime (when using systemd) and by that we could also clear
it. For non systemd use-cases like the containers, the content of that
directory is also not needed.

For details, see
https://www.freedesktop.org/software/systemd/man/file-hierarchy.html#/run/


Felix

> 
> Thanks,
> Vijai Kumar K
>  
> > +
> >  do_rootfs_postprocess[vardeps] = "${ROOTFS_POSTPROCESS_COMMAND}"
> >  do_rootfs_postprocess[network] = "${TASK_USE_SUDO}"
> >  python do_rootfs_postprocess() {
> > -- 
> > 2.20.1
> > 
> >

Patch

diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index 22449d71..5d493ea2 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -293,6 +293,12 @@  rootfs_export_dpkg_status() {
        '${ROOTFS_DPKGSTATUS_DEPLOY_DIR}'/'${ROOTFS_PACKAGE_SUFFIX}'.dpkg_status
 }
 
+ROOTFS_POSTPROCESS_COMMAND += "rootfs_postprocess_clean_blkid_cache"
+rootfs_postprocess_clean_blkid_cache() {
+    # blkid generates cache file which are not reproducible
+    sudo rm -rf "${ROOTFSDIR}/run/blkid/blkid.tab"*
+}
+
 do_rootfs_postprocess[vardeps] = "${ROOTFS_POSTPROCESS_COMMAND}"
 do_rootfs_postprocess[network] = "${TASK_USE_SUDO}"
 python do_rootfs_postprocess() {