Merge pull request #39 from fosslinux/checksumming

Checksumming
This commit is contained in:
fosslinux 2021-02-20 20:32:58 +11:00 committed by GitHub
commit 7099319284
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
70 changed files with 1154 additions and 78 deletions

View File

@ -9,6 +9,6 @@ Source: https://github.com/fosslinux/live-bootstrap
# Copyright: $YEAR $NAME <$CONTACT>
# License: ...
Files: SHA256SUMS.sources
Files: SHA256SUMS.sources sysa/pre-sha.sha256sums sysa/*/checksums sysa/*/checksums/*
Copyright: none
License: MIT

View File

@ -40,14 +40,36 @@ 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. `src` is required, others are optional.
Permissable folders:
In this folder, there are other folders/files. `src` and `checksums` are
required, others are optional.
Permissable folders/files:
- `files`: auxiliary files required for the build distributed by live-bootstrap.
- `mk`: makefiles.
- `patches`: patches for the source.
- `src`: the upstream unmodified source code. This may be either a submodule or
nonexistant.
- `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.
- 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.
- To extract the binaries to get their checksums, use of chroot mode is
recommended (i.e. `./rootfs.sh chroot`).
Furthermore, there is a special top-level dir `dev-utils`. In here are
appropriate utilities that are often useful for development and not generally
included on normal systems, or are specific to live-bootstrap. Each program
should be contained within its own directory and include:
- source code
- compilation script
The directory m2-functions is used for M2-Planet functions (currently).
## Conventions

22
LICENSES/Unlicense.txt Normal file
View File

@ -0,0 +1,22 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute
this software, either in source code form or as a compiled binary, for any
purpose, commercial or non-commercial, and by any means.
In jurisdictions that recognize copyright laws, the author or authors of this
software dedicate any and all copyright interest in the software to the public
domain. We make this dedication for the benefit of the public at large and
to the detriment of our heirs and
successors. We intend this dedication to be an overt act of relinquishment
in perpetuity of all present and future rights to this software under copyright
law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <http://unlicense.org/>

View File

@ -17,3 +17,4 @@ ecb5c6469d732bcf01d6ec1afe9e64f1668caba5bfdb103c28d7f537ba3cdb8a patch-2.5.9.ta
9fa29beb2fc4a3c373829fc051830796de301f32a719d0b52a400d1719bbd7b1 perl-5.003.tar.gz
1184478b298978b164a383ed5661e3a117c48ab97d6d0ab7ef614cdbe918b9eb perl5.004_05.tar.gz
c6c37e888b136ccefab903c51149f4b7bd659d69d4aea21245f61053a57aa60a tar-1.12.tar.gz
404a8d72427a559c074e581bf8f7d5a73283faf249cd3faf6dc1c6faf97d07c7 sha-2-61555d.tar.gz

8
dev-utils/fletcher16-gen/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: MIT
fletcher16.M1
fletcher16-footer.M1
fletcher16.hex2
fletcher16-gen

View File

@ -0,0 +1,42 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
set -ex
M2-Planet \
--architecture x86 \
-f ../m2-functions/in_set.c \
-f ../m2-functions/file_print.c \
-f ../m2-functions/numerate_number.c \
-f ../m2-functions/string.c \
-f ../../sysa/mescc-tools-seed/src/mescc-tools-seed/M2-Planet/test/common_x86/functions/file.c \
-f ../../sysa/mescc-tools-seed/src/mescc-tools-seed/M2-Planet/test/common_x86/functions/exit.c \
-f ../m2-functions/require.c \
-f ../../sysa/mescc-tools-seed/src/mescc-tools-seed/M2-Planet/test/common_x86/functions/malloc.c \
-f ../../sysa/mescc-tools-seed/src/mescc-tools-seed/M2-Planet/functions/calloc.c \
-f fletcher16-gen.c \
-o fletcher16.M1 \
--debug
blood-elf -f fletcher16.M1 -o fletcher16-footer.M1
M1 \
-f ../../sysa/mescc-tools-seed/src/mescc-tools-seed/M2-Planet/test/common_x86/x86_defs.M1 \
-f ../../sysa/mescc-tools-seed/src/mescc-tools-seed/M2-Planet/test/common_x86/libc-core.M1 \
-f fletcher16.M1 \
-f fletcher16-footer.M1 \
--LittleEndian \
--architecture x86 \
-o fletcher16.hex2
hex2 \
-f ../../sysa/mescc-tools-seed/src/mescc-tools-seed/M2-Planet/test/common_x86/ELF-i386-debug.hex2 \
-f fletcher16.hex2 \
--LittleEndian \
--architecture x86 \
--BaseAddress 0x8048000 \
-o fletcher16-gen \
--exec_enable

View File

@ -0,0 +1,40 @@
/*
* SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include <stdlib.h>
#include <stdio.h>
#define BUF_SIZE 1024
// CONSTANT BUF_SIZE 1024
#define PATH_MAX 512
// CONSTANT PATH_MAX 512
int fletch16(FILE* fp)
{
long sum1 = 0;
long sum2 = 0;
int index;
int c = fgetc(fp);
while(c != EOF)
{
sum1 = (sum1 + c) % 255;
sum2 = (sum2 + sum1) % 255;
c = fgetc(fp);
}
return (sum2 << 8) | sum1;
}
int main(int argc, char** argv)
{
/* Open the file containing the checksums */
FILE* fp = fopen(argv[1], "r");
require(fp != NULL, prepend_string(
prepend_string("Error opening checksum file ", argv[1]), "\n"));
int csum = fletch16(fp);
file_print(prepend_string(prepend_string(prepend_string(
numerate_number(csum), " "), argv[1]), "\n"), stdout);
}

View File

