Commit Graph

333 Commits

Author SHA1 Message Date
fosslinux 7366647595 Update stage0-posix, help2man fix, refactor
- stage0-posix update to correctly exist on fail.
- help2man reproducibility fix for month.
- refactor some bits into functions.
2022-04-05 20:25:40 +10:00
fosslinux b760b3eb2b Final fixes:
- All QEMU reproducibility issues resolved
- Added SPDX licensing
- Couple other small issues
- Fix guile reproducbility
2022-03-12 16:24:25 +11:00
fosslinux 9543a47f1b Fix up checksums + other fixes 2022-03-12 16:23:24 +11:00
fosslinux 931490551a Fix a variety of reproducibility issues
Include:
- Not regenerated man pages.
- Automake tarball with bad time (and completely useless).
- Ordering of files within tarballs.
- Resetting timestamp various fixes.
- Older tars not properly overwriting files leading to many issues.
- Weird lack of reproducibility in libtool scripts paths to tools.
- and more
2022-03-07 19:02:12 +11:00
fosslinux a343dcf6ed Add new tarball-based checksums to all packages 2022-03-07 19:02:12 +11:00
fosslinux 968d2ea7d1 Introduce packaging support
Utilising previously introduced DESTDIR support, everything is installed
to aformentioned DESTDIR.

Prior to the building of XBPS, we use gzip compressed tarballs as
packages. This requires a lot of strange hacks especially for old tar +
gzip (timestamps, etc causing reproducibility problems). Then we use
XBPS once built.
2022-03-07 19:02:12 +11:00
fosslinux 6d19fc093e Fix a strange bug occuring in linux-headers
Only seems to occur in some terminals, as a result of mes libc bash, and
only when using DESTDIR. Not sure what the trigger is.
2022-03-07 19:02:12 +11:00
fosslinux 06cc74fe01 Fix an annoying typo 2022-03-07 19:02:12 +11:00
fosslinux c64367f608 Merge /usr/sbin and /usr/bin
Required for some stupid build system (and is also better for us).
2022-03-07 19:02:12 +11:00
fosslinux 07d4408fb6 Build touch in coreutils-5.0 pass2
Better touch is very useful for packaging.
2022-03-07 19:02:12 +11:00
fosslinux b8ef19150c Fix various things to use ${DESTDIR} 2022-03-07 19:02:12 +11:00
fosslinux 016b9511d2 Make gzip-1.2.4 and tar-1.12 not include timestamps
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.
2022-03-07 19:02:12 +11:00
fosslinux 634ec99771 Rename perl5.004_05 and perl5.005_03
The underscores cause problems later, as _ is a delimiter for "revision
number" in packaging.
2022-03-07 19:02:12 +11:00
Dor Askayo 2a0fef17e2 Add a patch to improve the reproducibility of findutils
See the comment in the patch for more details.
2022-01-17 14:11:17 +02:00
Dor Askayo b03f3e11c0 Use rm -f to avoid interactive prompts
This is required when not running as root to avoid prompts when
removing read-only files.
2022-01-17 14:09:29 +02:00
Dor Askayo c3843e1960 Ensure help2man is writable
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.
2022-01-17 14:05:52 +02:00
Dor Askayo d2b3feca5f Remove the previous coreutils-5.0 source directory
coreutils-5.0 is built twice in the same source directory during the
bootstrap. This can create some unexpected issues.
2022-01-17 14:05:52 +02:00
Dor Askayo 206a31fa4c Use the -f flag in gunzip and bunzip2
It allows unpacking hardlinked archives.
2022-01-17 14:05:16 +02:00
Dor Askayo 37b5b7bf4c Use mkdir -p in after.kaem
Avoids an error when the directories already exist.
2022-01-14 13:23:00 +02:00
Dor Askayo f18504b509 Update mes-m2 2022-01-02 11:16:08 +02:00
Andrius Štikonas df933f474c Remove unused stage0-posix checksum file. 2021-12-31 16:39:00 +00:00
Andrius Štikonas 553c9b965a Fix leftover /image directories in perl config.h file. 2021-12-29 01:39:15 +00:00
Andrius Štikonas 620e10d4be Update stage0-posix. 2021-12-28 11:51:15 +00:00
Andrius Štikonas 9d3b1e2723 Update mes-m2. 2021-12-23 17:59:54 +00:00
Gabriel Wicki 65c7d78620 fix mescc alias in mes.kaem script
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)
2021-12-22 17:14:51 +01:00
Andrius Štikonas 60eece8856 Update stage0-posix. 2021-12-04 20:06:54 +00:00
Andrius Štikonas cd93a07481 Update mes-m2 and stage0-posix. 2021-11-06 00:07:13 +00:00
Andrius Štikonas 12f3cc3138 Update stage0-posix. 2021-10-31 22:37:10 +00:00
Andrius Štikonas 32ec57d62d Unhardcode x86 from initial steps. 2021-10-20 21:16:05 +01:00
Andrius Štikonas 5148a8e0da Start using kaem aliases to build mes. 2021-10-20 21:15:50 +01:00
Andrius Štikonas 9acf482527 Update stage-posix. 2021-10-20 21:15:16 +01:00
Andrius Štikonas e46eb5ad9c Move stage0-posix match binary into /usr/bin. 2021-10-14 20:44:32 +01:00
fosslinux 5dbf82e8e4 A couple of fixes wrt bootstrap.cfg
Correctly source. export so that scripts can access.
2021-10-14 21:31:45 +11:00
Andrius Štikonas 04c3dc60a5 Update stage0-posix to newer version. 2021-10-14 01:26:11 +01:00
fosslinux 98ea0a4c2e Don't use deblob-check
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.
2021-10-13 17:57:50 +01:00
fosslinux f12897265c Shuffle around the creation of sysb
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.
2021-10-13 17:57:50 +01:00
fosslinux 732af79cdd A small RAM saving in initramfs
Before compiling the large Linux kernel, free up RAM space by removing
old build dirs.
2021-10-13 17:57:50 +01:00
fosslinux 306dac7ba6 Add prompts when particular options are not given in config files 2021-10-13 00:42:21 +01:00
Andrius Štikonas c6c8a1eb7f Move chroot transition script inside bootstrap. 2021-10-10 16:38:52 +01:00
Andrius Štikonas 35a7df58b7 Build chroot in coreutils-5.0 step. 2021-10-10 12:18:08 +01:00
Andrius Štikonas dceede45db Use exec when kaem finishes and runs bash. 2021-10-08 20:55:06 +01:00
Andrius Štikonas e3d0191949 Update stage0-posix. 2021-10-08 20:55:06 +01:00
fosslinux 04180f5672 Various fixes + cleanup.
- Add parts.rst documentation for Linux kernel.
- Completely fix problems caused by new bootstrap, update checksums for
  /usr.
