mirror of
https://git.yoctoproject.org/poky
synced 2026-04-22 15:32:14 +02:00
image_types: make tar images more reproducible
Use tar-native from our build system. GNU tar changed its behaviour starting with version 1.35. It no longer stores device numbers for regular, non-device files. Since some supported host distributions still use 1.34, rely on tar-native for consistency. Strip atime and ctime from tar archives, they're not necessary and can change from invocation to invocation. Eliminate them from the tar output as suggested in the tar 1.35 documentation[1]. [1] https://www.gnu.org/software/tar/manual/html_node/Reproducibility.html (From OE-Core rev: 24d85d626aaad7eee7ba064410b80947e4f2faea) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
924fe94ff5
commit
43de7f8bc0
@@ -145,7 +145,7 @@ IMAGE_CMD:vfat = "oe_mkvfatfs ${EXTRA_IMAGECMD}"
|
||||
|
||||
IMAGE_CMD_TAR ?= "tar"
|
||||
# ignore return code 1 "file changed as we read it" as other tasks(e.g. do_image_wic) may be hardlinking rootfs
|
||||
IMAGE_CMD:tar = "${IMAGE_CMD_TAR} --sort=name --format=posix --numeric-owner -cf ${IMGDEPLOYDIR}/${IMAGE_NAME}.tar -C ${IMAGE_ROOTFS} . || [ $? -eq 1 ]"
|
||||
IMAGE_CMD:tar = "${IMAGE_CMD_TAR} --sort=name --format=posix --pax-option=delete=atime,delete=ctime --numeric-owner -cf ${IMGDEPLOYDIR}/${IMAGE_NAME}.tar -C ${IMAGE_ROOTFS} . || [ $? -eq 1 ]"
|
||||
SPDX_IMAGE_PURPOSE:tar = "archive"
|
||||
|
||||
do_image_cpio[cleandirs] += "${WORKDIR}/cpio_append"
|
||||
@@ -283,6 +283,7 @@ EXTRA_IMAGECMD:f2fs ?= ""
|
||||
# otherwise mkfs.vfat will automatically pick one.
|
||||
EXTRA_IMAGECMD:vfat ?= ""
|
||||
|
||||
do_image_tar[depends] += "tar-replacement-native:do_populate_sysroot"
|
||||
do_image_cpio[depends] += "cpio-native:do_populate_sysroot"
|
||||
do_image_jffs2[depends] += "mtd-utils-native:do_populate_sysroot"
|
||||
do_image_cramfs[depends] += "util-linux-native:do_populate_sysroot"
|
||||
@@ -391,3 +392,5 @@ IMAGE_TYPES_MASKED ?= ""
|
||||
|
||||
# bmap requires python3 to be in the PATH
|
||||
EXTRANATIVEPATH += "${@'python3-native' if d.getVar('IMAGE_FSTYPES').find('.bmap') else ''}"
|
||||
# reproducible tar requires our tar, not the host's
|
||||
EXTRANATIVEPATH += "${@'tar-native' if 'tar' in d.getVar('IMAGE_FSTYPES') else ''}"
|
||||
|
||||
Reference in New Issue
Block a user