NetBSD Reproducibility

Jan-Benedict Glaw <[email protected]> Tue, 23 Jul 2024 19:09:36 +0200
Newsgroups gmane.os.netbsd.ports
Message-ID <[email protected]>
--Sr1nOIr3CvdE5hEN
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi!

After handing a good number of patches regarding NetBSD
reproducibility to Christos during the last months (years?), the
current state over all port/arch combinations emitted by

	./build.sh list-arch | grep -v NO_DEFAULT | \
		while IFS=3D$'\t'=3D read _1 MACHINE _2 ARCH _; do
			echo "${MACHINE}-${ARCH}"
		done


when running a `current` build in a Debian `unstable` Docker container
as well as in a NetBSD `current` Qemu VM (hosted on a Linux system)
are consistent enough so that I started to auto-generate a report:

	http://toolchain.lug-owl.de/reports/netbsd-reproducibility-overview-1.html

Each port/arch combination is built four times:

  * two builds in a Debian unstable Docker and
  * two builds in a NetBSD current VM.

The table shows the build state for those four builds, whether or not
the two Linux builds produces a fully matching result, whether or not
the two NetBSD builds match, and whether or not the NetBSD builds
match the Linux builds.

  Build artifacts taken into consideration are all sets, install
filesystems as well as the install ISOs if available. Everything is
packed into a tarball (with carefully overridden timestamps) and
compressed (gzip -n). With matching build artifacts, the tarballs also
have to be bit-identical.

  I intend to work down the remaining differences, but that takes
time. (Esp. my computation power is limited, so it *really* takes time
to track things down.)

Stats:
  96 considered port/arch
  83 had successful builds on Linux and NetBSD
  45 were completely reproducible comparing Linux- and NetBSD-based builds

Remarks:
  * amd64-x86_64 failed to build on NetBSD due to the virtual disk
    being too small. Disk is larger now, should work in the next
    build round.
  * hp300-m68k failed on Linux with a mmap error. The boot code was
    recently reworked, that may have caused this issue.

MfG, JBG
 =20
--=20

--Sr1nOIr3CvdE5hEN
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iF0EABECAB0WIQQlDTvPcScNjKREqWEdvV51g5nhuwUCZp/jzQAKCRAdvV51g5nh
u5BaAJ938YWDkc8d55m3Y7fSPR8stLqwRwCeJCYZwYbIxVC6/JwVD8ZSiQiJTnE=
=JTYb
-----END PGP SIGNATURE-----

--Sr1nOIr3CvdE5hEN--