There is no way for gzip 1.2.4 and tar 1.12 to disable the inclusion of
timestamps into the tarball/gzip, which creates non-reproducible
tarballs and hence packages.
While it is theoretically possible to set the timestamps to unix time 0
using touch, in reality this is not possible because mes libc does not
support utime() which sets the timestamp of a file from userspace. So we
need to ignore it rather than (re)set it.
In rootless boostrap, dev nodes must be mounted before starting the
bootstrap process. However, some of these aren't necessarily mounted,
such as when relying upon BuildStream's sandbox.
Since these are not actually required for either a rootless or
chroot-based bootstrap, simply avoid them.
When not running as root, the shebang workaround requires write
permissions to modify help2man. Since the original file is read-only,
permission must be granted explicitly.
Also fix the double '/' in the /usr prefix while at it.
delete --no-auto-compile : useless in this case (MES doesn't compile)
delete -- : this starts an interactive scheme session (which is not the case here)
Generally, this is bad, because reduces featureset of kernel.
However, we don't use any blobbed features anyway.
1. This allows much lower RAM usage.
2. Speeds up deblobbing from hours -> seconds.
This nukes blobbed files instead of replacing blobs.
For further RAM savings, we want to create sysb -without- having linux
tarball extracted at the same time. To accomplish this, we move the
gen_init_cpio + related script out of the tree and create it afterward.
Also use hard links to free up some more space.
- The date reproducibility issue was not actually set to any date, which
could cause issues in the fiture, fix that sed.
- Fix a reproducibility issue (under QEMU), where the ordering of files
within libguile can be random. This also affects guile binary so we
need to rebuild that.
- Some change in kernel versions means that guile binary is
significantly different in newer kernel versions. Because we cannot
know the version of the host under chroot mode we must disable guile
checksum entirely.
- Update checksums accordingly.