@ -0,0 +1,17 @@
/*
* SPDX-FileCopyrightText: 2016 Jeremiah Orians
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include<stdio.h>
// void fputc(char s, FILE* f);
void file_print(char* s, FILE* f)
{
while(0 != s[0])
{
fputc(s[0], f);
s = s + 1;
}
}

View File

@ -0,0 +1,21 @@
/*
* SPDX-FileCopyrightText: 2016 Jeremiah Orians
* SPDX-FileCopyrightText: 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define FALSE 0
// CONSTANT FALSE 0
#define TRUE 1
// CONSTANT TRUE 1
int in_set(int c, char* s)
{
while(0 != s[0])
{
if(c == s[0]) return TRUE;
s = s + 1;
}
return FALSE;
}

View File

@ -0,0 +1,24 @@
/*
* SPDX-FileCopyrightText: 2016 Jeremiah Orians
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define FALSE 0
// CONSTANT FALSE 0
#define TRUE 1
// CONSTANT TRUE 1
int match(char* a, char* b)
{
int i = -1;
do
{
i = i + 1;
if(a[i] != b[i])
{
return FALSE;
}
} while((0 != a[i]) && (0 !=b[i]));
return TRUE;
}

View File

@ -0,0 +1,159 @@
/*
* SPDX-FileCopyrightText: 2016 Jeremiah Orians
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include<stdlib.h>
// void* calloc(int count, int size);
#define TRUE 1
//CONSTANT TRUE 1
#define FALSE 0
//CONSTANT FALSE 0
int in_set(int c, char* s);
//CONSTANT NULL 0
char* numerate_number(int a)
{
char* result = calloc(16, sizeof(char));
if(NULL == result) return NULL;
int i = 0;
/* Deal with Zero case */
if(0 == a)
{
result[0] = '0';
return result;
}
/* Deal with negatives */
if(0 > a)
{
result[0] = '-';
i = 1;
a = a * -1;
}
/* Using the largest 10^n number possible in 32bits */
int divisor = 0x3B9ACA00;
/* Skip leading Zeros */
while(0 == (a / divisor)) divisor = divisor / 10;
/* Now simply collect numbers until divisor is gone */
while(0 < divisor)
{
result[i] = ((a / divisor) + 48);
a = a % divisor;
divisor = divisor / 10;
i = i + 1;
}
return result;
}
int char2hex(int c)
{
if (c >= '0' && c <= '9') return (c - 48);
else if (c >= 'a' && c <= 'f') return (c - 87);
else if (c >= 'A' && c <= 'F') return (c - 55);
else return -1;
}
int hex2char(int c)
{
if((c >= 0) && (c <= 9)) return (c + 48);
else if((c >= 10) && (c <= 15)) return (c + 55);
else return -1;
}
int char2dec(int c)
{
if (c >= '0' && c <= '9') return (c - 48);
else return -1;
}
int dec2char(int c)
{
if((c >= 0) && (c <= 9)) return (c + 48);
else return -1;
}
int index_number(char* s, char c)
{
int i = 0;
while(s[i] != c)
{
i = i + 1;
if(0 == s[i]) return -1;
}
return i;
}
int toupper(int c)
{
if(in_set(c, "abcdefghijklmnopqrstuvwxyz")) return (c & 0xDF);
return c;
}
int set_reader(char* set, int mult, char* input)
{
int n = 0;
int i = 0;
int hold;
int negative_p = FALSE;
if(input[0] == '-')
{
negative_p = TRUE;
i = i + 1;
}
while(in_set(input[i], set))
{
n = n * mult;
hold = index_number(set, toupper(input[i]));
/* Input managed to change between in_set and index_number */
if(-1 == hold) return 0;
n = n + hold;
i = i + 1;
}
/* loop exited before NULL and thus invalid input */
if(0 != input[i]) return 0;
if(negative_p)
{
n = 0 - n;
}
return n;
}
int numerate_string(char *a)
{
/* If NULL string */
if(0 == a[0]) return 0;
/* Deal with binary*/
else if ('0' == a[0] && 'b' == a[1])
{
return set_reader("01", 2, a+2);
}
/* Deal with hex */
else if ('0' == a[0] && 'x' == a[1])
{
return set_reader("0123456789ABCDEFabcdef", 16, a+2);
}
/* Deal with octal */
else if('0' == a[0])
{
return set_reader("01234567", 8, a+1);
}
/* Deal with decimal */
else
{
return set_reader("0123456789", 10, a);
}
}

View File

@ -0,0 +1,20 @@
/*
* SPDX-FileCopyrightText: 2016 Jeremiah Orians
* SPDX-FileCopyrightText: 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include<stdio.h>
#include<stdlib.h>
void file_print(char* s, FILE* f);
void require(int bool, char* error)
{
if(!bool)
{
file_print(error, stderr);
exit(EXIT_FAILURE);
}
}

View File

@ -0,0 +1,59 @@
/*
* SPDX-FileCopyrightText: 2016 Jeremiah Orians
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include<stdlib.h>
#include<stdio.h>
#define MAX_STRING 4096
//CONSTANT MAX_STRING 4096
// void* calloc(int count, int size);
void file_print(char* s, FILE* f);
char* copy_string(char* target, char* source)
{
while(0 != source[0])
{
target[0] = source[0];
target = target + 1;
source = source + 1;
}
return target;
}
char* postpend_char(char* s, char a)
{
char* ret = calloc(MAX_STRING, sizeof(char));
if(NULL == ret) return NULL;
char* hold = copy_string(ret, s);
hold[0] = a;
return ret;
}
char* prepend_char(char a, char* s)
{
char* ret = calloc(MAX_STRING, sizeof(char));
if(NULL == ret) return NULL;
ret[0] = a;
copy_string((ret+1), s);
return ret;
}
char* prepend_string(char* add, char* base)
{
char* ret = calloc(MAX_STRING, sizeof(char));
if(NULL == ret) return NULL;
copy_string(copy_string(ret, add), base);
return ret;
}
int string_length(char* a)
{
int i = 0;
while(0 != a[i]) i = i + 1;
return i;
}

100
rootfs.sh
View File

@ -8,13 +8,13 @@
set -ex
QEMU_CMD="${1:-qemu-system-x86_64}" # or 'chroot' or 'minikernel'
QEMU_CMD="${1:-qemu-system-x86_64}" # or 'chroot' or 'minikernel'
QEMU_RAM="${2:-8G}"
GITDIR="$PWD/$(dirname "$0")"
if [ ! -f 'rootfs.sh' ]; then
echo 'must be run from base of repo'
exit 1
echo 'must be run from base of repo'
exit 1
fi
pushd sysa
@ -27,33 +27,28 @@ sudo mount -t tmpfs -o size=8G tmpfs tmp
LOGFILE="$PWD/tmp/bootstrap.log"
wget()
{
local url="$1"
local dir="${CACHEDIR:-$GITDIR/sources}"
local file
file=$(basename "$url")
mkdir -p "$dir"
test -s "$dir/$file" || command wget -O "$dir/$file" "$url"
cp -v "$dir/$file" .
checksum_do "$dir" "$file"
_wget() {
local url="$1"
local dir="${CACHEDIR:-$GITDIR/sources}"
local file="${2:-$(basename "${url}")}"
mkdir -p "$dir"
test -s "$dir/$file" || command wget -O "$dir/$file" "$url"
cp -v "$dir/$file" .
checksum_do "$dir" "$file"
}
checksum_do()
{
local dir="$1"
local file="$2"
local line
local store="$GITDIR/SHA256SUMS.sources"
checksum_do() {
local dir="$1"
local file="$2"
local line
local store="$GITDIR/SHA256SUMS.sources"
if line=$(grep "[[:space:]][[:space:]]$file"$ "$store"); then
(cd "$dir" && echo "$line" | sha256sum -c)
else
echo 'Checksum mismatch or not found!'
exit 1
fi
if line=$(grep "[[:space:]][[:space:]]$file"$ "$store"); then
(cd "$dir" && echo "$line" | sha256sum -c)
else
echo 'Checksum mismatch or not found!'
exit 1
fi
}
# base: mescc-tools-seed
@ -83,7 +78,8 @@ mkdir -p tmp/after/include/linux/{x86,x86_64}
mkdir -p tmp/tmp
cp after.kaem tmp/
cp after.kaem.run tmp/after/kaem.run
cp helpers.sh run.sh tmp/after/
cp mescc-tools-seed/checksums tmp/after/mescc-tools-seed-checksums
cp helpers.sh run.sh pre-sha.sha256sums tmp/after/
# mescc-tools-extra
cp -r mescc-tools-extra tmp/after/
@ -126,11 +122,12 @@ tar -C tmp/after/tar-1.12/src -xf "tmp/after/tar-1.12/src/$(basename $url)" --st
get_file() {
url=$1
make_build=${2:-0}
output_filename=$3
ext="${url##*.}"
if [ "$ext" = "tar" ]; then
bname=$(basename "$url" ".tar")
bname=$(basename "${output_filename:-${url}}" ".tar")
else
bname=$(basename "$url" ".tar.${ext}")
bname=$(basename "${output_filename:-${url}}" ".tar.${ext}")
fi
cp -r "${bname}" tmp/after/
target="tmp/after/${bname}"
@ -140,7 +137,7 @@ get_file() {
fi
pushd "tmp/after/${bname}/src"
if [ ! -f "$(basename "$url")" ]; then
wget "$url"
_wget "$url" "${output_filename:-${url##*/}}"
fi
popd
}
@ -151,6 +148,9 @@ get_file https://ftp.gnu.org/gnu/gzip/gzip-1.2.4.tar 1
# patch 2.5.9
get_file https://ftp.gnu.org/pub/gnu/patch/patch-2.5.9.tar.gz 1
# sha-2 61555d
get_file https://github.com/amosnier/sha-2/archive/61555d.tar.gz 1 sha-2-61555d.tar.gz
# make 3.80
get_file https://ftp.gnu.org/gnu/make/make-3.80.tar.gz 1
@ -208,26 +208,26 @@ find . | cpio -H newc -o | gzip > initramfs.igz
# Run
case "${QEMU_CMD}" in
chroot)
sudo PATH="/after/bin:${PATH}" chroot . /init | tee "$LOGFILE"
;;
minikernel)
git clone --depth 1 --branch v0.4 https://github.com/bittorf/kritis-linux.git
chroot)
sudo PATH="/after/bin:${PATH}" chroot . /init | tee "$LOGFILE"
;;
minikernel)
git clone --depth 1 --branch v0.4 https://github.com/bittorf/kritis-linux.git
kritis-linux/ci_helper.sh \
--arch x86_64 \
--ramsize 4G \
--kernel 5.10.8 \
--initrd initramfs.igz \
--log "$LOGFILE"
;;
*)
${QEMU_CMD} -enable-kvm \
-m "${QEMU_RAM:-8G}" \
-nographic \
-no-reboot \
-kernel ../../kernel -initrd initramfs.igz -append console=ttyS0 | tee "$LOGFILE"
;;
kritis-linux/ci_helper.sh \
--arch x86_64 \
--ramsize 4G \
--kernel 5.10.8 \
--initrd initramfs.igz \
--log "$LOGFILE"
;;
*)
${QEMU_CMD} -enable-kvm \
-m "${QEMU_RAM:-8G}" \
-nographic \
-no-reboot \
-kernel ../../kernel -initrd initramfs.igz -append console=ttyS0 | tee "$LOGFILE"
;;
esac
cd ../..

