diff mbox series

[v2] wic: honor the SOURCE_DATE_EPOCH in case of updated fstab

Message ID 20221013164020.4125847-1-s.zhmylev@yadro.com
State Accepted, archived
Commit 99719a3712a88dce8450994d995803e126e49115
Headers show
Series [v2] wic: honor the SOURCE_DATE_EPOCH in case of updated fstab | expand

Commit Message

Sergey Zhmylev Oct. 13, 2022, 4:40 p.m. UTC
From: Sergei Zhmylev <s.zhmylev@yadro.com>

In case user requested to build a binary repeatable package,
it's required to honor the SOURCE_DATE_EPOCH environment
variable. So forcefully set mtime inside all the routines
which modify fstab in case it is updated.

Signed-off-by: Sergei Zhmylev <s.zhmylev@yadro.com>
---
 scripts/lib/wic/partition.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Alexandre Belloni Oct. 14, 2022, 6:41 a.m. UTC | #1
Hi,

This caused:

https://autobuilder.yoctoproject.org/typhoon/#/builders/23/builds/6305/steps/13/logs/stdio

On 13/10/2022 19:40:20+0300, Sergey Zhmylev wrote:
> From: Sergei Zhmylev <s.zhmylev@yadro.com>
> 
> In case user requested to build a binary repeatable package,
> it's required to honor the SOURCE_DATE_EPOCH environment
> variable. So forcefully set mtime inside all the routines
> which modify fstab in case it is updated.
> 
> Signed-off-by: Sergei Zhmylev <s.zhmylev@yadro.com>
> ---
>  scripts/lib/wic/partition.py | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
> index e50871b8d7..cac1bab4dd 100644
> --- a/scripts/lib/wic/partition.py
> +++ b/scripts/lib/wic/partition.py
> @@ -291,6 +291,9 @@ class Partition():
>          if self.updated_fstab_path and self.has_fstab and not self.no_fstab_update:
>              debugfs_script_path = os.path.join(cr_workdir, "debugfs_script")
>              with open(debugfs_script_path, "w") as f:
> +                if os.getenv('SOURCE_DATE_EPOCH'):
> +                    fstab_time = int(os.getenv('SOURCE_DATE_EPOCH'))
> +                    f.write("set_current_time %s\n" % (fstab_time))
>                  f.write("cd etc\n")
>                  f.write("rm fstab\n")
>                  f.write("write %s fstab\n" % (self.updated_fstab_path))
> @@ -353,7 +356,7 @@ class Partition():
>          exec_native_cmd(mcopy_cmd, native_sysroot)
>  
>          if self.updated_fstab_path and self.has_fstab and not self.no_fstab_update:
> -            mcopy_cmd = "mcopy -i %s %s ::/etc/fstab" % (rootfs, self.updated_fstab_path)
> +            mcopy_cmd = "mcopy -m -i %s %s ::/etc/fstab" % (rootfs, self.updated_fstab_path)
>              exec_native_cmd(mcopy_cmd, native_sysroot)
>  
>          chmod_cmd = "chmod 644 %s" % rootfs
> -- 
> 2.37.2
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#171718): https://lists.openembedded.org/g/openembedded-core/message/171718
> Mute This Topic: https://lists.openembedded.org/mt/94308156/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
index e50871b8d7..cac1bab4dd 100644
--- a/scripts/lib/wic/partition.py
+++ b/scripts/lib/wic/partition.py
@@ -291,6 +291,9 @@  class Partition():
         if self.updated_fstab_path and self.has_fstab and not self.no_fstab_update:
             debugfs_script_path = os.path.join(cr_workdir, "debugfs_script")
             with open(debugfs_script_path, "w") as f:
+                if os.getenv('SOURCE_DATE_EPOCH'):
+                    fstab_time = int(os.getenv('SOURCE_DATE_EPOCH'))
+                    f.write("set_current_time %s\n" % (fstab_time))
                 f.write("cd etc\n")
                 f.write("rm fstab\n")
                 f.write("write %s fstab\n" % (self.updated_fstab_path))
@@ -353,7 +356,7 @@  class Partition():
         exec_native_cmd(mcopy_cmd, native_sysroot)
 
         if self.updated_fstab_path and self.has_fstab and not self.no_fstab_update:
-            mcopy_cmd = "mcopy -i %s %s ::/etc/fstab" % (rootfs, self.updated_fstab_path)
+            mcopy_cmd = "mcopy -m -i %s %s ::/etc/fstab" % (rootfs, self.updated_fstab_path)
             exec_native_cmd(mcopy_cmd, native_sysroot)
 
         chmod_cmd = "chmod 644 %s" % rootfs