The gap between the chroot and non-chroot bootstrap modes started in,
7ecad37 because BuildStream's sandbox was missing some device nodes.
With the latest version of buildbox-run-bubblewrap, a few of the
missing devices were made available to BuildStream's sandbox and
there is no longer a need to keep this gap. In fact, compatibilty
with newer BuildStream versions now requires these devices to be
present.
This change also partially reverts d0a5221, which had to remove
/dev/ptmx as a consequence of the aforementioned gap.
A tiny bootloader bootstrap has been added to compile the builder-hex0 kernel from hex0 source.
The boot compiler is builder-hex0-x86-stage1.hex0 and builder-hex0-x86-stage1.bin.
The builder-hex0 kernel is now named builder-hex0-x86-stage2.hex0.
The inclusion of a binary seed resolves the problem with the previous strategy which used an
architecture-specific hex0 compiler.
If sysb detects a full disk (i.e. DISK=sda) it now partitions the disk unconditionally because
previously fdisk was reporting existing but empty partitions which resulted in no
parititions being created.
e2fsprogs is now built with --disable-tls because musl was built on Fiwix without full threading
support and mkfs.ext4 was crashing without disabling thread local storage.
kexec-linux writes the linux kernel and initramfs to a RAM drive on Fiwix which ensure
a pre-allocated contiguous memory block. The following is written to the ram drive:
a 32-bit number which is the size of the kernel in bytes, a 32-bit number which is the size
of the initramfs in bytes, followed by the Linux kernel image, followed by the initramfs.
kexec-fiwix invokes a sync syscall to ensure all writes are flushed to
the ram drive and then initiates the kexec by shutting down Fiwix with a reboot syscall.
Fiwix knows whether and how to perform the kexec based on kernel parameters passed to it.
- Rather than using part-by-part build of Binutils, use autogen and full
./configure, make build.
- Enable some other modern features, including the gold linker, threaded
linking and 64-bit linking.
- This allows GCC 12 to build unhindered by binutils.
The motivations for this are complicated, but on musl systems, musl
will use its own libssp implementation, so GCC's libssp is not required.
Not to mention that GCC's libssp implementation is questionable at best.
This is the approach taken by the two major musl distributions - Alpine
Linux and Void Linux.
This is achieved by transplanting 3.0.7's psyntax-pp.scm into 3.0.9
which works flawlessly.
This is required for parallelism, since <3.0.8 is irreproducible when
-jN is used.
The source tarball is provided as part of sysa distfiles and copied to sysc, which resolves the issue of finding a reliable plain HTTP mirror for curl.
Splitted from https://github.com/fosslinux/live-bootstrap/pull/253.
* get_files produces list without extra ./ between extra subdirectories.
* Emtry directories are also included.
* Simplified src_pkg function.
* Use local variables instead of unsetting global variables in src_apply.