- Globalise populate_device_nodes.
- Enable deblobbing.
2021-09-14 14:59:08 +10:00
fosslinux d429c48d76 Update the linux kernel for sysb/c to 4.9.10.
- We do not use latest 4.9.x because it relies on a new version of
  binutils, while older versions do not. (Note: we should be able to go
  a bit newer but I didn't bother testing >50 versions to figure this
  out).
- We do not use newer kernel versions because they require one or more
  of (new perl, new binutils, new make, new gcc, new bison, new tar).
- sysb and sysc are updated to use the SATA (libata) subsystem (aka sda)
  instead of IDE-emulating SATA subsystem (aka hda) which is now
  available to us.
- While theoretically according to docs 4.9 should work OOTB with our
  version of binutils this is not the case, so we have to do a bit of
  (interesting) patching. But this does not break anything.
- Thankfully serial support in 4.9 is not screwed over like it is in 2.6
  so we can revert to that.
- 4.9 has the linux-libre project at our disposal, instead of gNewSense.
  So we use this. Unfortunatley that takes forever because we have to
  use sed because our version of gawk is too old/buggy. :( I plan to
  introduce very shortly 1. parallelism 2. 'sysc snapshot' which will
  start from sysc to avoid this. I do not want to use linux-libre
  tarballs because they make modificiations directly from this script
  (aka not easily verifiable, use the source!) and this script allows
  for much greater flexibility.
- We compile the initramfs ahead-of-build using the in-tree cpio
  generator instead of also building cpio to use less packages. We do
  NOT build the initramfs into the kernel like 2.6 (unsupported).
- Oh and fix a kexec-tools checksum.
2021-09-13 13:43:36 +10:00
fosslinux e225435983 Clear up storage space in linux-headers-5.10.41
Special case to free up space in the initramfs (linux tarball +
unpacked is MASSIVE)
2021-08-27 14:54:08 +10:00
fosslinux 1e19193408 Add make 3.82 (sysa) 2021-08-27 14:54:08 +10:00
fosslinux b93a931a53 Move to /usr prefix.
- This is much more standard and replaces /image in sysa and is the
  standard in sysc (avoids many issues).
- GCC needs to have a file created for some unknown reason.
- Checksums updated.
2021-08-27 14:54:08 +10:00
fosslinux ddd4f1bc81 Add kbd-1.15.
This also requires a patch to linux-headers; while we are at it, make
linux-headers PREFIX agnostic.
2021-08-27 14:54:08 +10:00
fosslinux 5c88f1c87f Add sysb and sysc scaffolding.
Now that we have the Linux Kernel built, we move to a full-disk (rather
than initramfs) setup in sysc. However, we cannot assume the seed kernel
has support for mounting hard drives. So, first we need to kexec into
sysb, which is used as a jumping off point to create the hard drive for
sysc.

Additionally, since 2.6.16 does not have support for on-demand initramfs
(initramfs must be built into kernel), we will have to rebuild the linux
kernel within sysb without the initramfs.

All of this process is not performed for chroot mode. Instead, we skip
sysb and jump straight to sysc, copying over appropriate data.

The python scripts have been changed slightly. Each sys* inherits
SysGeneral, which contains various functions which are not specific to
any sys* and simplifies those files. rootfs now also handles sysb and
sysc.

bootstrap.cfg also gives an indication whether we are running in a
chroot to avoid attempting to kexec/mount within a chroot.
2021-08-27 14:54:08 +10:00
fosslinux 925ce198c1 Add linux kernel 2.6.16.62. 2021-08-27 14:54:08 +10:00