From ae4195ef9048b42058083112612c0afec612f743 Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Sun, 14 Jun 2026 17:14:16 +1200 Subject: Work on getting runit to work and add meta-oe --- README.md | 22 +++++----------------- kas.yml | 7 +++++++ meta-yerba/conf/distro/yerba.conf | 7 ++++--- meta-yerba/conf/machine/yerba-x86_64.conf | 2 +- 4 files changed, 17 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 8c054a8..b6b4f37 100644 --- a/README.md +++ b/README.md @@ -29,31 +29,19 @@ This will build the ISO and all dependencies, leaving the ISO in `result/yerba-l ## Current Status -- Kernel: working, 7.0.11 -- Bootloader: working, Limine 8.x -- Libc: working, musl -- Init system: working, runit -- SquashFS image (+ OverlayFS live ISO): working +- Kernel: working maybe? +- Bootloader: ???? +- Libc: working (probably), musl +- Init system: TBD (currently busybox init) +- SquashFS image (+ OverlayFS live ISO): TBD - Networking: TBD - Audio: TBD - Package manager: TBD - Installer: TBD - Graphics: TBD -## Why Nix? - -Yerba Linux uses Nix as the build system and build tool only, not as the base of the distro. To clarify, **Yerba Linux is NOT based on NixOS and is not a Nix-like distro.** -Nix is used as a build system because it provides reproducible builds, and is perfect for constructing a distro from scratch. The live ISO (hopefully) contains no Nix store paths, and the goal is to eventually replace the few Nixpkgs packages with our own Nix flakes (as documented below in "Known Issues"). - --- -## Known issues (for my future reference) - -- Some packages use the default package flakes from Nixpkgs, this is an issue because these usually assume Nix. For example, runit is currently in a scuffed position: /usr/bin/runit-init doesn't work (hardcoded nix paths..), therefore you have to switch_root into /usr/bin/runit directly, and runit refuses to work unless it is statically linked because dynamic pkgsMusl.runit links against Nix store paths - - The solution is to just make your own flakes - - Some things, like BusyBox and runit, are only using it so I can get a working distro shipped and then I can hopefully make flakes for those ones slowly and make the build less scuffed ^_^ - - Technically, in *theory* if the user updates it will overwrite those scuffed Nix ones with proper ones from the repos, but it's still scuffed in general and is only temporary - ## Contributing > Note: At the moment, this project has no license due to its early stages. Until it is licensed, I strongly advise against contributing for the sole sake that copyright will not be set in stone. diff --git a/kas.yml b/kas.yml index 18e8ede..6d739b9 100644 --- a/kas.yml +++ b/kas.yml @@ -24,5 +24,12 @@ repos: layers: meta: + meta-openembedded: + url: https://git.openembedded.org/meta-openembedded + branch: scarthgap + path: sources/meta-openembedded + layers: + meta-oe: + meta-yerba: path: ./meta-yerba diff --git a/meta-yerba/conf/distro/yerba.conf b/meta-yerba/conf/distro/yerba.conf index 18deb15..c5f601c 100644 --- a/meta-yerba/conf/distro/yerba.conf +++ b/meta-yerba/conf/distro/yerba.conf @@ -6,12 +6,13 @@ MAINTAINER = "Arslaan Pathan " TCLIBC = "musl" +IMAGE_INSTALL:append = " runit" + # add stuff later DISTRO_FEATURES = "" -# temporary busybox init, runit later -VIRTUAL-RUNTIME_init_manager = "busybox" -VIRTUAL-RUNTIME_initscripts = "initscripts" +VIRTUAL-RUNTIME_init_manager = "runit" +VIRTUAL-RUNTIME_initscripts = "runit" VIRTUAL-RUNTIME_base-utils = "busybox" VIRTUAL_RUNTIME_login_manager = "busybox" diff --git a/meta-yerba/conf/machine/yerba-x86_64.conf b/meta-yerba/conf/machine/yerba-x86_64.conf index ae1c971..c262b31 100644 --- a/meta-yerba/conf/machine/yerba-x86_64.conf +++ b/meta-yerba/conf/machine/yerba-x86_64.conf @@ -20,5 +20,5 @@ QB_MACHINE = "-machine pc" QB_CPU = "-cpu core2duo" QB_KERNEL_CMDLINE_APPEND = "console=ttyS0 oprofile.timer=1" -IMAGE_FSTYPES += "wic wic.bmap" +IMAGE_FSTYPES += "wic wic.bmap ext4" WKS_FILE ?= "directdisk.wks" -- cgit v1.2.3