commit: dd8ce0e51695c036021ac795dc2ef4e8da409e18
parent d3477570b8dc71ecdaec8c0154a40887353ebbfb
Author: Eduardo Sánchez Muñoz <eduardosm-dev@e64.io>
Date: Fri, 14 Apr 2023 23:16:05 +0200
Add option to build kernels and related tools during chroot and bwrap builds
The main motivations to have this are:
* Detect checksum changes with chroot/bwrap builds
* Avoid removing checksums from `SHA256SUMS.pkgs` when unsing `--update-checksums`
* Find crashes that would otherwise be missed in `builder-hex0`
Diffstat:
3 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/rootfs.py b/rootfs.py
@@ -39,6 +39,7 @@ def create_configuration_file(args):
config.write("KERNEL_BOOTSTRAP=True\n")
else:
config.write("KERNEL_BOOTSTRAP=False\n")
+ config.write(f"BUILD_KERNELS={args.build_kernels}\n")
# pylint: disable=too-many-statements
def main():
@@ -73,6 +74,9 @@ def main():
parser.add_argument("--external-sources",
help="Download sources externally from live-bootstrap.",
action="store_true")
+ parser.add_argument("--build-kernels",
+ help="Also build kernels in chroot and bwrap builds.",
+ action="store_true")
parser.add_argument("--no-create-config",
help="Do not automatically create config file",
action="store_true")
diff --git a/sysa/run.kaem b/sysa/run.kaem
@@ -45,7 +45,17 @@ cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
+BUILD_FIWIX=False
+
if match x${KERNEL_BOOTSTRAP} xTrue; then
+ BUILD_FIWIX=True
+fi
+
+if match x${BUILD_KERNELS} xTrue; then
+ BUILD_FIWIX=True
+fi
+
+if match x${BUILD_FIWIX} xTrue; then
# The Fiwix kernel
pkg="fiwix-1.4.0-lb1"
cd ${pkg}
@@ -58,14 +68,16 @@ if match x${KERNEL_BOOTSTRAP} xTrue; then
kaem --verbose --file ${pkg}.kaem
cd ..
- # Build the ext2 image
- make_fiwix_initrd
-
# Live boot loader for Fiwix
pkg="kexec-fiwix"
cd ${pkg}
kaem --verbose --file ${pkg}.kaem
cd ..
+fi
+
+if match x${KERNEL_BOOTSTRAP} xTrue; then
+ # Build the ext2 image
+ make_fiwix_initrd
# Boot Fiwix
kexec-fiwix
diff --git a/sysa/run2.sh b/sysa/run2.sh
@@ -73,7 +73,7 @@ build ed-1.4
build bc-1.07.1
-if [ "${CHROOT}" = False ]; then
+if [ "${CHROOT}" = False ] || [ "${BUILD_KERNELS}" = True ]; then
# Save because linux deletes all distfiles to save space
cp "${DISTFILES}"/musl-1.2.3.tar.gz "${SOURCES}"/musl-1.2.3
fi
@@ -86,13 +86,15 @@ grep --no-filename '^build' "${SOURCES}"/run*.sh | grep -v musl-1.2.3 | sed "s/b
rm -rf "${SOURCES:?}/${p:?}"
done
-if [ "${CHROOT}" = False ]; then
+if [ "${CHROOT}" = False ] || [ "${BUILD_KERNELS}" = True ]; then
build kexec-tools-2.0.22
build linux-4.9.10
+fi
- build musl-1.2.3 '' no-patches
+build musl-1.2.3 '' no-patches
+if [ "${CHROOT}" = False ]; then
create_sysb
if [ "${KERNEL_BOOTSTRAP}" = True ]; then
echo "Kernel bootstrapping successful."
@@ -101,8 +103,6 @@ if [ "${CHROOT}" = False ]; then
go_sysb
fi
else
- build musl-1.2.3 '' no-patches
-
# In chroot mode transition directly into System C.
SYSC=/sysc_image
sys_transfer "${SYSC}" /sysc gzip patch