Merge pull request #171 from doraskayo/early-update-checksums

Add support for --update-checksums in early bootstrap
This commit is contained in:
Andrius Štikonas 2022-05-21 19:23:47 +01:00 committed by GitHub
commit 0d1a1a5a19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 315 additions and 135 deletions

View File

@ -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

View File

@ -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.

View File

@ -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
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 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
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 ..
catm run2.kaem bootstrap.cfg run.kaem
chmod +x run2.kaem
# 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
kaem --file run2.kaem

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

92
sysa/run.kaem Executable file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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