View File

@ -35,6 +35,7 @@ cp ../bin/kaem bin/kaem
cp ../catm bin/catm
chmod 755 bin/hex2 bin/M1 bin/M2-Planet bin/blood-elf \
bin/get_machine bin/mes-m2 bin/kaem bin/catm
fletcher16 mescc-tools-seed-checksums
PATH=/after/bin
# Part 4: blynn-compiler
@ -85,41 +86,50 @@ cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# Part 12: mes-libc-patched
# Part 12: sha-2
pkg="sha-2-61555d"
cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# Part 13: Check all up to this part as sha256sum
sha256sum -c pre-sha.sha256sums
# Part 13: mes-libc-patched
cd tcc-0.9.27
kaem --file mes-libc-patched.kaem
cd ..
# Part 13: tcc-patched
# Part 14: tcc-patched
cd tcc-0.9.27
kaem --file tcc-patched.kaem
cd ..
# Part 14: make
# Part 15: make
pkg="make-3.80"
cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# Part 15: bzip2
# Part 16: bzip2
pkg="bzip2-1.0.8"
cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# Part 16: coreutils
# Part 17: coreutils
pkg="coreutils-5.0"
cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# Part 17: heirloom-devtools
# Part 18: heirloom-devtools
pkg="heirloom-devtools-070527"
cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# Part 18: bash
# Part 19: bash
pkg="bash-2.05b"
cd ${pkg}
kaem --file ${pkg}.kaem

View File

@ -45,3 +45,6 @@ ln -s /after/bin/bash /bin/bash
ln -s /after/bin/bash /bin/sh
cd ../..
# Checksums
sha256sum -c checksums

View File

@ -0,0 +1 @@
d60023c3cd1bede628e920ac18a0f71115274f1867eb50ccd05ece1f64bc5fd6 /after/bin/bash

View File

@ -0,0 +1 @@
6fe2a7c7493480b8ba6d1145d10b5dc97f0d11d10c0da7c96e939a334e4aefad /after/bin/bison

View File

@ -0,0 +1 @@
0d95976908f41c34195d634863144acf9ae0b1d2c04647fdf5cfd3103beec4dd /after/bin/bison

View File

@ -0,0 +1 @@
b02a549930ed891d40ef85060e3d0ae1d681830d7962237a9d99c6eeea23f4ef /after/bin/bison

View File

@ -259,3 +259,6 @@ cp bin/precisely ${bindir}/precisely
chmod 755 ${bindir}/precisely
cd ..
# Checksums
fletcher16 checksums

View File

@ -0,0 +1 @@
62114 /after/bin/precisely

View File

@ -31,3 +31,6 @@ chmod 755 /after/bin/bunzip2
bzip2 --help
cd ../..
# Checksums
sha256sum -c checksums

View File

@ -0,0 +1,2 @@
74cb8b1278d648d3f63b71cc5b055a83e83e12a044c7e533c1b348ee8cf34314 /after/bin/bzip2
74cb8b1278d648d3f63b71cc5b055a83e83e12a044c7e533c1b348ee8cf34314 /after/bin/bunzip2

View File

@ -0,0 +1,54 @@
57021d532906e8ec95173b4557959147cfdb240a26fbe36e48960e95f5b14cf4 /after/bin/install
18804ab55d0516bd19059339a63f145cd4d86084bdfb88b06ea36ac2128037a3 /after/bin/basename
3154f34ec9d8a30faf4ee8d6d29a91b4e03e61613030c2872f8215493a94d7b4 /after/bin/cat
eef190bbc238ffbd9de39b0a2629f815f3efd4a07848bbe9e5ddf15728a9ae6a /after/bin/chmod
3db27eaf11453f08205bf42007bc81df0d1e2a35eb0845de4a17803ee2d5ad9a /after/bin/cksum
1ed5730145be705af04ab2b6f498bb12f5778b553510373e2f7885c174d9f6c7 /after/bin/csplit
8289d664efad63db71cbc5a93bb2b08bfd19eb578ed3f8cf3902c602319a9b96 /after/bin/cut
5abdf478511ae3d7ea8d7c67808f8eb19d37cb9f5f2bd3e63c9fa1ccb939ccb5 /after/bin/echo
d275419b74a87b13a0454224c59863de38dc6e4392e4f6daa0d9aa635b55db0a /after/bin/expand
f9d1a04f64dda43d2d4c5358b2e9ec67697a587d493a038992ef4bfa18f834df /after/bin/factor
2e318c11041074ed917569fe7df5519db615fba24f4182e2468789abe6de5d86 /after/bin/false
31763c8ad64d314501f236796af7536f6103d8ed392b1b47787ef035371304d2 /after/bin/fmt
4248a1741f49ef40fc74cf59e609eb55d416f301c6a0854f123cfd182c9d69b7 /after/bin/fold
4abd96e4e60ed3c492797387b5a1c6d6a0099600074817bc803baf7b5e5624ef /after/bin/head
45a53024754c38846593aa0bef64ac8af1b33647d88b4aae85f05f095afd0ebe /after/bin/id
56430b7c42580af3c5b5ef7fd1c43fcf373d1844eb41d80a0055b90a1471784e /after/bin/join
ab0354eb681fe6eaa9299ce27a34c46be22ce34b635b7ad20fe02a802f5f411d /after/bin/kill
b7e74600ec00aa8f13cd113ba832032ca95d2dda1070f568765b4941dab77de5 /after/bin/link
9cb09b77c3bc6044c86959a5e5eb7f402f13a88f3f719dc4087b8797a4dc1cac /after/bin/ln
005df5e851e0d52114507821ebb444ae7e2876a7619fe1da82091662e3844b2f /after/bin/logname
f81e08130457074d9a20489347069a7ae2aa60ed7ab7759561ca98dc9fdb22b8 /after/bin/mkfifo
58065d43c38f38cfed6eb20cfce6a221cc1a2f3f5aabf4c30563d34f0e4b3972 /after/bin/mkdir
7e2816b19067a66fdfe79d0f39a568c6f274cd92be10c43a4284908e3c6a7b36 /after/bin/mknod
e08ca394b75cf19cf8d51a21a9965922cacb213b275fcdfe71e9be78de5443df /after/bin/nl
3a7413ebd546d60817e67aeb4d909c2528566bc25e8a5119ba65c2f834ca95ba /after/bin/od
60cb00b56e5dbadc8e239e5ebdda5ded82bf8409e26aedbedfb36f256c0566f2 /after/bin/paste
4bf4283733fb2e541084e63ba8b1d643eaf19e0e11931935f9fd2357a4998fbe /after/bin/pathchk
6e0f574cff56e9ce4e58a9db2c3999f7114269ece023496fbc629310e3b3911b /after/bin/printf
78681ca7d88324d4b595328b3beef7d46c75e957f4b7eec46985ba51bdaeb062 /after/bin/ptx
4ab6aa69bdfdc287a0fa402fc198defeef7ce6094519232425026d6ac65f39e5 /after/bin/pwd
dab15e939cf79bb7609d86fd50afb9ca7395de313f9d6e14b5ec5cc304aa4aa7 /after/bin/readlink
402cf598fff0876fae60f1ce2e0deec9e955c51ab32a587857d7f353c9f5fca6 /after/bin/rmdir
1802bd63bd1af9dd18141079f3efdd9f00092c4d8989b165c1da2068a3a61025 /after/bin/seq
add34da9989d32db6a0b12476a074ef3c59acca09fd4ed8a1e7da19ebcc2f311 /after/bin/sleep
d5d329c9bb11ea3cb9b95d0a7bea948b48defe5738882b8148f766cbbfcf30c3 /after/bin/split
f77918803ea96e92e10c653f53a196ff2f3444e8317d019e2908472b5ff1d2a0 /after/bin/sum
b2e00dee5951d3320ba0adac294311f31858d5860520f262b5b2f788c272fc88 /after/bin/tail
f491c177aaccd96b6f6c61bd288b5f039722edd47ae66e49ace4ae8722a62323 /after/bin/tee
0b4843b26cbb135e34f87f9255d931f38f8de42a6d93008c36f2682ae5441d54 /after/bin/touch
cc04233f2020b59c0c6ff2b267a7c99ffcedc2a59ff94e09ef1dea7197765f29 /after/bin/tr
dc2b1e033e1b21b0c2cdf0d71c0dae5bf76da11e45b20f5258377ae1638845b7 /after/bin/tsort
997ed6336650515aa97ae96b22f7cbc46d6346ba985e70336c21cbc5113c0066 /after/bin/unexpand
a7884b7ba882ca34443b638a512dbbc415824d149d3b588b7d2fd7f063300a4f /after/bin/unlink
b32921d0f32bee98f4af4d8ab30670dbce2dcf35f63221a6c3fd143859e11d9a /after/bin/wc
4d39991d41b5479a506dc3ce13fa170bd5cfb0031e248f2fa32bf1338935f4af /after/bin/whoami
199c5b3db58b79ca9a6d16352e779c6db1d8aef40d25e396fe41994e42de4720 /after/bin/test
56b8e1436013b40f4fdedd1f240fb80a521a96819a73e38010e24d09430d2c5b /after/bin/true
dd76ea2581577775bee50ca31b436442f60f63a70fab6bb01eef927c1fd6139b /after/bin/yes
30afc17da299c1e7caddc5cbc2389513770aae000284e8623f271f0f3c70c8d7 /after/bin/ls
57021d532906e8ec95173b4557959147cfdb240a26fbe36e48960e95f5b14cf4 /after/bin/install
d1eaf36eacb4e0688bded5d887bebd79a4777992825a696747e16330c0555eba /after/bin/md5sum
6c826bbd5a58244ca1ee4af928ce27eeaa87346d0bd69aa18b0eafb296e6c147 /after/bin/mv
ea0e3e2d87d46998450a6ab2c06758faf2ff9aaec70de7f1cec06a38e483cec6 /after/bin/rm
8918994159a3afb3f58ddc143b007bcba573eab6fbe43f705bf1cd6a2c3d03ab /after/bin/sha1sum

View File

