Commit Graph

105 Commits

Author SHA1 Message Date
fosslinux 6ea1b8e295 Add e2fsprogs 1.45.7
Additionally, fix downloading in chunks for some files.
2022-06-10 13:30:58 +10:00
fosslinux 060f44e5a5 Add curl 7.83.0 2022-06-10 13:30:58 +10:00
Dor Askayo 653f31b59f Add support for --update-checksums in early bootstrap
This allows creating *.checksums files instead of checking against
them when UPDATE_CHECKSUMS is set to True in bootstrap.cfg.

The checksums are also copied to /usr/src so they can be accessed
easily after the bootstrap completes.
2022-05-21 20:51:41 +03:00
Andrius Štikonas 081912058f
Merge pull request #161 from doraskayo/local-bootstrap-config
Don't export variables from bootstrap.cfg
2022-05-19 20:45:35 +01:00
Andrius Štikonas 21f4174dc3 Fix packaging issues
* Bzip2 was manually installed directly into filesystem, so bzip2 package was empty.
  Fixed by installing it to destdir. bzip2 moves out its binary before installing
  its own package.
* sha256sum from stage0-posix was not checking any checksums because it does not
  accept piped input. Fixed by using temporary file.
* grep was broken for a short time (but with fixed bzip2 package this caused failures)
  due to touch creating grep file of zero size (egrep symlink was touched).
  Fixed by implementing touch -h

Resolves #156, resolves #166, resolves #167
2022-05-17 10:19:50 +01:00
Dor Askayo fcea28eb38 Don't export variables from bootstrap.cfg
These variables should only affect live-bootstrap's scripts, yet they
currently "pollute" the build environment of most packages during the
bootstrap unnecessarily.

This change also makes bootstrap.cfg keep the same format between the
different bootstrap stages, which simplifies the input to each step.
2022-05-15 18:15:30 +03:00
Dor Askayo fde1bbc571 Update bootstrap.cfg immediately after interactive prompts
This improves the readablility of the scripts. It also helps avoid
cases where a variable could be set twice in bootstrap.cfg, such as
the DISK variable.
2022-05-15 18:15:30 +03:00
Andrius Štikonas 98ba2759b2 Upgrade musl to 1.2.3. 2022-05-12 00:41:17 +01:00
Andrius Štikonas ef0030bbf3 Reinstall system from packages during sysa->sysc and sysb->sysc transitions. 2022-05-09 22:53:46 +01:00
Andrius Štikonas 424aa5be38 Move from mes-m2 to mes-0.24. 2022-05-05 23:59:52 +01:00
fosslinux f1600467a7 Variety of improvements
- Rename sources to distfiles for clarity.
- Per sys(a/c) distfiles to reduce rootfs.py processing and reduce RAM
  usage in sysa.
- Canonicalise early kaem mes/tcc files to kaem script conventions.
- Cleanup unused setup in python.
2022-05-05 17:44:47 +10:00
Andrius Štikonas 5b032cb46c rootfs.py refactoring.
Switch to bzip2 packages
Move most of the preprocessing done by rootfs.py
into kaem and bash scripts inside live-bootstrap.
2022-04-21 00:49:56 +01:00
Andrius Štikonas 102e21e336 Add REPO variable to run.sh. 2022-04-11 18:53:35 +01:00
Andrius Štikonas 7a8567dc78 Rename /after to /sysa. 2022-04-11 18:53:35 +01:00
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 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 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
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
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
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 1e19193408 Add make 3.82 (sysa) 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
fosslinux 950f339272 Add util-linux 2.19.1. 2021-08-27 14:54:08 +10:00
fosslinux bfe7a67acf Add kexec-tools 2.0.22. 2021-08-27 14:54:08 +10:00
fosslinux c41d2817e8 Add linux headers 5.10.41.
Needed for kexec-tools.

Not equivalent to kernel version; kernel API is stable and does not
change. Therefore we can use any (latest) version.
2021-08-27 14:54:07 +10:00
Andrius Štikonas 4b3d36afb8 Downgrade autoconf to 2.64. 2021-07-05 19:12:19 +01:00
Andrius Štikonas c8784cbcd3 Split installed files out of /after into /image. 2021-06-29 17:49:34 +01:00
fosslinux c3c031fc51 run.sh: replace default arguments written out with ''
'' matches as an empty string which bash evaluates to be nothing,
tricking it into using the alternative text.
2021-05-26 07:27:22 +10:00
Andrius Štikonas 3dfe3dc0f0 Split mes libc into a separate source package.
Drop one of the mes git submodules.
2021-04-18 13:13:44 +01:00
Andrius Štikonas 419cd74d92 Move tcc 0.9.27 after bzip2.
This also allows to merge two builds of tcc 0.9.27.
Drop tcc 0.9.27 git submodule.
2021-04-17 01:29:31 +01:00
Andrius Štikonas 246cc10ab5 GNU Autoconf 2.65 2021-03-31 18:14:01 +01:00
Andrius Štikonas 20a4d3af9e GNU Automake 1.10.3 2021-03-31 18:14:01 +01:00
Andrius Štikonas a63a01c56b GNU Libtool 2.2.4 2021-03-31 18:14:01 +01:00
Andrius Štikonas 28779bc9ba GNU findutils 4.2.33 2021-03-31 18:14:01 +01:00
bauen1 3d1a7b6580
Make usage of /dev more failure proof
/dev/console is not needed / used.
2021-03-30 23:43:40 +02:00
Andrius Štikonas e30b56cb3e Merge remote-tracking branch 'pder/coreutils' into gcc 2021-03-24 19:37:17 +00:00
Andrius Štikonas 634cae7b68 Build bash 5.1 only after GCC. 2021-03-24 19:37:12 +00:00
Paul Dersey 366dc2eac5 Replace coreutils-6.3 with coreutils-6.10
Build only date, mktemp, and sha256sum
2021-03-24 15:30:37 -04:00