Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7bf53181e2 | ||
|
|
b7cbad2db7 | ||
|
|
1db74f791a | ||
|
|
372fda3afc | ||
|
|
749ffe6d73 | ||
|
|
76b399f3b5 | ||
|
|
83f7ebb223 |
No files matched your search
-14
@@ -50,17 +50,3 @@ steps:
|
|||||||
- |
|
- |
|
||||||
curl -X PUT https://gitea.spexeah.com/api/packages/Spexeah/generic/asuro-iso/latest/Asuro.iso \
|
curl -X PUT https://gitea.spexeah.com/api/packages/Spexeah/generic/asuro-iso/latest/Asuro.iso \
|
||||||
-H "Authorization: token $GITEA_TOKEN" --upload-file "Asuro-$(git rev-parse --short HEAD).iso"
|
-H "Authorization: token $GITEA_TOKEN" --upload-file "Asuro-$(git rev-parse --short HEAD).iso"
|
||||||
|
|
||||||
- name: msg status
|
|
||||||
image: appleboy/drone-discord
|
|
||||||
failure: ignore
|
|
||||||
depends_on:
|
|
||||||
- compile
|
|
||||||
when:
|
|
||||||
status: [success, failure, changed]
|
|
||||||
settings:
|
|
||||||
webhook_id:
|
|
||||||
from_secret: discord_webhook_id
|
|
||||||
webhook_token:
|
|
||||||
from_secret: discord_webhook_secret
|
|
||||||
message: "**Asuro Build**\n\n{{#success build.status}}✅ Build successful!\n\n{{else}}❌ Build failed!\n\n{{/success}}Repository: `{{repo.namespace}}/{{repo.name}}`\nBranch: `{{commit.branch}}`\nCommit: `{{commit.sha}}`\nAuthor: `{{commit.author}} <{{commit.email}}>`\n\nGitea Diff: [Link](<{{commit.link}}>)\nDrone Build: [Link](<{{build.link}}>)\n\nMessage: {{commit.message}}"
|
|
||||||
@@ -1,8 +1 @@
|
|||||||
* text=auto eol=lf
|
* text=auto eol=lf
|
||||||
lvglh/** linguist-vendored
|
|
||||||
lvgl/** linguist-vendored
|
|
||||||
.vscode/* linguist-vendored
|
|
||||||
lib/* linguist-generated
|
|
||||||
release/* linguist-generated
|
|
||||||
iso/* linguist-generated
|
|
||||||
*.asm linguist-detectable
|
|
||||||
@@ -11,10 +11,3 @@
|
|||||||
/*.img
|
/*.img
|
||||||
src/include/asuro.pas
|
src/include/asuro.pas
|
||||||
localenv.json
|
localenv.json
|
||||||
/lvgl/
|
|
||||||
dockerout.txt
|
|
||||||
AGENTS.md
|
|
||||||
lessons_learnt.md
|
|
||||||
*.log
|
|
||||||
/doc/*.md
|
|
||||||
wasuro
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
# Map all Aaron identities to a single preferred identity
|
|
||||||
Aaron Hance <[email protected]> aaron <aaron@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c>
|
|
||||||
Aaron Hance <[email protected]> aaronhance <[email protected]>
|
|
||||||
Aaron Hance <[email protected]> aaron hance <[email protected]>
|
|
||||||
Aaron Hance <[email protected]> Aaron <[email protected]>
|
|
||||||
|
|
||||||
# Map all Kieron identities to a single preferred identity
|
|
||||||
Kieron Morris <[email protected]> kieron <kieron@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c>
|
|
||||||
Kieron Morris <[email protected]> Kieron <[email protected]>
|
|
||||||
Kieron Morris <[email protected]> t3hn3rd <[email protected]>
|
|
||||||
|
|
||||||
# Map goose's multiple identities
|
|
||||||
goose <goose@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c> goose <[email protected]>
|
|
||||||
+2
-2
@@ -5,11 +5,11 @@ VOLUME ["/code"]
|
|||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
RUN dpkg --add-architecture i386
|
RUN dpkg --add-architecture i386
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
curl dos2unix wget git make nasm binutils xorriso grub-pc-bin gcc gcc-multilib && \
|
curl dos2unix wget git make nasm binutils:i386 xorriso grub-pc-bin && \
|
||||||
apt-get clean my room
|
apt-get clean my room
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-c"]
|
SHELL ["/bin/bash", "-c"]
|
||||||
ARG FPC_VERSION=3.2.2
|
ARG FPC_VERSION=2.6.4
|
||||||
RUN curl -sL https://sourceforge.net/projects/freepascal/files/Linux/$FPC_VERSION/fpc-$FPC_VERSION.i386-linux.tar/download | tar -xf - && \
|
RUN curl -sL https://sourceforge.net/projects/freepascal/files/Linux/$FPC_VERSION/fpc-$FPC_VERSION.i386-linux.tar/download | tar -xf - && \
|
||||||
pushd fpc-$FPC_VERSION.i386-linux && ./install.sh && popd && \
|
pushd fpc-$FPC_VERSION.i386-linux && ./install.sh && popd && \
|
||||||
rm -rf fpc-$FPC_VERSION.i386-linux
|
rm -rf fpc-$FPC_VERSION.i386-linux
|
||||||
|
|||||||
+1
-3
@@ -7,7 +7,7 @@ echo "Asuro Compilation"
|
|||||||
echo " "
|
echo " "
|
||||||
|
|
||||||
#Compile Stub.asm
|
#Compile Stub.asm
|
||||||
rm -f lib/*
|
rm lib/*
|
||||||
|
|
||||||
runOrFail() {
|
runOrFail() {
|
||||||
local binary=$1
|
local binary=$1
|
||||||
@@ -23,8 +23,6 @@ runOrFail() {
|
|||||||
declare -a run_steps=(
|
declare -a run_steps=(
|
||||||
"compile_stub.sh" "Failed to compile stub!"
|
"compile_stub.sh" "Failed to compile stub!"
|
||||||
"compile_vergen.sh" "Versions failed to compile"
|
"compile_vergen.sh" "Versions failed to compile"
|
||||||
"compile_lvgl.sh" "Failed to compile LVGL!"
|
|
||||||
"compile_wasuro.sh" "Failed to pull Wasuro!"
|
|
||||||
"compile_sources.sh" "Failed to compile FPC Sources!"
|
"compile_sources.sh" "Failed to compile FPC Sources!"
|
||||||
"compile_link.sh" "Failed linking!"
|
"compile_link.sh" "Failed linking!"
|
||||||
"compile_isogen.sh" "Failed to create ISO!"
|
"compile_isogen.sh" "Failed to create ISO!"
|
||||||
|
|||||||
+1
-6
@@ -14,9 +14,4 @@ done;
|
|||||||
objstring=lib/stub.o" "$objstring
|
objstring=lib/stub.o" "$objstring
|
||||||
echo "Object Files: "$objstring
|
echo "Object Files: "$objstring
|
||||||
echo " "
|
echo " "
|
||||||
|
ld -m elf_i386 -s --gc-sections -Tlinker.script -o bin/kernel.bin $objstring
|
||||||
# Find libgcc for i386 (needed by LVGL compiled with gcc)
|
|
||||||
LIBGCC=$(gcc -m32 -print-libgcc-file-name)
|
|
||||||
echo "libgcc: ${LIBGCC}"
|
|
||||||
|
|
||||||
ld -m elf_i386 -s --gc-sections -Tlinker.script -o bin/kernel.bin $objstring --start-group lib/liblvgl.a ${LIBGCC} --end-group
|
|
||||||
-132
@@ -1,132 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# compile_lvgl.sh — Download LVGL v9.2 source and compile into lib/liblvgl.a
|
|
||||||
# Clone & compile in /tmp (fast container-local fs).
|
|
||||||
# Cache liblvgl.a on host mount (/code/lvgl/) to skip rebuild.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
LVGL_VERSION="v9.2.2"
|
|
||||||
LVGL_REPO="https://github.com/lvgl/lvgl.git"
|
|
||||||
LVGL_DIR="/tmp/lvgl"
|
|
||||||
OBJ_DIR="/tmp/lvgl_obj"
|
|
||||||
CONF_DIR="$(pwd)/lvglh"
|
|
||||||
OUT_DIR="$(pwd)/lib"
|
|
||||||
CACHE_DIR="/code/lvgl"
|
|
||||||
|
|
||||||
CC="gcc"
|
|
||||||
CFLAGS="-m32 -march=i686 -ffreestanding \
|
|
||||||
-fno-builtin -fno-stack-protector -fno-pic -fno-pie \
|
|
||||||
-O2 -Wall -Wno-unused-function -Wno-unused-variable \
|
|
||||||
-I${CONF_DIR} \
|
|
||||||
-I${LVGL_DIR} \
|
|
||||||
-I${LVGL_DIR}/.. \
|
|
||||||
-DLV_CONF_INCLUDE_SIMPLE"
|
|
||||||
|
|
||||||
echo " "
|
|
||||||
echo "======================="
|
|
||||||
echo " "
|
|
||||||
echo "Compiling LVGL..."
|
|
||||||
echo " "
|
|
||||||
|
|
||||||
# If cached liblvgl.a exists on host mount, just copy it and skip everything
|
|
||||||
if [ -f "${CACHE_DIR}/liblvgl.a" ]; then
|
|
||||||
echo "Found cached liblvgl.a in ${CACHE_DIR}, copying to ${OUT_DIR}..."
|
|
||||||
cp "${CACHE_DIR}/liblvgl.a" "${OUT_DIR}/liblvgl.a"
|
|
||||||
echo "(Delete lvgl/liblvgl.a to force a full rebuild.)"
|
|
||||||
echo " "
|
|
||||||
echo "LVGL compilation complete (cached)."
|
|
||||||
echo " "
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clone LVGL into /tmp (container-local)
|
|
||||||
rm -rf "$LVGL_DIR"
|
|
||||||
echo "Downloading LVGL ${LVGL_VERSION}..."
|
|
||||||
git clone --depth 1 --branch "${LVGL_VERSION}" "${LVGL_REPO}" "${LVGL_DIR}" 2>&1
|
|
||||||
echo "Download complete."
|
|
||||||
|
|
||||||
# Gather all LVGL .c source files (core library only, no demos/examples)
|
|
||||||
SOURCES=$(find "${LVGL_DIR}/src" -name '*.c' -not -path '*/test/*')
|
|
||||||
TOTAL=$(echo "$SOURCES" | wc -l)
|
|
||||||
echo "Found ${TOTAL} LVGL source files."
|
|
||||||
|
|
||||||
# Compile each .c file to .o (container-local)
|
|
||||||
rm -rf "$OBJ_DIR"
|
|
||||||
mkdir -p "$OBJ_DIR"
|
|
||||||
|
|
||||||
COUNT=0
|
|
||||||
ERRORS=0
|
|
||||||
for src in $SOURCES; do
|
|
||||||
COUNT=$((COUNT + 1))
|
|
||||||
rel="${src#${LVGL_DIR}/src/}"
|
|
||||||
obj_path="${OBJ_DIR}/${rel%.c}.o"
|
|
||||||
mkdir -p "$(dirname "$obj_path")"
|
|
||||||
|
|
||||||
if ! $CC $CFLAGS -c "$src" -o "$obj_path" 2>&1; then
|
|
||||||
echo "FAILED: $rel"
|
|
||||||
ERRORS=$((ERRORS + 1))
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $((COUNT % 50)) -eq 0 ]; then
|
|
||||||
echo " Compiled ${COUNT}/${TOTAL}..."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Compiled ${COUNT} files (${ERRORS} errors)."
|
|
||||||
|
|
||||||
if [ "$ERRORS" -ne 0 ]; then
|
|
||||||
echo "LVGL compilation FAILED with ${ERRORS} errors."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Archive into static library
|
|
||||||
OBJECTS=$(find "$OBJ_DIR" -name '*.o')
|
|
||||||
ar rcs "${OUT_DIR}/liblvgl.a" $OBJECTS
|
|
||||||
echo "Created ${OUT_DIR}/liblvgl.a"
|
|
||||||
|
|
||||||
# Compile custom LVGL extension files from lvglh/
|
|
||||||
LVGLH_SOURCES=$(find "${CONF_DIR}" -name '*.c' 2>/dev/null || true)
|
|
||||||
if [ -n "$LVGLH_SOURCES" ]; then
|
|
||||||
echo " "
|
|
||||||
echo "Compiling custom LVGL files from lvglh/..."
|
|
||||||
LVGLH_OBJ_DIR="/tmp/lvglh_obj"
|
|
||||||
rm -rf "$LVGLH_OBJ_DIR"
|
|
||||||
mkdir -p "$LVGLH_OBJ_DIR"
|
|
||||||
HCOUNT=0
|
|
||||||
HERRORS=0
|
|
||||||
for src in $LVGLH_SOURCES; do
|
|
||||||
HCOUNT=$((HCOUNT + 1))
|
|
||||||
rel="${src#${CONF_DIR}/}"
|
|
||||||
obj_path="${LVGLH_OBJ_DIR}/${rel%.c}.o"
|
|
||||||
mkdir -p "$(dirname "$obj_path")"
|
|
||||||
echo " [lvglh] $rel"
|
|
||||||
if ! $CC $CFLAGS -c "$src" -o "$obj_path" 2>&1; then
|
|
||||||
echo " FAILED: $rel"
|
|
||||||
HERRORS=$((HERRORS + 1))
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "Compiled ${HCOUNT} custom files (${HERRORS} errors)."
|
|
||||||
if [ "$HERRORS" -ne 0 ]; then
|
|
||||||
echo "Custom LVGL compilation FAILED."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# Append custom objects into the existing archive
|
|
||||||
HOBJECTS=$(find "$LVGLH_OBJ_DIR" -name '*.o')
|
|
||||||
ar rcs "${OUT_DIR}/liblvgl.a" $HOBJECTS
|
|
||||||
echo "Updated ${OUT_DIR}/liblvgl.a with custom objects."
|
|
||||||
else
|
|
||||||
echo "No custom LVGL files in lvglh/."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Cache liblvgl.a and source to host mount for next build
|
|
||||||
echo "Caching LVGL to host mount..."
|
|
||||||
mkdir -p "$CACHE_DIR"
|
|
||||||
rm -rf ${CACHE_DIR}/* ${CACHE_DIR}/.[!.]* ${CACHE_DIR}/..?* 2>/dev/null || true
|
|
||||||
cp "${OUT_DIR}/liblvgl.a" "${CACHE_DIR}/liblvgl.a"
|
|
||||||
cp -a "$LVGL_DIR/src" "${CACHE_DIR}/src"
|
|
||||||
cp -a "$LVGL_DIR"/*.h "${CACHE_DIR}/" 2>/dev/null || true
|
|
||||||
cp -a "$OBJ_DIR" "${CACHE_DIR}/obj"
|
|
||||||
echo "Done."
|
|
||||||
|
|
||||||
echo " "
|
|
||||||
echo "LVGL compilation complete."
|
|
||||||
echo " "
|
|
||||||
+1
-7
@@ -4,10 +4,4 @@ echo "======================="
|
|||||||
echo " "
|
echo " "
|
||||||
echo "Compiling FPC Sources..."
|
echo "Compiling FPC Sources..."
|
||||||
echo " "
|
echo " "
|
||||||
# Build -Fu flags for all directories under src/ and wasuro/
|
fpc -Aelf -gw -g -gl -n -vlewn -O3 -Op3 -Si -Sc -Sg -Xd -CX -XXs -CfSSE -CfSSE2 -Rintel -Pi386 -Tlinux -FElib/ -Fusrc/* -Fusrc/driver/* -Fusrc/driver/net/* src/kernel.pas
|
||||||
FU_PATHS="-Fusrc -Fuwasuro"
|
|
||||||
for dir in $(find src wasuro -type d 2>/dev/null); do
|
|
||||||
FU_PATHS="$FU_PATHS -Fu$dir"
|
|
||||||
done
|
|
||||||
|
|
||||||
fpc -Aelf -gw -g -gl -n -v0e -O3 -OpPENTIUM3 -Si -Sc -Sg -Xd -CX -XXs -CfSSE -CfSSE2 -Rintel -Pi386 -Tlinux -FElib/ $FU_PATHS src/kernel.pas
|
|
||||||
@@ -5,4 +5,3 @@ echo " "
|
|||||||
echo "Compiling Stub..."
|
echo "Compiling Stub..."
|
||||||
echo " "
|
echo " "
|
||||||
nasm -f elf src/stub/stub.asm -o lib/stub.o
|
nasm -f elf src/stub/stub.asm -o lib/stub.o
|
||||||
nasm -f elf src/stub/splash_tga.asm -o lib/splash_tga.o
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# compile_wasuro.sh — Pull Wasuro WASM runtime source into wasuro/
|
|
||||||
# Clones the repo (sparse, src/wasm only) and copies the Pascal sources
|
|
||||||
# into $PWD/wasuro so the FPC build can reference them via -Fu.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
WASURO_REPO="https://gitea.spexeah.com/Spexeah/Wasuro.git"
|
|
||||||
WASURO_BRANCH="develop"
|
|
||||||
WASURO_TMP="/tmp/wasuro"
|
|
||||||
WASURO_OUT="$(pwd)/wasuro"
|
|
||||||
|
|
||||||
echo " "
|
|
||||||
echo "======================="
|
|
||||||
echo " "
|
|
||||||
echo "Pulling Wasuro WASM runtime..."
|
|
||||||
echo " "
|
|
||||||
|
|
||||||
# Skip if wasuro/ already has .pas files (cached from previous build)
|
|
||||||
if [ -n "$(find "${WASURO_OUT}" -name '*.pas' 2>/dev/null | head -1)" ]; then
|
|
||||||
echo "Wasuro sources already present in ${WASURO_OUT}, skipping pull."
|
|
||||||
echo " "
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clone sparse checkout (only src/wasm)
|
|
||||||
rm -rf "$WASURO_TMP"
|
|
||||||
git clone --depth 1 --branch "${WASURO_BRANCH}" --filter=blob:none --sparse \
|
|
||||||
"${WASURO_REPO}" "${WASURO_TMP}" 2>&1
|
|
||||||
cd "$WASURO_TMP"
|
|
||||||
git sparse-checkout set src/wasm 2>&1
|
|
||||||
cd -
|
|
||||||
|
|
||||||
echo "Copying src/wasm to ${WASURO_OUT}..."
|
|
||||||
rm -rf "$WASURO_OUT"
|
|
||||||
mkdir -p "$WASURO_OUT"
|
|
||||||
cp -a "${WASURO_TMP}/src/wasm/"* "$WASURO_OUT"/
|
|
||||||
rm -rf "$WASURO_TMP"
|
|
||||||
|
|
||||||
TOTAL=$(find "$WASURO_OUT" -name '*.pas' | wc -l)
|
|
||||||
echo "Copied ${TOTAL} Pascal source files."
|
|
||||||
echo " "
|
|
||||||
echo "Wasuro pull complete."
|
|
||||||
echo " "
|
|
||||||
Whitespace-only changes.
@@ -1,32 +0,0 @@
|
|||||||
#Flat filesystem
|
|
||||||
|
|
||||||
A super simple filesystem for asuro. Folders are emulated in filenames.
|
|
||||||
|
|
||||||
Starts with disk info sector, sector 0 of volume
|
|
||||||
|
|
||||||
---
|
|
||||||
#### disk info
|
|
||||||
|
|
||||||
jmp2boot : ubit24;
|
|
||||||
OEMName : array[0..7] of char;
|
|
||||||
version : uint16 // numerical version of filesystem
|
|
||||||
sectorCount : uint16;
|
|
||||||
fileCount : uint16
|
|
||||||
signature : uint32 = 0x0B00B1E5
|
|
||||||
|
|
||||||
|
|
||||||
the Rest of the sector is reserved
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Starting from sector 1 is the file table. Table size is determined by entry size (64) * fileCount
|
|
||||||
|
|
||||||
---
|
|
||||||
####File entry
|
|
||||||
|
|
||||||
name : array[0..59] of char //file name max 60 chars
|
|
||||||
fileStart : 16bit // start sector of data
|
|
||||||
fileSize : 16bit // data size in sectors
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.0 MiB |
@@ -1 +0,0 @@
|
|||||||
Hello from the Asuro ISO!
|
|
||||||
@@ -34,14 +34,4 @@ SECTIONS
|
|||||||
}
|
}
|
||||||
end = .; _end = .; __end = .;
|
end = .; _end = .; __end = .;
|
||||||
kernel_end = .;
|
kernel_end = .;
|
||||||
|
|
||||||
/DISCARD/ : {
|
|
||||||
*(.init_array*)
|
|
||||||
*(.fini_array*)
|
|
||||||
*(.ctors)
|
|
||||||
*(.dtors)
|
|
||||||
*(.eh_frame*)
|
|
||||||
*(.gcc_except_table*)
|
|
||||||
*(.note.GNU-stack)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
-12886
File diff suppressed because it is too large.
Load diff
-374
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+2709
File diff suppressed because it is too large.
Load diff
Loaded 20 of 196 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user