Openembedded Core Discussions
 help / color / mirror / Atom feed
* [OE-core][PATCH] classes/kernel: Generate reproducible kernel module tarball
@ 2020-05-12 13:40 Joshua Watt
  2020-05-12 14:22 ` Richard Purdie
  2020-05-12 21:19 ` [OE-core][PATCH v2] " Joshua Watt
  0 siblings, 2 replies; 5+ messages in thread
From: Joshua Watt @ 2020-05-12 13:40 UTC (permalink / raw)
  To: openembedded-core; +Cc: Joshua Watt

If reproducible binaries are requested, generate the kernel modules
tarball in a reproducible way. Namely, sort the tarball contents, clamp
the mtime to the source date epoch, compress the archive with a
consistent compression level (9), and don't include the name and
timestamp in the compressed file.

[YOCTO #12719]

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
 meta/classes/kernel.bbclass | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index a724645466..c124645643 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -691,7 +691,15 @@ kernel_do_deploy() {
 
 	if [ ${MODULE_TARBALL_DEPLOY} = "1" ] && (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
 		mkdir -p ${D}${root_prefix}/lib
-		tar -cvzf $deployDir/modules-${MODULE_TARBALL_NAME}.tgz -C ${D}${root_prefix} lib
+		if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
+			TAR_ARGS="--sort=name --clamp-mtime --mtime=@${SOURCE_DATE_EPOCH}"
+			GZIP_ARGS="-9n"
+		else
+			TAR_ARGS=""
+			GZIP_ARGS=""
+		fi
+		tar $TAR_ARGS -cv -C ${D}${root_prefix} lib | gzip $GZIP_ARGS > $deployDir/modules-${MODULE_TARBALL_NAME}.tgz
+
 		ln -sf modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
 	fi
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-05-12 21:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-12 13:40 [OE-core][PATCH] classes/kernel: Generate reproducible kernel module tarball Joshua Watt
2020-05-12 14:22 ` Richard Purdie
2020-05-12 14:27   ` Joshua Watt
2020-05-12 14:47     ` Richard Purdie
2020-05-12 21:19 ` [OE-core][PATCH v2] " Joshua Watt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox