Remove ISO build tooling (deferred to later)
This commit is contained in:
@@ -7,11 +7,10 @@ SHELL := sh
|
|||||||
KAMA ?= ../kama
|
KAMA ?= ../kama
|
||||||
PKGS ?= ../kama-packages
|
PKGS ?= ../kama-packages
|
||||||
|
|
||||||
.PHONY: iso install recipe-check clean
|
.PHONY: rootfs install recipe-check clean
|
||||||
|
|
||||||
iso:
|
rootfs:
|
||||||
sh scripts/build-root.sh
|
sh scripts/build-root.sh
|
||||||
sh iso/build-iso.sh
|
|
||||||
|
|
||||||
install:
|
install:
|
||||||
sh installer/install.sh
|
sh installer/install.sh
|
||||||
@@ -22,4 +21,4 @@ recipe-check:
|
|||||||
done
|
done
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf iso/work /tmp/keru
|
rm -rf /tmp/keru
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ depends on live in their own repositories:
|
|||||||
Every package on Keru is built from source by **Kama**, a deliberately small
|
Every package on Keru is built from source by **Kama**, a deliberately small
|
||||||
package manager that simply runs the commands in each recipe. No binary
|
package manager that simply runs the commands in each recipe. No binary
|
||||||
packages, no opaque package machinery. The whole system — toolchain included —
|
packages, no opaque package machinery. The whole system — toolchain included —
|
||||||
is compiled from original source, and the install image is assembled by hand
|
is compiled from original source.
|
||||||
rather than with a stock tool like archiso.
|
|
||||||
|
|
||||||
Runit handles services. The standard Linux kernel drives the hardware.
|
Runit handles services. The standard Linux kernel drives the hardware.
|
||||||
`nmtui` manages networking. Nothing you didn't ask for ends up on the disk.
|
`nmtui` manages networking. Nothing you didn't ask for ends up on the disk.
|
||||||
@@ -38,10 +37,11 @@ disk is precisely the one you chose.
|
|||||||
|
|
||||||
```
|
```
|
||||||
installer/ TUI installer — writes make.conf from your choices
|
installer/ TUI installer — writes make.conf from your choices
|
||||||
iso/ from-scratch ISO build tooling (xorriso + squashfs + syslinux)
|
|
||||||
profile/ make.conf template (the swappables + build flags)
|
profile/ make.conf template (the swappables + build flags)
|
||||||
scripts/ build pipeline: build-root, mkfs-root, common helpers
|
scripts/ build pipeline: build-root, mkfs-root, common helpers
|
||||||
docs/ design docs + the recipe format spec
|
docs/ design docs + the recipe format spec
|
||||||
|
|
||||||
|
(ISO build tooling is not in this repo yet — coming later.)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
@@ -62,7 +62,6 @@ Then, from `KeruOS/`:
|
|||||||
make install # run the TUI installer
|
make install # run the TUI installer
|
||||||
# or, headlessly:
|
# or, headlessly:
|
||||||
sh scripts/build-root.sh # build a rootfs into /tmp/keru/root
|
sh scripts/build-root.sh # build a rootfs into /tmp/keru/root
|
||||||
make iso # assemble an install image
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Requires the sibling `kama` and `kama-packages` repos to be present.
|
Requires the sibling `kama` and `kama-packages` repos to be present.
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
# build-iso.sh — assemble a Keru OS ISO from the built rootfs and kernel
|
|
||||||
#
|
|
||||||
# From-scratch approach (no archiso): we lay out the classic isohybrid
|
|
||||||
# structure manually, squash the rootfs, and generate the ISO with xorriso +
|
|
||||||
# isolinux/syslinux (or syslinux's isohybrid). This is the LFS/Debian-live
|
|
||||||
# style path.
|
|
||||||
#
|
|
||||||
# Requires on the build host: xorriso, squashfs-tools, syslinux/isolinux.
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
. "$(dirname "$0")/common.sh"
|
|
||||||
|
|
||||||
ROOT="${ROOT:-/tmp/keru/root}" # target rootfs (from make.conf)
|
|
||||||
ISO_OUT="${ISO_OUT:-$KERU_ROOT/iso/keru-$(date +%Y%m%d).iso}"
|
|
||||||
WORK="$KERU_ROOT/iso/work"
|
|
||||||
ISOIMG="$WORK/isolinux"
|
|
||||||
|
|
||||||
info "building Keru ISO -> $ISO_OUT"
|
|
||||||
[ -d "$ROOT" ] || die "rootfs not found at $ROOT (run build-root.sh first)"
|
|
||||||
|
|
||||||
have xorriso || die "xorriso not installed"
|
|
||||||
have mksquashfs || die "squashfs-tools not installed"
|
|
||||||
|
|
||||||
rm -rf "$WORK"; mkdir -p "$ISOIMG"
|
|
||||||
info "generating isolinux config"
|
|
||||||
cp /usr/lib/syslinux/bios/isolinux.bin "$ISOIMG/" || true
|
|
||||||
cp /usr/lib/syslinux/bios/ldlinux.c32 "$ISOIMG/" || true
|
|
||||||
cat > "$ISOIMG/isolinux.cfg" <<'EOF'
|
|
||||||
UI vesamenu.c32
|
|
||||||
DEFAULT keru
|
|
||||||
LABEL keru
|
|
||||||
LINUX /boot/vmlinuz-keru
|
|
||||||
INITRD /boot/initramfs-keru.img
|
|
||||||
APPEND root=live:LABEL=KERU_LIVE toram quiet
|
|
||||||
EOF
|
|
||||||
|
|
||||||
info "packing rootfs into squashfs"
|
|
||||||
mksquashfs "$ROOT" "$WORK/keru.sfs" -noappend -comp xz
|
|
||||||
|
|
||||||
info "writing ISO (isohybrid)"
|
|
||||||
xorriso -as mkisofs \
|
|
||||||
-o "$ISO_OUT" \
|
|
||||||
-V KERU_LIVE \
|
|
||||||
-b isolinux/isolinux.bin \
|
|
||||||
-c isolinux/boot.cat \
|
|
||||||
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
|
||||||
-isohybrid-mbr /usr/lib/syslinux/bios/isohdpfx.bin \
|
|
||||||
"$WORK"
|
|
||||||
|
|
||||||
info "done: $ISO_OUT"
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
# common.sh — shared helpers for Keru scripts (installer, iso, kama)
|
# common.sh — shared helpers for Keru scripts (installer, build pipeline)
|
||||||
PREFIX="\033[1;35m[ keru ]\033[0m"
|
PREFIX="\033[1;35m[ keru ]\033[0m"
|
||||||
msg() { printf '%b %s\n' "$PREFIX" "$*"; }
|
msg() { printf '%b %s\n' "$PREFIX" "$*"; }
|
||||||
info() { printf '%b \033[1;34m==>\033[0m %s\n' "$PREFIX" "$*"; }
|
info() { printf '%b \033[1;34m==>\033[0m %s\n' "$PREFIX" "$*"; }
|
||||||
|
|||||||
Reference in New Issue
Block a user