On 5/12/20 9:22 AM, Richard Purdie wrote:
On Tue, 2020-05-12 at 08:40 -0500, Joshua Watt wrote:
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 <jpewhac...@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
Do we need to make this conditional or could we just do it by default?
I don't know if we can rely on SOURCE_DATE_EPOCH being set unless
reproducible_build.bbclass is inherited, but at a minimum we can always
use the gzip args.
Cheers,
Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#138171):
https://lists.openembedded.org/g/openembedded-core/message/138171
Mute This Topic: https://lists.openembedded.org/mt/74158357/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-