aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorArslaan Pathan <[email protected]>2026-06-10 22:55:05 +1200
committerArslaan Pathan <[email protected]>2026-06-10 22:55:05 +1200
commitd766053b0d4262931626e41b63a8acac4921bb5c (patch)
tree0f776c7f5ebf366bdde7e86d56ef0ffde5fcccb6 /README.md
parent916738d7ed35cc367157bea96f25c1a253cdb5ec (diff)
downloadyerbalinux-d766053b0d4262931626e41b63a8acac4921bb5c.tar.xz
yerbalinux-d766053b0d4262931626e41b63a8acac4921bb5c.zip
Add a proper README
Diffstat (limited to 'README.md')
-rw-r--r--README.md61
1 files changed, 60 insertions, 1 deletions
diff --git a/README.md b/README.md
index ae9f3de..8c054a8 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,63 @@
# Yerba Linux
-Lightweight rolling-release linux distro
+Lightweight rolling-release linux distro using the runit init system
+## Why am I building this?
+
+I am 13, code low-level things for fun, and have too much free time. Why DIDN'T you expect me to make a Linux distro?
+
+Jokes aside, I made this distro because other distros just didn't fit what I wanted to do, and also, just for fun and a new side project. As I am currently developing this distro, I use Gentoo on my laptop. It's a great distro, until you quickly need a package for something and have to compile it. Binary packages exist, but it's no use because they just aren't as streamlined and I find them annoying on Gentoo.
+
+Therefore, I searched for other distros.
+
+- Arch? Uses systemd, which I don't personally like for many reasons
+- Debian? Not rolling-release and too normal
+- Void? Seems great, but a lot of packages are unmaintained in the repos (to be honest I just want an excuse to not use Void and to make my own distro.. If I wasn't making this distro I'd probably be on Void at the moment)
+- ...
+
+Pretty much, I decided to make my own distro for fun, and also, if you make the distro yourself, it will undeniably be the most customisable of them all.
+(plus, imagine the aura of someone asking you what your distro is, saying they've never heard about it, and you casually drop "Yeah because I made it myself 🗿")
+
+## How to try it
+
+At the moment, it's not a very usable distro, so I don't recommend you try it, but if you must, then run the following command in the root of the repository:
+```bash
+nix build .
+```
+
+This will build the ISO and all dependencies, leaving the ISO in `result/yerba-linux.iso`.
+
+## 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
+- 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.
+
+Generate a patch with `git format-patch HEAD~1` and email to [[email protected]](mailto:[email protected]) or send to XMPP address [[email protected]](xmpp:[email protected]), beginning the subject line with [PATCH yerbalinux]
+
+*If you are sending a revised version of a previous patch, please use [PATCH yerbalinux v2, v3, etc].*