]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
rootfs-postcommands.bbclass: make opkg status reproducible
authorJonas Gorski <jonas.gorski@bisdn.de>
Thu, 26 Sep 2024 15:41:35 +0000 (17:41 +0200)
committerSteve Sakoman <steve@sakoman.com>
Tue, 22 Oct 2024 19:08:39 +0000 (12:08 -0700)
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 <jonas.gorski@bisdn.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 61a9b1b1cb618ce90ba7886036f41263075c07df)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/classes-recipe/rootfs-postcommands.bbclass

index 920da94ba2c8e4ef1afa011e88f695a9fe9a7457..5f4d67f93ca8371fe55e5a5909522a6843130696 100644 (file)
@@ -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
 }