Skip to content

[Reproducible Builds] Fails due to changelog files are created with build time entries

While checking the reproducible build i found some differences, below are the steps to see the differences

$ ./kas-container build kas-cip.yml:kas/board/qemu-amd64.yml && mv build build1
$ ./kas-container build kas-cip.yml:kas/board/qemu-amd64.yml && mv build build2
$ mkdir -p mount1 mount2
$ sudo mount -o loop build1/tmp/deploy/images/qemu-amd64/cip-core-image-cip-core-buster-qemu-amd64.ext4.img ./mount1/
$ sudo mount -o loop build2/tmp/deploy/images/qemu-amd64/cip-core-image-cip-core-buster-qemu-amd64.ext4.img ./mount2/
$ rsync -nrclv ./mount1/ ./mount2/ > differences.txt

In this issue, i picked the reproducible failures due to changelog file has different time values

usr/share/doc/customizations/changelog.gz
usr/share/doc/sshd-regen-keys/changelog.gz

The changelog files above mentioned are created by isar system here with default content and the date value, it tries to find the date value from the latest modified time of any file under debian/ directory of the package, but because the two packages customizations and sshd-regen-keys are not the debian packages and so the isar system is creating a changelog file with new date values on every build.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information