2023-02-26 09:00:15 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
|
|
|
|
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
|
|
|
|
# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
|
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2023-03-05 20:27:12 +00:00
|
|
|
# shellcheck source=/dev/null
|
|
|
|
. .env
|
|
|
|
|
2023-02-26 09:00:15 +00:00
|
|
|
# shellcheck source=sysa/helpers.sh
|
|
|
|
. helpers.sh
|
|
|
|
|
|
|
|
create_sysb() {
|
|
|
|
# Copy everything in
|
|
|
|
echo "Creating sysb rootfs"
|
|
|
|
sys_transfer /sysb_image /sysb gzip patch
|
|
|
|
cp -rl /sysc /sysb_image/sysc_src
|
|
|
|
echo "Creating sysb initramfs"
|
2023-03-11 00:08:45 +00:00
|
|
|
gen_initramfs_list.sh -o "/boot/initramfs-sysb.cpio.gz" /sysb_image
|
2023-02-26 09:00:15 +00:00
|
|
|
rm -rf /sysb /sysb_image # Cleanup
|
|
|
|
}
|
|
|
|
|
|
|
|
go_sysb() {
|
2023-05-10 15:33:42 +01:00
|
|
|
if [ "${KERNEL_BOOTSTRAP}" = True ]; then
|
|
|
|
kexec-linux "/dev/ram1" "/boot/linux-4.9.10" "/boot/initramfs-sysb.cpio.gz"
|
|
|
|
else
|
|
|
|
# Mount proc for kexec
|
|
|
|
mkdir /proc /etc
|
|
|
|
mount -t proc proc /proc
|
|
|
|
# kexec time
|
|
|
|
echo "Loading kernel + sysb initramfs using kexec"
|
|
|
|
kexec -l "/boot/linux-4.9.10" --console-serial \
|
|
|
|
--initrd="/boot/initramfs-sysb.cpio.gz" \
|
|
|
|
--append="init=/init console=ttyS0"
|
|
|
|
echo "kexecing into sysb"
|
|
|
|
kexec -e
|
|
|
|
fi
|
2023-02-26 09:00:15 +00:00
|
|
|
}
|
|
|
|
|
2023-02-26 09:14:01 +00:00
|
|
|
build automake-1.15.1
|
|
|
|
|
2023-02-28 00:32:18 +00:00
|
|
|
build binutils-2.30
|
2023-02-26 09:00:15 +00:00
|
|
|
|
|
|
|
# Build musl with fewer patches
|
|
|
|
build musl-1.1.24 binutils-rebuild.sh patches-pass3
|
|
|
|
|
|
|
|
# Rebuild tcc-musl using new musl
|
|
|
|
build tcc-0.9.27 tcc-musl-pass3.sh patches-musl-pass3
|
|
|
|
|
|
|
|
populate_device_nodes
|
|
|
|
|
|
|
|
build gcc-4.0.4 pass1.sh
|
|
|
|
|
|
|
|
build findutils-4.2.33
|
|
|
|
|
|
|
|
build musl-1.2.3
|
|
|
|
|
|
|
|
build linux-headers-5.10.41 '' '' linux-5.10.41
|
|
|
|
|
|
|
|
build gcc-4.0.4 pass2.sh
|
|
|
|
|
|
|
|
build util-linux-2.19.1
|
|
|
|
|
|
|
|
build e2fsprogs-1.45.7
|
|
|
|
|
2023-04-26 14:29:24 +01:00
|
|
|
build dhcpcd-10.0.1
|
2023-02-26 09:00:15 +00:00
|
|
|
|
|
|
|
build kbd-1.15
|
|
|
|
|
|
|
|
build make-3.82
|
|
|
|
|
|
|
|
build ed-1.4
|
|
|
|
|
|
|
|
build bc-1.07.1
|
|
|
|
|
2023-04-14 22:16:05 +01:00
|
|
|
if [ "${CHROOT}" = False ] || [ "${BUILD_KERNELS}" = True ]; then
|
2023-03-31 19:08:50 +01:00
|
|
|
# Save because linux deletes all distfiles to save space
|
|
|
|
cp "${DISTFILES}"/musl-1.2.3.tar.gz "${SOURCES}"/musl-1.2.3
|
|
|
|
fi
|
|
|
|
|
2023-03-23 17:35:38 +00:00
|
|
|
mkdir -p /sysc/distfiles
|
|
|
|
cp "${DISTFILES}"/curl-7.88.1.tar.bz2 /sysc/distfiles
|
|
|
|
|
2023-02-26 09:00:15 +00:00
|
|
|
# Clear up some RAM space
|
2023-03-31 19:08:50 +01:00
|
|
|
grep --no-filename '^build' "${SOURCES}"/run*.sh | grep -v musl-1.2.3 | sed "s/build //" | sed "s/ .*$//" | while read -r p ; do
|
2023-02-26 09:00:15 +00:00
|
|
|
rm -rf "${SOURCES:?}/${p:?}"
|
|
|
|
done
|
|
|
|
|
2023-04-14 22:16:05 +01:00
|
|
|
if [ "${CHROOT}" = False ] || [ "${BUILD_KERNELS}" = True ]; then
|
2023-05-20 16:16:27 +01:00
|
|
|
build kexec-linux-1.0.0
|
|
|
|
|
2023-02-26 09:00:15 +00:00
|
|
|
build kexec-tools-2.0.22
|
|
|
|
|
|
|
|
build linux-4.9.10
|
2023-04-14 22:16:05 +01:00
|
|
|
fi
|
2023-02-26 09:00:15 +00:00
|
|
|
|
2023-04-14 22:16:05 +01:00
|
|
|
build musl-1.2.3 '' no-patches
|
2023-02-26 09:00:15 +00:00
|
|
|
|
2023-04-14 22:16:05 +01:00
|
|
|
if [ "${CHROOT}" = False ]; then
|
2023-03-31 19:08:50 +01:00
|
|
|
create_sysb
|
2023-05-10 15:33:42 +01:00
|
|
|
go_sysb
|
2023-03-31 19:08:50 +01:00
|
|
|
else
|
|
|
|
# In chroot mode transition directly into System C.
|
|
|
|
SYSC=/sysc_image
|
|
|
|
sys_transfer "${SYSC}" /sysc gzip patch
|
|
|
|
if [ "${CHROOT_ONLY_SYSA}" != True ]; then
|
|
|
|
exec chroot "${SYSC}" /init
|
|
|
|
fi
|
2023-02-26 09:00:15 +00:00
|
|
|
fi
|