@ -0,0 +1,54 @@
e72c5b0ebff9c8f72cd40355eb6baed175bbfc3addaa16ec6085e6a0e850a028 /after/bin/install
ad6bf7547d6b38b3ccd2ae389ae4fd8a31a57138507b289305ad40d2d1b640ba /after/bin/basename
182ed1dd7bada465e34ef89af126119a4f02b4a9a1ab77ddb3d59fe366115d71 /after/bin/cat
9d5e12cd79d3e5fac23205d09ee2d26dc6070c2fab06e86e03c048b4b810fc35 /after/bin/chmod
4baa1a727b4cb9739e8095fa205d21ec14543a5ca2660c4c5e187848c8b6285e /after/bin/cksum
57c4bc1e89be122e7269d5306f90317082346d5cf9f1b7ce8210664911a1d2c0 /after/bin/csplit
8b8f0c8ab7538f6d972f6e13c1d3b51b3a2b09185f649471d018c77813b0f208 /after/bin/cut
21eecaacde1c44ae6bb944743d7bc61806bcb3fe24f792a1da1fced1f6a2d5a1 /after/bin/echo
c6c56ca458452782a7014c194b4001e13b89a1cdae42f699f42e527c535e6b30 /after/bin/expand
b5bb5ba4d52da5e86d8fc80c831a229cc4c057644e886c367711eab571cf8aec /after/bin/factor
25ab087dad2bdec3d8a0c51b93f1aec42516085905232b908dd19ac620727932 /after/bin/false
1fabff3d2bc61990fd94f9ed5055032cad1b3982a6effaaaed9d76d553708e17 /after/bin/fmt
ca21a324c2628d66994c19f444739d112246ade4eaaac71ab76f41751b5c6f9f /after/bin/fold
6b7b368cec7d0402c0cd17f1d59066dbf46c81345435cf994046e1f535853808 /after/bin/head
9afae9c301cbcfd25bc50efe47f92a90be8801772f83f6455197048df0161f42 /after/bin/id
dc62c58ca836141a6476135c9a20b01aa75f4403ffff0dc08675d285f2c31730 /after/bin/join
e8eaf3838c0ebd70f3ef5b475fcbe32771e1fd16db57a780212ff01af829b8be /after/bin/kill
9160804d2a84af504ce9ccb793b511b114b33e67b71e282101a7c85a5d1eb827 /after/bin/link
a9696d75821b2964b29c0a2f896964ac5bd723509ba940903f5d3e5a4ae28cc7 /after/bin/ln
66cc6ec8440ac2635c3e8c8a93618448a3b0ac32a2828d2c58ea4b04c43a0624 /after/bin/logname
0c006ee959d0bb585449e8cc03c7a4e8bef654d548f8e65adcf5d7c116828320 /after/bin/mkfifo
e8ce9b04108e6faeaf4e506e98ccb42d501af0c5c7b999ada0ac589eeef8e076 /after/bin/mkdir
696a2c4448890691317e9d2fd6097b635d9825e80eb4dde0430a617d68b7e2bf /after/bin/mknod
779f4108063fbbf2026f2948f6caf52dc834b4a22f74e43b3ebfce15ef111061 /after/bin/nl
a0b6658f0f27fbf753cd4617d33f1f9e82bb973d342e83e229ce48c09d5e8d86 /after/bin/od
fe7afbb1ac9144cfd13bf8955f0474740a192de00f37dc4f549032b74013422f /after/bin/paste
bbc99502af4745aeb45989adc055dc3d24d86b4f43ba63178b6e39912ee19750 /after/bin/pathchk
5860714658263857e0b8061d7d483b1a83e25935e45e47b8430465e1f751b908 /after/bin/printf
b43ab09f2edd05645e59a5b9be05ae0bf30d7b38585c59bc25ec46ef3c82f327 /after/bin/ptx
d3d0223c690358d5c392619396cec73dad97a84efbfcf959c7507efd0aef5708 /after/bin/pwd
53c504ac4df5e12bbc345a6ee78d3eb8f916263ae464d694d9e0f8334ff976f6 /after/bin/readlink
b58288bcad22f69ad34e1a91e1a5dc67544589f62b38bbff95a057f5600cefe2 /after/bin/rmdir
7871b2d181bf1c4460b0f78b91fc0ae6ccc9528bc7ae941367b066cb7b72cd0e /after/bin/seq
b1d8b246b3306cfc2491c81cf00969396e1ec5cfd3fa73012aa8fed0ce1446b0 /after/bin/sleep
8bf47b44f6a506ffed5d0f69791adc8463968b5562413186dd8a71ee595d26ee /after/bin/split
ae10f35493f3d275af4ffe70281ecbc72b047ed7d48620a9109e60c159a3c36b /after/bin/sum
10083826d7cb1a42e7061811f20548e4d24432b3e646f6d0ab537c0db6dabd48 /after/bin/tail
48558bc37919c524a1cbe674142484cc1027bf0010d3f68fb93403fc148de9d3 /after/bin/tee
0455bd0c814663287a2807bf78859d5f43aa7a2490c4da0c07d29a32df772dca /after/bin/touch
f31fd1fc30d2e0b16a37b277f4fe608f6a756cc4d09312d84f6a9ff86054eb38 /after/bin/tr
edc3b88d1de07f5ba7f59cf1e131476907ce59739ab2181bfd31d1ace2ee8a25 /after/bin/tsort
b68e707c10d51d4c7fce328e7619011d8baf6605df1058d9dd513e8671447fe7 /after/bin/unexpand
67900322d337e18a6782c5e81643a099c8775b1a4200eeb6808409db6e62eabf /after/bin/unlink
6201303021c9d6dffa796c50fec6e8f199efd5d00328373248531b6ec5ae27c7 /after/bin/wc
5de85a50c357e6450d616970479fa24c9965c5ce0c7f05da337d96510653811e /after/bin/whoami
4ed60b9f4dd8b7909fb69f07f5120e62b22eed0a746bb28139fab560538f2544 /after/bin/test
8165613f96eddbb107cf0a263789fa135a7a26c016bbcd2d69891294025a7fba /after/bin/true
82938399bdc017d8b60de8e22894c6b8cb7e377d4c72372b9126feaa7c9d1759 /after/bin/yes
c66b7e80bcfc8169d661a3b8529f179637c4df3441355a19cc900ba5e7c62cfb /after/bin/ls
e72c5b0ebff9c8f72cd40355eb6baed175bbfc3addaa16ec6085e6a0e850a028 /after/bin/install
ad7403999d4d48d30bb49f7433998a31e852ecb34242ebac9f7d09d4e8dfa25c /after/bin/md5sum
b7b46fd6f6a1c4871f76a35565ae94706a1f60ee645d5754d8c326ae9ca97117 /after/bin/mv
1bc536cd595734a9f85524eaed18f5d1127bde3e74337bdf348108225552975a /after/bin/rm
d84999007c0f75f8ed1aef1273b251bac868f4f2f5f6486a9ee1a0c04d95b1be /after/bin/sha1sum

View File

@ -29,3 +29,8 @@ patch -Np0 -i ../../patches/ls-strcmp.patch
# Build and install
/after/bin/make -f Makefile
/after/bin/make -f Makefile install
cd ../..
# Checksums
sha256sum -c checksums/pass1

View File

@ -0,0 +1,2 @@
4e02244d35aec2a439e67805574ff945aec2fbb5c20fc6d7aabe46e9c1ba09e9 /after/bin/cmp
b5c4cf04c70c93a26d61589671ea7e1dcb3bc3f1a565720a328d6d80e314538d /after/bin/diff

View File

@ -0,0 +1 @@
122a20639d0733b34421d12e1ec45341317916c5b0a798410d4a25481fc39d2b /after/bin/flex

View File

@ -0,0 +1 @@
cf92dbc55dd58f4212443e998635bab855422391ad40e97ec67fb266f07d849d /after/bin/flex

View File

@ -0,0 +1 @@
c0c1ec4e274d7dbcdbef3eac580d064f6a1ad5a0aef25ca1c329a72965f98865 /after/bin/gawk

1
sysa/grep-2.4/checksums Normal file
View File

@ -0,0 +1 @@
1acd145236315018b46591a3a9bb5f86f995ad318cca6d34ee8e25db81478d92 /after/bin/grep

View File

@ -0,0 +1,3 @@
39142 /after/bin/gzip
39142 /after/bin/gunzip
39142 /after/bin/zcat

View File

@ -44,3 +44,6 @@ chmod 755 ${bindir}/gunzip
chmod 755 ${bindir}/zcat
cd ../..
# Checksums
fletcher16 checksums

View File

@ -0,0 +1,5 @@
ce634646b0fb57bdfecf84533562e624504d48144e3589195e2752cac9e94fdc /after/bin/yacc
276941719f71e8733d988cbc87f7be40c52ba9b6ddcc2d93898bcecb5a49b657 /after/bin/lex
ffe696afc1bda32a5f4035e29b3275cab73a27df7635ccbe02ed49a30374ccdd /after/lib/libl.a
bf3fb293f1ff89ee3dbcb08166c64b7a6793b49a12673d7633e3353ebea80d4d /yaccpar
ee0f187b844f50d64c912bfcb5d73706662846d6d8a90b8b1fb20dda60464734 /lex/ncform

View File

@ -1,6 +1,7 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -41,3 +42,6 @@ install libl.a ${libdir}
install -m 644 ncform ${lexdir}
cd ../../..
# Checksums
sha256sum -c checksums

View File

