From: Joshua Watt Date: Tue, 12 May 2020 21:19:24 +0000 (-0500) Subject: classes/kernel: Generate reproducible kernel module tarball X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~11123 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c6a472c82a9b3c122fc54d3ee7171508c643a8b;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git classes/kernel: Generate reproducible kernel module tarball 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 Signed-off-by: Richard Purdie --- diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index a724645466a..6846d6040df 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -691,7 +691,13 @@ 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 [ -n "${SOURCE_DATE_EPOCH}" ]; then + TAR_ARGS="--sort=name --clamp-mtime --mtime=@${SOURCE_DATE_EPOCH}" + else + TAR_ARGS="" + fi + tar $TAR_ARGS -cv -C ${D}${root_prefix} lib | gzip -9n > $deployDir/modules-${MODULE_TARBALL_NAME}.tgz + ln -sf modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz fi