From: Jonas Gorski <[email protected]>

opkg stores the current time as Installed-Time in its status file when
installing packages to the rootfs. Make this reproducible by replacing
Installed-Time with ${REPRODUCIBLE_TIMESTAMP_ROOTFS}, which then also
matches the files' datestamps.

Based on OpenWrt's approach for the issue [1].

[1] https://github.com/openwrt/openwrt/blob/main/include/rootfs.mk#L103

Signed-off-by: Jonas Gorski <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
(cherry picked from commit 61a9b1b1cb618ce90ba7886036f41263075c07df)
Signed-off-by: Steve Sakoman <[email protected]>
---
 meta/classes-recipe/rootfs-postcommands.bbclass | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/meta/classes-recipe/rootfs-postcommands.bbclass 
b/meta/classes-recipe/rootfs-postcommands.bbclass
index 920da94ba2..5f4d67f93c 100644
--- a/meta/classes-recipe/rootfs-postcommands.bbclass
+++ b/meta/classes-recipe/rootfs-postcommands.bbclass
@@ -487,6 +487,10 @@ rootfs_reproducible () {
                        find ${IMAGE_ROOTFS}${sysconfdir}/gconf -name 
'%gconf.xml' -print0 | xargs -0r \
                        sed -i -e 
's@\bmtime="[0-9][0-9]*"@mtime="'${REPRODUCIBLE_TIMESTAMP_ROOTFS}'"@g'
                fi
+
+               if [ -f ${IMAGE_ROOTFS}${localstatedir}/lib/opkg/status ]; then
+                       sed -i 's/^Installed-Time: .*/Installed-Time: 
${REPRODUCIBLE_TIMESTAMP_ROOTFS}/' 
${IMAGE_ROOTFS}${localstatedir}/lib/opkg/status
+               fi
        fi
 }
 
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#206234): 
https://lists.openembedded.org/g/openembedded-core/message/206234
Mute This Topic: https://lists.openembedded.org/mt/109169399/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to