@ -1,6 +1,8 @@
#!/bin/bash -e
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
export PATH=/after/bin
@ -8,12 +10,14 @@ export PATH=/after/bin
# Common build steps
# Build function provides a few common stages with default implementation
# that can be overridden on per package basis in the build script.
# build takes two arguments:
# build takes three arguments:
# 1) name-version of the package
# 2) optionally specify build script. Default is name-version.sh
# 3) optionally specify name of checksum file. Default is checksums
build () {
pkg=$1
script_name=${2:-${pkg}.sh}
checksum_f=${3:-checksums}
cd "$pkg" || (echo "Cannot cd into ${pkg}!"; kill $$)
echo "${pkg}: beginning build using script ${script_name}"
@ -52,6 +56,9 @@ build () {
cd ../..
echo "${pkg}: checksumming installed files."
sha256sum -c "${checksum_f}"
echo "${pkg}: build successful"
cd ..

1
sysa/m4-1.4.7/checksums Normal file
View File

@ -0,0 +1 @@
58b1e4d808fd498aad2a19eabe06527f588508d45f0d10925295c73259ef4062 /after/bin/m4

1
sysa/make-3.80/checksums Normal file
View File

@ -0,0 +1 @@
7745ab1036a83ed63416af84bd166bfe768554ac393fbc53818acd4ccc18ce7f /after/bin/make

View File

@ -55,3 +55,6 @@ tcc -o ${bindir}/make getopt.o getopt1.o ar.o arscan.o commands.o default.o dir.
make --version
cd ../..
# Checksums
sha256sum -c checksums

13
sysa/mes/checksums Normal file
View File

@ -0,0 +1,13 @@
63031 /after/bin/mes
23643 /after/bin/mescc.scm
36724 /after/lib/crt1.s
42390 /after/lib/crt1.o
39638 /after/lib/x86.M1
526 /after/lib/libmescc.s
10591 /after/lib/libc+tcc.s
45027 /after/lib/libc.s
17259 /after/lib/libmescc.a
20204 /after/lib/libc+tcc.a
34645 /after/lib/libc.a
8245 /after/lib/linux/elf32-header.hex2
15474 /after/lib/linux/elf32-footer-single-main.hex2

View File

@ -296,3 +296,6 @@ libdir=${prefix}/lib
${MES} -c "(display 'Hello,Mes!) (newline)"
cd ../..
# Checksums
fletcher16 checksums

View File

@ -0,0 +1,3 @@
27475 /after/bin/chmod
34512 /after/bin/cp
37928 /after/bin/fletcher16

View File

@ -87,4 +87,44 @@ hex2 \
-o ${bindir}/chmod \
--exec_enable
# fletcher16 command
M2-Planet \
-f /M2-Planet/test/common_x86/functions/file.c \
-f /M2-Planet/test/common_x86/functions/exit.c \
-f functions/numerate_number.c \
-f functions/string.c \
-f functions/file_print.c \
-f functions/match.c \
-f functions/require.c \
-f functions/in_set.c \
-f /M2-Planet/functions/calloc.c \
-f /M2-Planet/test/common_x86/functions/malloc.c \
-f fletcher16.c \
--architecture x86 \
--debug \
-o fletcher16.M1
blood-elf -f fletcher16.M1 -o fletcher16-footer.M1
M1 \
-f /M2-Planet/test/common_x86/x86_defs.M1 \
-f /M2-Planet/test/common_x86/libc-core.M1 \
-f fletcher16.M1 \
-f fletcher16-footer.M1 \
--LittleEndian \
--architecture x86 \
-o hold
hex2 \
-f /M2-Planet/test/common_x86/ELF-i386-debug.hex2 \
-f hold \
--LittleEndian \
--architecture x86 \
--BaseAddress 0x8048000 \
-o ${bindir}/fletcher16 \
--exec_enable
cd ..
# Checksums
fletcher16 checksums

View File

@ -0,0 +1,103 @@
/*
* SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include <stdlib.h>
#include <stdio.h>
#define BUF_SIZE 1024
// CONSTANT BUF_SIZE 1024
#define PATH_MAX 512
// CONSTANT PATH_MAX 512
int fletch16(FILE* fp)
{
long sum1 = 0;
long sum2 = 0;
int index;
int c = fgetc(fp);
while(c != EOF)
{
sum1 = (sum1 + c) % 255;
sum2 = (sum2 + sum1) % 255;
c = fgetc(fp);
}
return (sum2 << 8) | sum1;
}
int main(int argc, char** argv)
{
/* Open the file containing the checksums */
FILE* check_fp = fopen(argv[1], "r");
require(check_fp != NULL, prepend_string(
prepend_string("Error opening checksum file ", argv[1]), "\n"));
int rc = 0;
/* Now loop over each one */
FILE* fp;
char c;
char* filename;
char* s_rchecksum;
char* file;
int rchecksum;
int i;
int csum;
/* It's much easier to just break; out of the loop */
while(1)
{
filename = calloc(PATH_MAX, sizeof(char));
require(filename != NULL, "Failed to allocate filename\n");
s_rchecksum = calloc(16, sizeof(char));
require(s_rchecksum != NULL, "Failed to allocate filename\n");
/* Read the checksum */
c = fgetc(check_fp);
i = 0;
while (c != ' ' && c != EOF)
{
require(in_set(c, "0123456789"), "Invalid checksum file\n");
s_rchecksum[i] = c;
c = fgetc(check_fp);
i = i + 1;
}
if(c == EOF) break;
/* Skip the space */
c = fgetc(check_fp);
/* Read the filename */
i = 0;
while(c != '\n' && c != EOF)
{
filename[i] = c;
c = fgetc(check_fp);
i = i + 1;
}
/* If we got here and it is EOF, we probably have all the needed data */
/* Convert s_rchecksum -> int */
rchecksum = numerate_string(s_rchecksum);
/* Now let's actually calculate the real checksum */
/* Read the file into a char* array */
fp = fopen(filename, "r");
/* Calculate the checksum! */
csum = fletch16(fp);
/* Compare */
if(csum == rchecksum)
{
file_print(prepend_string(filename, ": OK\n"), stdout);
}
else
{
/* We failed.. we should fail at the end */
rc = 1;
file_print(prepend_string(filename, ": FAILED\n"), stdout);
}
/* Now if we finished the last one, leave */
if(c == EOF) break;
}
return rc;
}

View File

@ -0,0 +1,8 @@
12760 /after/bin/blood-elf
31684 /after/bin/catm
52674 /after/bin/get_machine
47046 /after/bin/hex2
25862 /after/bin/kaem
33226 /after/bin/M1
61798 /after/bin/M2-Planet
44920 /after/bin/mes-m2

View File

@ -0,0 +1,14 @@
457fff81b3188b82621f3ae49847ebc60128017fcbdba012245169af76cf122a /after/lib/musl/crt1.o
e3560c563125643467b29842db7984ccd1ecd3a6010358f9096674e199e36e05 /after/lib/musl/crti.o
b3a8cf971e9870bc3b2aa8fb8fc082b6a222cc0540a70f122a76ac6ced9151d0 /after/lib/musl/crtn.o
972db16d0c35619e1a12cfbaa1a500d97836b2850b6d93a08bf4e30e7cc377dc /after/lib/musl/libc.a
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /after/lib/musl/libcrypt.a
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /after/lib/musl/libdl.a
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /after/lib/musl/libm.a
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /after/lib/musl/libpthread.a
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /after/lib/musl/libresolv.a
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /after/lib/musl/librt.a
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /after/lib/musl/libutil.a
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /after/lib/musl/libxnet.a
b60b59a94f10f039977cea2cea6f15b55b402b25df2e1b2a4e83fa84ccf2fd43 /after/lib/musl/rcrt1.o
a50500329680bed4dcc5ec3891fd50f65af9cae7de0b8e8fe925c37f1c6bb16b /after/lib/musl/Scrt1.o

View File

@ -0,0 +1 @@
10790 /after/bin/patch

View File

@ -49,3 +49,6 @@ tcc -static -o ${bindir}/patch error.o getopt.o getopt1.o addext.o argmatch.o ba
patch --version
cd ../..
# Checksums
fletcher16 checksums

View File

@ -0,0 +1 @@
03a11370e2e37f8edfe9d73e6f52e7d8778425f75bd140a8ff01f61a1ecf5a22 /after/bin/perl

View File

@ -0,0 +1 @@
fc9285ff53bc43b5b0e21880c72323f3bd14fb613151295bfa5afc13addc4765 /after/bin/perl

View File

@ -0,0 +1 @@
6e019830d36d928e8eeee45d768f29b85d006a6c487852788c02639d15ee660a /after/bin/perl

38
sysa/pre-sha.sha256sums Normal file
View File

@ -0,0 +1,38 @@
e7b1b2c7d999cd31becd7368f735b1672f24e1e469d73f0641fca5e0b6a314e8 /after/bin/boot0-tcc
009ad5707f1bcac76cac07f0a0c4199d64915fe619488673fc137bc6a3bd2398 /after/bin/boot1-tcc
35fc4f304ce3068aae776634b691cd77f57872867facee96841cd73c257a04ec /after/bin/boot2-tcc
ca5018cda11edeb4bffa45e7baf3501130ca75986a98e78ba7e27ae27f7b503a /after/bin/boot3-tcc
5fe2eb19bdf8feeca3241ef96461636db84b99ec7613bf59f9fd9ff03d935f5e /after/bin/boot4-tcc
cacc2cda3ce6c2cc0cb761b8aa2115a003e166c94d1039974fc0221263897c52 /after/bin/boot5-tcc
773eae17b7f347526f8033afc9d1f06af116dfbcd0a26cbde7e29ab47e77850d /after/bin/chmod
02f8cb033b41118bbea92c90a5bba30f50215c94792282c97967bd60a48373f4 /after/bin/cp
e1481ecf337fb657f3949af0b45bb620c1886cd1a1b003fe27338832c250f41d /after/bin/fletcher16
bbad3c53d86df800088146ef3b65b755786557ab11f04fe9706503e9f9c241b3 /after/bin/gunzip
bbad3c53d86df800088146ef3b65b755786557ab11f04fe9706503e9f9c241b3 /after/bin/gzip
d41067670562f87c6e43af0b461c4070c19a8ffc15c455cb075d98419ae76c73 /after/bin/mes
b91c81e543b878ead4cc975df75e3d211f7bd2dcdd4c90e42df99d44311ce71e /after/bin/mescc.scm
e94a2468c045582cfd13df51acd0932afdc834fa60139f7bfb7a2d65afa39a65 /after/bin/mes-tcc
3cf426251744300a099a40f3609ccbd32ec3b9f3334601defa5736e7fd6c6f1d /after/bin/patch
e01eaee677cd4fd65a65e7d1e2905a8587a3bab82fc1d0b81cffbe2959f2813d /after/bin/precisely
b4b16b3314a6f4a8be1b849aba45252e621a7123025dabdf9af6c2d4d657e9b6 /after/bin/sed
bc9ddf9854bd954c71bb1cf5b0af77fd65b8fa7f290b42c75020fb8893deb53c /after/bin/sha256sum
9f83aae8cee866b3af409bb6d28e32d0a04db0e7b64680af4e38b5f43b5ece96 /after/bin/tar
690c2a941c444ba761076f6b8ef1ba2b634ebe2e63ea44c8f3789f6e3df6d2a9 /after/bin/tcc
cacc2cda3ce6c2cc0cb761b8aa2115a003e166c94d1039974fc0221263897c52 /after/bin/tcc-0.9.26
bbad3c53d86df800088146ef3b65b755786557ab11f04fe9706503e9f9c241b3 /after/bin/zcat
44b5f15e1f015685fe4c3d66eda5ba52aac77b94f2edd98b764cec05ca350d49 /after/lib/crt1.o
90811dafd33ad56b8e4b0adcc04263f9329b9047b7cc337abe8151a75017172c /after/lib/crt1.s
09d4f9821a2566f7e56381a19259c41bd97f3c5ed83f490705acbfd1139a7736 /after/lib/crti.o
461ca1494737fab86fe1c1d3addeaf9d0ece413e353abcdea8674db3f700cda3 /after/lib/crtn.o
34f62227f8cc61d365d92a182f8f3cc91cc6c50a1bbb8f4774a4383bceaefa5f /after/lib/libc.a
34f62227f8cc61d365d92a182f8f3cc91cc6c50a1bbb8f4774a4383bceaefa5f /after/lib/libc+gnu.a
b5ce4e1288a27864156d74268090c13aea6b5a261fa81c75bfbe844d0689d03d /after/lib/libc.s
3156e619dbd85c471e2a8d053ba536eaaa8f91da657003777b8e87e7bab4266d /after/lib/libc+tcc.a
aaf89a9d6818cdb8ece73454631b1a1ae83503e5eb7777d38cdaf141cba0e530 /after/lib/libc+tcc.s
12c07ae103e7e3b390150a79e5c600d88de14e9bb73a066f6342582729ef5a3f /after/lib/libgetopt.a
52f697278ccdff5e457f27e10f465a91ab9858f0c6cee0683831cadb3109bbb7 /after/lib/libmescc.a
d8646707db6aa2a76fdc5dbb3521376439e357f9f1de1d67f02a1afeefd342ac /after/lib/libmescc.s
f9873d9aab12e70f24d97f8319e17a1e698ca60779ae9a6ab3ede648cd60fc61 /after/lib/linux/elf32-footer-single-main.hex2
b16ab368bc4c7b8bd896d03cba565a60e97760dea4da9f5c8a1a3d2902a79df6 /after/lib/linux/elf32-header.hex2
a650b13efc65073fb851e9db89728089d8845c401f85faaa09801874ab058089 /after/lib/tcc/libtcc1.a
c9944a799d584abfa76f385c14ac0caf6f46d03b34bf2712493602b12826c6b2 /after/lib/x86.M1

View File

@ -1,6 +1,8 @@
#!/bin/bash
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
set -e
@ -9,45 +11,45 @@ set -e
export PREFIX=/after
# Part 19
# Part 20
build flex-2.5.11
# Part 20
# Part 21
build musl-1.1.24
# Part 21
build tcc-0.9.27 tcc-musl.sh
# Part 22
build m4-1.4.7
build tcc-0.9.27 tcc-musl.sh checksums/tcc-musl
# Part 23
build flex-2.6.4
build m4-1.4.7
# Part 24
build bison-3.4.1 stage1.sh
build bison-3.4.1 stage2.sh
build bison-3.4.1 stage3.sh
build flex-2.6.4
# Part 25
build grep-2.4
build bison-3.4.1 stage1.sh checksums/stage1
build bison-3.4.1 stage2.sh checksums/stage2
build bison-3.4.1 stage3.sh checksums/stage3
# Part 26
build diffutils-2.7
build grep-2.4
# Part 27
build coreutils-5.0
build diffutils-2.7
# Part 28
build gawk-3.0.4
build coreutils-5.0 coreutils-5.0.sh checksums/pass2
# Part 29
build perl-5.000
build gawk-3.0.4
# Part 30
build perl-5.003
build perl-5.000
# Part 31
build perl-5.003
# Part 32
build perl5.004_05
echo "Bootstrapping completed."

1
sysa/sed-4.0.7/checksums Normal file
View File

@ -0,0 +1 @@
15435 /after/bin/sed

View File

@ -44,3 +44,6 @@ tcc -static -o ${bindir}/sed -L lib lib/libsed.a compile.o execute.o regex.o fmt
sed --version
cd ..
# Checksums
fletcher16 checksums

View File

@ -0,0 +1 @@
53384 /after/bin/sha256sum

View File

@ -0,0 +1,151 @@
SPDX-FileCopyrightText: 2021 Bastian Bittorf <bb@npl.de>
SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: Unlicense
This adds a main() function to this tool, giving a frontend so we can call
it from the command line.
--- sha-256.c 2019-08-04 22:20:53.000000000 +1000
+++ sha-256.c 2021-02-15 17:21:27.478945543 +1100
@@ -1,10 +1,16 @@
#include <stdint.h>
#include <string.h>
-
-#include "sha-256.h"
+#include <stdio.h>
#define CHUNK_SIZE 64
#define TOTAL_LEN_LEN 8
+#define MAX_FILE_SIZE 2*1024*1024
+
+void show_usage(void)
+{
+ printf("Usage: sha256sum <file>\n");
+ printf(" sha256sum <file> -c <known_SHA256_hash>\n");
+}
/*
* ABOUT bool: this file does not use bool in order to be as pre-C99 compatible as possible.
@@ -217,3 +223,121 @@
hash[j++] = (uint8_t) h[i];
}
}
+
+static void hash_to_string(char hash_string[66], uint8_t hash[32])
+{
+ for (size_t i = 0; i < 32; i++) {
+ hash_string += sprintf(hash_string, "%02x", hash[i]);
+ }
+ hash_string[65] = '\0';
+}
+
+static void hash_as_string(char filename[128], char hash_string[66])
+{
+ char buffer[MAX_FILE_SIZE];
+
+ FILE* fp = fopen(filename, "r");
+ if (fp == NULL)
+ {
+ printf("Opening file %s failed!", filename);
+ hash_string = NULL;
+ return;
+ }
+
+ size_t i;
+ for (i = 0; i < MAX_FILE_SIZE; i++) {
+ int c = fgetc(fp);
+ if (c == EOF) {
+ break;
+ }
+ buffer[i] = c;
+ }
+
+ uint8_t hash[32];
+
+ calc_sha_256(hash, buffer, i);
+ hash_to_string(hash_string, hash);
+}
+
+int main(int argc, char **argv)
+{
+ char buffer[MAX_FILE_SIZE];
+ size_t i;
+ FILE *fp;
+ FILE *csum_fp;
+
+ if (argc == 1) {
+ show_usage();
+ return 2;
+ }
+
+ if ((strcmp(argv[1], "-c") == 0) || (strcmp(argv[1], "--check") == 0)) {
+ /* Operate in check mode */
+ int failed = 0;
+
+ /* Get and open checksum file */
+ char *csum_filename = argv[2];
+ csum_fp = fopen(csum_filename, "r");
+ if (csum_fp == NULL) {
+ printf("Opening file %s failed!", csum_filename);
+ };
+
+ /* We break out of this loop at EOF */
+ while (1) {
+ /* Get the hash we need to check against */
+ char hash_true[256];
+ char filename[512];
+ int c = fgetc(csum_fp);
+ i = 0;
+ while (c != ' ' && c != EOF) {
+ hash_true[i] = c;
+ c = fgetc(csum_fp);
+ i++;
+ }
+ if(c == EOF) break;
+ /* Skip the next space(s) */
+ while (c == ' ') {
+ c = fgetc(csum_fp);
+ }
+ if(c == EOF) break;
+ /* Get the filename */
+ i = 0;
+ while (c != '\n' && c != EOF) {
+ filename[i] = c;
+ c = fgetc(csum_fp);
+ i++;
+ }
+ filename[i] = '\0';
+
+ /* Break out @ EOF */
+ if (c == EOF) break;
+
+ /* Get the hash */
+ char hash_string[66];
+ hash_as_string(filename, hash_string);
+ if (hash_string == NULL) return 127;
+
+ /* Output results */
+ printf("%s: ", filename);
+ if (strcmp(hash_true, hash_string)) {
+ printf("FAILED\n");
+ failed = 1;
+ } else {
+ printf("OK\n");
+ }
+ }
+
+ if (failed) return 1;
+ } else {
+ /* All the arguments are files to generate checksums for */
+
+ for (i = 1; i < argc; i++) {
+ char hash[66];
+ hash_as_string(argv[i], hash);
+ if (hash == NULL) return 127;
+ printf("%s %s\n", hash, argv[i]);
+ }
+ }
+
+ return 0;
+}

View File

@ -0,0 +1,30 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
set -ex
cd build
# Extract
gunzip ../src/${pkg}.tar.gz
tar xf ../src/${pkg}.tar
cd sha-2-61555d45676473e77c11f8da97301e2d2b865871
# Patch
patch -Np0 -i ../../patches/frontend.patch
# Compile
tcc -c -o sha-256.o sha-256.c
# Link
tcc -static -o ${bindir}/sha256sum sha-256.o
# No test avaliable
cd ../..
# Checksums
fletcher16 checksums

1
sysa/tar-1.12/checksums Normal file
View File

@ -0,0 +1 @@
26761 /after/bin/tar

View File

@ -56,3 +56,6 @@ tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/update.c
tcc -static -o ${bindir}/tar -L lib lib/libtar.a arith.o buffer.o compare.o create.o delete.o extract.o incremen.o list.o mangle.o misc.o names.o open3.o rtapelib.o tar_patched.o update.o -ltar
cd ..
# Checksums
fletcher16 checksums

17
sysa/tcc-0.9.26/checksums Normal file
View File

@ -0,0 +1,17 @@
27585 /after/bin/boot0-tcc
10300 /after/bin/boot1-tcc
47485 /after/bin/boot2-tcc
38508 /after/bin/boot3-tcc
336 /after/bin/boot4-tcc
35666 /after/bin/boot5-tcc
14206 /after/bin/mes-tcc
35666 /after/bin/tcc
35666 /after/bin/tcc-0.9.26
47832 /after/lib/libc.a
47832 /after/lib/libc+gnu.a
20204 /after/lib/libc+tcc.a
54049 /after/lib/libgetopt.a
23061 /after/lib/crt1.o
16980 /after/lib/crti.o
47705 /after/lib/crtn.o
10853 /after/lib/tcc/libtcc1.a

