Welcome to This Week in Ekala #4! Here's what happened this week.

Highlights

  • EkaOS gains an A/B boot scheme with automatic fallback via systemd-boot boot counting
  • New home/user environment module system with program modules for bash, git, gpg-agent, and ssh
  • Full BEAM ecosystem support (Erlang, Mix, Rebar3) and Zig build helpers land in corepkgs
  • ekapkgs-update can now poll RSS feeds for automated upstream release detection

corepkgs

  • Home/user env
    Introduced a home/user environment module system with program modules for bash, git, gpg-agent, and ssh, enabling end-to-end ekapkgs home workflows.
  • Pinning: allow for the repo pins to be committed to store
    Repo pins are now rendered as store paths, preventing evaluation cache misses from unpopulated pins.
  • zig.fetchDeps, zig.buildZigPackage: init
    Added a Zig fixed-output derivation fetcher and build helper, making it straightforward to package Zig projects.
  • ekaos/ab-boot: init A/B boot scheme
    Implements A/B boot via systemd-boot boot counting on existing generation BLS entries. If the health check fails after N attempts, systemd-boot automatically falls back to the previous proven generation.
  • wrapDriverProgram: init
    A new wrapper that creates a runtime glibc + driver library environment, allowing GUI and CUDA applications to run on non-Nix systems with hardware acceleration.
  • VM Image
    EkaOS disk images now build and boot under QEMU, with a reworked initrd, improved systemd service management, and a boot-to-multiuser integration test.
  • beamPackages: init
    Full BEAM ecosystem build support including Erlang, Mix, and Rebar3 builders, a Hex fetcher, and Mix/Rebar3 release helpers.

ekapkgs

22 Go packages were added and Omarchy dependency packages were brought in.

  • Omarchy deps
    Added the dependency packages needed for Omarchy packaging, including libportal, webkitgtk, SDL2, and blender build fixes.
  • Add Go packages (22) from PR #21
    22 new Go packages built with buildGoModule, including hybrid Go+frontend packages with embedded pnpm/npm frontends.

ekapkgs-cli

  • Home support
    Implemented end-to-end ekapkgs home command for managing user environment configurations.
  • System feature parity
    Brought ekapkgs system to near-parity with nixos-rebuild, supporting the core system management workflows.

ekapkgs-update

  • Polling and minor fixes
    Added an RSS feed polling and watch subsystem for automated upstream release detection, along with database migrations and version preference fixes.
  • Version alignment
    Fixes stale commit-SHA revs when a version is bumped by adding a rev fixup rewriting pass during updates.