commit: 0d1a1a5a19e76496b15844780f6a6c24459155dd
parent c6ca548d5b81b9f0b51224b6a68282a0a0a10dba
Author: Andrius Štikonas <andrius@stikonas.eu>
Date: Sat, 21 May 2022 19:23:47 +0100
Merge pull request #171 from doraskayo/early-update-checksums
Add support for --update-checksums in early bootstrap
Diffstat:
29 files changed, 316 insertions(+), 136 deletions(-)
diff --git a/.reuse/dep5 b/.reuse/dep5
@@ -9,6 +9,6 @@ Source: https://github.com/fosslinux/live-bootstrap
# Copyright: $YEAR $NAME <$CONTACT>
# License: ...
-Files: SHA256SUMS.sources sysa/pre-sha.sha256sums sysa/*/checksums sysa/SHA256SUMS.pkgs
+Files: SHA256SUMS.sources sysa/pre-sha.sha256sums sysa/*/*.checksums sysa/SHA256SUMS.pkgs
Copyright: none
License: MIT
diff --git a/DEVEL.md b/DEVEL.md
@@ -40,7 +40,7 @@ It then diverges based upon which driver is being used:
There are default functions run which can be overridden by an optional script
`package-version.sh` within the package-specific directory.
-In this folder, there are other folders/files. `src` and `checksums` are
+In this folder, there are other folders/files. `src` and `*.checksums` are
required, others are optional.
Permissable folders/files:
@@ -50,11 +50,8 @@ Permissable folders/files:
- `patches`: patches for the source.
- `src`: the upstream unmodified source code. This may be either a submodule or
nonexistent.
-- `checksums`: the checksums for the resulting binaries and libraries that
- are compiled and installed. This may be either a folder or a file. It should
- be a folder when there are multiple checksumming files required (normally
- multiple seperate passes) but a file when there is only one checksumming
- file.
+- `*.checksums`: files containing the checksums for the resulting binaries and
+libraries that are compiled and installed.
- Up to and including `patch`, `fletcher16` is used for the checksumming.
- After `patch`, `sha-2` is built which contains an external implementation of
`sha256sum`. We then use that currently for all remaining software.
diff --git a/sysa/after.kaem b/sysa/after.kaem
@@ -3,6 +3,7 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
# SPDX-FileCopyrightText: 2020-2022 fosslinux <fosslinux@aussies.space>
+# SPDX-FileCopyrightText: 2022 Dor Askayo <dor.askayo@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@@ -17,123 +18,47 @@ prefix=/usr
bindir=${prefix}/bin
libdir=${prefix}/lib
incdir=${prefix}/include
+srcdir=${prefix}/src
TMPDIR=/tmp # tmpdir is needed for patch to work
-# Environmental variables needed for mes
-NYACC_PKG=nyacc-1.00.2
-MES_PKG=mes-0.24
-MES_PREFIX=${sysa}/${MES_PKG}/build/${MES_PKG}
-GUILE_LOAD_PATH=${MES_PREFIX}/mes/module:${MES_PREFIX}/module:${sysa}/${MES_PKG}/build/${NYACC_PKG}/module
-mkdir -p ${prefix} ${bindir} ${libdir} ${incdir} ${TMPDIR}
-cd ${prefix}
+mkdir -p ${prefix} ${bindir} ${libdir} ${incdir} ${srcdir} ${TMPDIR}
# Remove remaining dependencies on /bin (stage0-posix directory)
-cp /${ARCH_DIR}/bin/blood-elf bin/blood-elf
-cp /${ARCH_DIR}/bin/catm bin/catm
-cp /${ARCH_DIR}/bin/chmod bin/chmod
-cp /${ARCH_DIR}/bin/get_machine bin/get_machine
-cp /${ARCH_DIR}/bin/hex2 bin/hex2
-cp /${ARCH_DIR}/bin/kaem bin/kaem
-cp /${ARCH_DIR}/bin/match bin/match
-cp /${ARCH_DIR}/bin/M1 bin/M1
-cp /${ARCH_DIR}/bin/M2-Planet bin/M2-Planet
-cp /${ARCH_DIR}/bin/mkdir bin/mkdir
-cp /${ARCH_DIR}/bin/sha256sum bin/sha256sum
-cp /${ARCH_DIR}/bin/ungz bin/ungz
-cp /${ARCH_DIR}/bin/untar bin/untar
-cp /${ARCH_DIR}/bin/cp bin/cp
-
-chmod 755 bin/blood-elf
-chmod 755 bin/catm
-chmod 755 bin/chmod
-chmod 755 bin/cp
-chmod 755 bin/get_machine
-chmod 755 bin/hex2
-chmod 755 bin/kaem
-chmod 755 bin/match
-chmod 755 bin/M1
-chmod 755 bin/M2-Planet
-chmod 755 bin/mkdir
-chmod 755 bin/sha256sum
-chmod 755 bin/ungz
-chmod 755 bin/untar
+cp /${ARCH_DIR}/bin/blood-elf ${bindir}/blood-elf
+cp /${ARCH_DIR}/bin/catm ${bindir}/catm
+cp /${ARCH_DIR}/bin/chmod ${bindir}/chmod
+cp /${ARCH_DIR}/bin/get_machine ${bindir}/get_machine
+cp /${ARCH_DIR}/bin/hex2 ${bindir}/hex2
+cp /${ARCH_DIR}/bin/kaem ${bindir}/kaem
+cp /${ARCH_DIR}/bin/match ${bindir}/match
+cp /${ARCH_DIR}/bin/M1 ${bindir}/M1
+cp /${ARCH_DIR}/bin/M2-Planet ${bindir}/M2-Planet
+cp /${ARCH_DIR}/bin/mkdir ${bindir}/mkdir
+cp /${ARCH_DIR}/bin/sha256sum ${bindir}/sha256sum
+cp /${ARCH_DIR}/bin/ungz ${bindir}/ungz
+cp /${ARCH_DIR}/bin/untar ${bindir}/untar
+cp /${ARCH_DIR}/bin/cp ${bindir}/cp
+
+chmod 755 ${bindir}/blood-elf
+chmod 755 ${bindir}/catm
+chmod 755 ${bindir}/chmod
+chmod 755 ${bindir}/cp
+chmod 755 ${bindir}/get_machine
+chmod 755 ${bindir}/hex2
+chmod 755 ${bindir}/kaem
+chmod 755 ${bindir}/match
+chmod 755 ${bindir}/M1
+chmod 755 ${bindir}/M2-Planet
+chmod 755 ${bindir}/mkdir
+chmod 755 ${bindir}/sha256sum
+chmod 755 ${bindir}/ungz
+chmod 755 ${bindir}/untar
PATH=${bindir}
cd ${sysa}
-# mes
-pkg=${MES_PKG}
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# tcc 0.9.26
-pkg="tcc-0.9.26"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-libdir=${libdir}/mes
-
-# make
-pkg="make-3.80"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# gzip
-pkg="gzip-1.2.4"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# tar
-pkg="tar-1.12"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# sed
-pkg="sed-4.0.9"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# patch
-pkg="patch-2.5.9"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# bzip2
-pkg="bzip2-1.0.8"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# tcc 0.9.27
-pkg="tcc-0.9.27"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# coreutils
-pkg="coreutils-5.0"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# heirloom-devtools
-pkg="heirloom-devtools-070527"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
-
-# bash
-pkg="bash-2.05b"
-cd ${pkg}
-kaem --file ${pkg}.kaem
-cd ..
+catm run2.kaem bootstrap.cfg run.kaem
+chmod +x run2.kaem
-exec bash run.sh
+kaem --file run2.kaem
diff --git a/sysa/bash-2.05b/checksums b/sysa/bash-2.05b/bash-2.05b.checksums
diff --git a/sysa/bash-2.05b/bash-2.05b.kaem b/sysa/bash-2.05b/bash-2.05b.kaem
@@ -51,4 +51,11 @@ ln -s ${prefix}/bin/bash ${prefix}/bin/sh
cd ../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/bash
+
+ install ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/bzip2-1.0.8/checksums b/sysa/bzip2-1.0.8/bzip2-1.0.8.checksums
diff --git a/sysa/bzip2-1.0.8/bzip2-1.0.8.kaem b/sysa/bzip2-1.0.8/bzip2-1.0.8.kaem
@@ -35,4 +35,11 @@ bzip2 --help
cd ../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/bzip2
+
+ cp ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/coreutils-5.0/checksums b/sysa/coreutils-5.0/coreutils-5.0.checksums
diff --git a/sysa/coreutils-5.0/coreutils-5.0.kaem b/sysa/coreutils-5.0/coreutils-5.0.kaem
@@ -38,4 +38,64 @@ cd ../..
rm -r src/
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/install \
+ /usr/bin/basename \
+ /usr/bin/cat \
+ /usr/bin/chmod \
+ /usr/bin/cksum \
+ /usr/bin/cp \
+ /usr/bin/csplit \
+ /usr/bin/cut \
+ /usr/bin/echo \
+ /usr/bin/expand \
+ /usr/bin/factor \
+ /usr/bin/false \
+ /usr/bin/fmt \
+ /usr/bin/fold \
+ /usr/bin/head \
+ /usr/bin/id \
+ /usr/bin/join \
+ /usr/bin/kill \
+ /usr/bin/link \
+ /usr/bin/ln \
+ /usr/bin/logname \
+ /usr/bin/mkfifo \
+ /usr/bin/mkdir \
+ /usr/bin/mknod \
+ /usr/bin/nl \
+ /usr/bin/od \
+ /usr/bin/paste \
+ /usr/bin/pathchk \
+ /usr/bin/printf \
+ /usr/bin/ptx \
+ /usr/bin/pwd \
+ /usr/bin/readlink \
+ /usr/bin/rmdir \
+ /usr/bin/seq \
+ /usr/bin/sleep \
+ /usr/bin/split \
+ /usr/bin/sum \
+ /usr/bin/tail \
+ /usr/bin/tee \
+ /usr/bin/tr \
+ /usr/bin/tsort \
+ /usr/bin/unexpand \
+ /usr/bin/unlink \
+ /usr/bin/wc \
+ /usr/bin/whoami \
+ /usr/bin/test \
+ /usr/bin/touch \
+ /usr/bin/true \
+ /usr/bin/yes \
+ /usr/bin/ls \
+ /usr/bin/md5sum \
+ /usr/bin/mv \
+ /usr/bin/rm \
+ /usr/bin/sha1sum
+
+ install ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/gzip-1.2.4/checksums b/sysa/gzip-1.2.4/gzip-1.2.4.checksums
diff --git a/sysa/gzip-1.2.4/gzip-1.2.4.kaem b/sysa/gzip-1.2.4/gzip-1.2.4.kaem
@@ -37,4 +37,11 @@ chmod 755 ${bindir}/gunzip
cd ../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/gzip
+
+ cp ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/heirloom-devtools-070527/checksums b/sysa/heirloom-devtools-070527/heirloom-devtools-070527.checksums
diff --git a/sysa/heirloom-devtools-070527/heirloom-devtools-070527.kaem b/sysa/heirloom-devtools-070527/heirloom-devtools-070527.kaem
@@ -44,4 +44,15 @@ install -m 644 ncform ${lexdir}
cd ../../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/yacc \
+ /usr/bin/lex \
+ /usr/lib/mes/libl.a \
+ /yaccpar \
+ /lex/ncform
+
+ install ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/make-3.80/checksums b/sysa/make-3.80/make-3.80.checksums
diff --git a/sysa/make-3.80/make-3.80.kaem b/sysa/make-3.80/make-3.80.kaem
@@ -55,4 +55,11 @@ make --version
cd ../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/make
+
+ cp ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/mes-0.24/checksums b/sysa/mes-0.24/mes-0.24.checksums
diff --git a/sysa/mes-0.24/mes-0.24.kaem b/sysa/mes-0.24/mes-0.24.kaem
@@ -314,6 +314,27 @@ cp include/sys/ucontext.h ${incdir}/sys/ucontext.h
cp include/sys/user.h ${incdir}/sys/user.h
cp include/sys/wait.h ${incdir}/sys/wait.h
-# Checksums
cd ../..
-sha256sum -c checksums
+
+# Checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/mes \
+ /usr/bin/mes-m2 \
+ /usr/bin/mescc.scm \
+ /usr/lib/x86-mes/crt1.s \
+ /usr/lib/x86-mes/crt1.o \
+ /usr/lib/x86-mes/x86.M1 \
+ /usr/lib/x86-mes/libmescc.s \
+ /usr/lib/x86-mes/libc+tcc.s \
+ /usr/lib/x86-mes/libc.s \
+ /usr/lib/x86-mes/libmescc.a \
+ /usr/lib/x86-mes/libc+tcc.a \
+ /usr/lib/x86-mes/libc.a \
+ /usr/lib/linux/x86-mes/elf32-header.hex2 \
+ /usr/lib/linux/x86-mes/elf32-footer-single-main.hex2
+
+ cp ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/patch-2.5.9/checksums b/sysa/patch-2.5.9/patch-2.5.9.checksums
diff --git a/sysa/patch-2.5.9/patch-2.5.9.kaem b/sysa/patch-2.5.9/patch-2.5.9.kaem
@@ -34,4 +34,11 @@ chmod 755 ${prefix}/bin/patch
cd ../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/patch
+
+ cp ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/run.kaem b/sysa/run.kaem
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
+# SPDX-FileCopyrightText: 2020-2022 fosslinux <fosslinux@aussies.space>
+# SPDX-FileCopyrightText: 2022 Dor Askayo <dor.askayo@gmail.com>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+set -ex
+
+# Environmental variables needed for mes
+NYACC_PKG=nyacc-1.00.2
+MES_PKG=mes-0.24
+MES_PREFIX=${sysa}/${MES_PKG}/build/${MES_PKG}
+GUILE_LOAD_PATH=${MES_PREFIX}/mes/module:${MES_PREFIX}/module:${sysa}/${MES_PKG}/build/${NYACC_PKG}/module
+
+# mes
+pkg=${MES_PKG}
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# tcc 0.9.26
+pkg="tcc-0.9.26"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+libdir=${libdir}/mes
+
+# make
+pkg="make-3.80"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# gzip
+pkg="gzip-1.2.4"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# tar
+pkg="tar-1.12"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# sed
+pkg="sed-4.0.9"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# patch
+pkg="patch-2.5.9"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# bzip2
+pkg="bzip2-1.0.8"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# tcc 0.9.27
+pkg="tcc-0.9.27"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# coreutils
+pkg="coreutils-5.0"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# heirloom-devtools
+pkg="heirloom-devtools-070527"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+# bash
+pkg="bash-2.05b"
+cd ${pkg}
+kaem --file ${pkg}.kaem
+cd ..
+
+exec bash run.sh
diff --git a/sysa/run.sh b/sysa/run.sh
@@ -16,19 +16,18 @@ export PREFIX="${prefix}"
export SOURCES="${sysa}"
export DISTFILES="${sysa}/distfiles"
export DESTDIR=/tmp/destdir
-export REPO="${PREFIX}/src/repo"
+# shellcheck disable=SC2154
+export SRCDIR="${srcdir}"
create_sysb() {
# Copy everything in
echo "Creating sysb rootfs"
mkdir -p "/sysb${PREFIX}"
- for d in bin include lib libexec share; do
+ for d in bin include lib libexec share src; do
# Minimise RAM (storage) use - use hard links
cp -rl "${PREFIX}/${d}" "/sysb${PREFIX}/${d}"
done
- mkdir /sysb/usr/src
- cp "${SOURCES}/helpers.sh" "${SOURCES}/SHA256SUMS.pkgs" "${SOURCES}/bootstrap.cfg" /sysb/usr/src/
- cp -rl "${REPO}" "/sysb/${REPO}"
+ cp "${SOURCES}/helpers.sh" "${SOURCES}/SHA256SUMS.pkgs" "${SOURCES}/bootstrap.cfg" "/sysb/${SRCDIR}"
populate_device_nodes /sysb
echo "Creating sysb initramfs"
gen_initramfs_list.sh -o "${PREFIX}/boot/initramfs-sysb.cpio.gz" /sysb
@@ -101,7 +100,7 @@ echo "Thank you! All done."
echo "ARCH=${ARCH}" >> "${SOURCES}/bootstrap.cfg"
-mkdir -p "${DESTDIR}" "${REPO}" /dev
+mkdir -p "${DESTDIR}" "${SRCDIR}/repo" /dev
build flex-2.5.11
diff --git a/sysa/sed-4.0.9/checksums b/sysa/sed-4.0.9/sed-4.0.9.checksums
diff --git a/sysa/sed-4.0.9/sed-4.0.9.kaem b/sysa/sed-4.0.9/sed-4.0.9.kaem
@@ -31,4 +31,11 @@ chmod 755 ${prefix}/bin/sed
cd ../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/sed
+
+ cp ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/tar-1.12/checksums b/sysa/tar-1.12/tar-1.12.checksums
diff --git a/sysa/tar-1.12/tar-1.12.kaem b/sysa/tar-1.12/tar-1.12.kaem
@@ -34,4 +34,11 @@ chmod 755 ${prefix}/bin/tar
cd ../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/tar
+
+ cp ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/tcc-0.9.26/checksums b/sysa/tcc-0.9.26/tcc-0.9.26.checksums
diff --git a/sysa/tcc-0.9.26/tcc-0.9.26.kaem b/sysa/tcc-0.9.26/tcc-0.9.26.kaem
@@ -388,4 +388,23 @@ tcc -ar cr ${libdir}/libgetopt.a getopt.o
cd ../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/mes-tcc \
+ /usr/bin/boot0-tcc \
+ /usr/bin/boot1-tcc \
+ /usr/bin/boot2-tcc \
+ /usr/bin/boot3-tcc \
+ /usr/bin/boot4-tcc \
+ /usr/bin/tcc \
+ /usr/lib/mes/libc.a \
+ /usr/lib/mes/libgetopt.a \
+ /usr/lib/mes/crt1.o \
+ /usr/lib/mes/crti.o \
+ /usr/lib/mes/crtn.o \
+ /usr/lib/mes/tcc/libtcc1.a
+
+ cp ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/sysa/tcc-0.9.27/checksums b/sysa/tcc-0.9.27/tcc-0.9.27.checksums
diff --git a/sysa/tcc-0.9.27/tcc-0.9.27.kaem b/sysa/tcc-0.9.27/tcc-0.9.27.kaem
@@ -47,4 +47,11 @@ tcc -version
cd ../..
# Checksums
-sha256sum -c checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/tcc
+
+ cp ${pkg}.checksums ${srcdir}
+else
+ sha256sum -c ${pkg}.checksums
+fi