View File

@ -379,4 +379,7 @@ chmod 755 ${bindir}/tcc-0.9.26
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c
tcc -ar cr ${libdir}/libgetopt.a getopt.o
cd ..
cd ../..
# Checksums
fletcher16 checksums

View File

@ -0,0 +1,6 @@
a1313f0a2aef2e63a3d03b2c8de98e6c022f0999e4d7e039bd140c250be4a4da /after/lib/libc.a
a1313f0a2aef2e63a3d03b2c8de98e6c022f0999e4d7e039bd140c250be4a4da /after/lib/libc+gnu.a
12c07ae103e7e3b390150a79e5c600d88de14e9bb73a066f6342582729ef5a3f /after/lib/libgetopt.a
d1168ee9b528e39f0b40e8d51fb7fa3619c4a5ee928137f7faf6d0879b0916b0 /after/lib/crt1.o
461ca1494737fab86fe1c1d3addeaf9d0ece413e353abcdea8674db3f700cda3 /after/lib/crtn.o
09d4f9821a2566f7e56381a19259c41bd97f3c5ed83f490705acbfd1139a7736 /after/lib/crti.o

View File

@ -0,0 +1,9 @@
35075 /after/bin/tcc
47832 /after/lib/libc.a
47832 /after/lib/libc+gnu.a
20204 /after/lib/libc+tcc.a
54049 /after/lib/libgetopt.a
23061 /after/lib/crt1.o
16980 /after/lib/crti.o
47705 /after/lib/crtn.o
54138 /after/lib/tcc/libtcc1.a

View File

@ -0,0 +1 @@
9819c29a2c8259883b4a97d6b57f2fdac87b9807ba9594f7c063601a7fe84af9 /after/bin/tcc-musl

View File

@ -0,0 +1 @@
d9dd8e605c8dfd584216e94df4759b1aeb894bdd3d99937bf0eba28cf875e25a /after/bin/tcc

View File

@ -1,6 +1,7 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -17,3 +18,6 @@ cd ../tcc-0.9.27
kaem --file ../../compile-libc.kaem
cd ../..
# Checksums
sha256sum -c checksums/mes-libc-patched

View File

@ -40,3 +40,6 @@ tcc -version
kaem --file ../../compile-libc.kaem
cd ../..
# Checksums
fletcher16 checksums/tcc-0.9.27

View File

@ -1,5 +1,6 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -35,3 +36,6 @@ tcc-0.9.26 \
tcc -version
cd ../..
# Checksums
sha256sum -c checksums/tcc-patched