Yerba Linux
- 19 Devlogs
- 30 Total hours
Versatile, general-purpose, atomic security-focused Linux distro
Versatile, general-purpose, atomic security-focused Linux distro
I spent AGES trying to get pkgsrc to work as the package manager. It does NOT build in Yocto. I TAKE BACK EVERYTHING GOOD I SAID ABOUT PKGSRC THE BUILD SYSTEM IS SO SHIT AND IT DOESNT WORK AND IT USES NON STANDARD BUILD AND AAAAHHHHHHHHHHHHHHHHHHHHHH
REST IN PISS PKGSRC YOU WILL NOT BE MISSED
I ended up using DNF/RPM (yes, the package manager from Fedora!)
You will see in the screenshot below that DNF is failing to update repos, that’s because I kind of forgot to get networking working before trying the package manager (also using Fedora repo just for testing, will not be in final one)
I spent some time modifying my Linux distro BitBake/Yocto recipes to migrate from GNU coreutils (and BusyBox) to FreeBSD coreutils, specifically chimerautils, the ported FreeBSD core utilities used in Chimera Linux.
I did this to add some extra security (*BSD is normally more security-focused and scrutinized, afaik) and to align a bit more with UNIX philosophy ^_^
I spent a LOT of time debugging the build system. Last time I worked on this was 2 months ago, and that was before I switched to Void Linux (musl) from Gentoo. Logged time for this devlog is so low because it’s 99% debugging black magic logs and 1% of actually modifying the configs.
Lessons learned: don’t trust the GNU mirrors. don’t trust BitBake to do its job, and don’t set a custom DL_DIR for BitBake because it will not use it properly and cause issues. also do not do Yocto development on musl libc.
It turns out that Yocto compilation also just dies on musl so I’m now running the build in Docker (recurring theme with my projects, isn’t it?)
I think I’ve almost got the build to start working again, just need to fix some locales in the Docker container and we should be good to go!
Hey everyone! I know I’ve been gone for a while, I’ve been distracted by many other projects and ideas and also trying to work on the package manager for this distro. (got distracted with that too)
I’m not sure what this logged time on this devlog is for, it might be for some few changes I didn’t devlog last time I worked on this project.
I think I’m going to switch the focus of this distro from here, to not just be minimalist and a knockoff of Void, but to be a Void-like minimalist distro with secureblue/GrapheneOS-level security.
It’s probably going to be hard to pull off but I think it will be worth it.
Thanks all!
I DID IT
IT WORKS
I CAN LOGIN AS YERBA NOW
WITH THE PASSWORD yerba!!!!

it was PAM.
it’s always PAM.
I just needed to install PAM. 
I got it to run QEMU with a graphical window, AND I also made a logo!!!
I followed the guide from https://anchor.hackclub.com to make this logo, thanks Anchor!
I am still trying to figure out why login for yerba doesnt work 
I’ve got privilege escalation to work along with networking (dhcpcd) and am working on getting audio to work! I’m trying to make a non-root user with a password, for some reason Yocto is yelling at me a lot (its been hours, helpppp)
(p.s. I do not have a relevant screenshot at the moment, and it has been a long day, so here is a filler red gradient that I have for some reason)
Sorry I haven’t been devlogging for a while! I got way too focused on getting back to where I was before on the new Yocto build system!
I have got Yocto to create a working rootfs and load the runit init system!
Yep, another clean slate it is.
This time, it’s Yocto, and it’s here to stay (insha allah).
I HATE YOu NIX.
AAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAA
STOP LINKING AGAINST /NIX/STORE PATHS
iknow nix is meant to be a package manager but WHAT OTHER OPTIONS DO I HAVEEEEE
MAKEFILE IS SCUFFED, BUILDROOT IS MORE EMBEDDED, ETC
atp im just gonna switch off of nix
(yes, clean slate for the distro V2…. yay.. /s)
(i mean i guess i wont be fighting with nix)
IT WORKS IT WORKS IT WORKS
THE INIT SYSTEM DOES THE THING AND SHOWS GETTY
RUNIT WORKS
IT WORKS!!!!!!!!!!!!
Edit: The solution was to launch /usr/bin/runit directly instead of using /usr/bin/runit-init. This is not necessarily correct, but /usr/bin/runit-init is currently broken due to Nixpkgs assuming this is a Nix-based distro when it is not. Insha allah later during the development cycle, I will replace the Nixpkgs flake with my own flake that accounts for this. For now, too bad, the distro boots
I’ve got musl to load into the initramfs, and am working on adding runit as the init system
I am very confused as to why runit fails to switch_root, the error is very cryptic
EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
I GOT THE THING TO WORK!! THE GRAPHICAL TTY!!
are you serious rn, it was a single kernel config opt. i spent very very long debugging this.
a lot longer than i anticipated.
BUT STILL IT WORKED YAYAYAYAYAYAYAYAYAYAY
IT BOOTS!!! IT FREAKING BOOTS!!!!! THE BUSYBOX BUILD WORKS!! THE ROOTFS BUILDS!! IT LOADS THE SQUASHFS WITH OVERLAYFS!!!! YAYAYAYAYAYAYAYAY
Made a lot of refactors, and added placeholder targets
Also got the kernel build to work!!
Made a clean slate and switched my distro’s build system to Nix for reproducibility and to get away from my Makefile that used scuffed hacks
This doesn’t mean my distro will use Nix or be like NixOS, but it will help improve development speed and quality
Finally got it to nix build an initramfs without errors!
Finally got it to create a live ISO and boot with Limine!!!!
Did a bit of debugging and testing, and got the initramfs to boot.
TODO: Make it create a squashfs root
Got a basic build system working for my in-progress distro, Yerba Linux
Builds the Linux kernel, BusyBox, and creates a minimal BusyBox initramfs that drops you to a shell
TODO: Make it create an ISO with GRUB/any bootloader