From acc3181c2368acbf2017cb5b025b4aa856bc79f7 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sun, 19 Apr 2026 16:36:35 -0400 Subject: [PATCH 1/4] flake: add albert-sourceos package (fork w/ submodules) for workstation plugin lane --- flake.nix | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index bc322e1..65b5bf4 100644 --- a/flake.nix +++ b/flake.nix @@ -3,9 +3,16 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + # SourceOS fork of Albert (dev branch) including the `plugins/sourceos` action bus plugin. + # Use git fetcher with submodules enabled because Albert relies on many submodules. + albert_src = { + url = "git+https://github.com/SociOS-Linux/albert?ref=dev&submodules=1"; + flake = false; + }; }; - outputs = { self, nixpkgs }: + outputs = { self, nixpkgs, albert_src }: let lib = nixpkgs.lib; systems = [ "x86_64-linux" "aarch64-linux" ]; @@ -19,6 +26,14 @@ meshd = pkgs.callPackage ./packages/mesh/meshd.nix { }; meshd-linkd = pkgs.callPackage ./packages/mesh/meshd-linkd.nix { }; meshd-exitd = pkgs.callPackage ./packages/mesh/meshd-exitd.nix { }; + + # Nix lane for Workstation v0: build Albert from our fork so the SourceOS plugin ships. + # This keeps clean installs from depending on distro packaging including our plugin. + albert-sourceos = pkgs.albert.overrideAttrs (old: { + src = albert_src; + version = "${old.version or "0.0.0"}-sourceos"; + }); + default = meshd; }); @@ -81,6 +96,7 @@ if [ -n "${missingStr}" ]; then echo "NOTE: missing nixpkgs attrs (not added): ${missingStr}" fi + echo "Nix lane: build/install Albert with SourceOS plugin via: nix profile install .#albert-sourceos" ''; }; }); From d13d9685073aca09f3fa67ab36423c91bc58e2a0 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sun, 19 Apr 2026 16:38:40 -0400 Subject: [PATCH 2/4] docs(workstation): mention nix lane for albert-sourceos package --- docs/workstation/RUNBOOK.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/workstation/RUNBOOK.md b/docs/workstation/RUNBOOK.md index 3d4707e..8ac388d 100644 --- a/docs/workstation/RUNBOOK.md +++ b/docs/workstation/RUNBOOK.md @@ -139,9 +139,11 @@ The SourceOS Albert plugin lives in `SociOS-Linux/albert` (dev branch) and is in - `SourceOS: doctor` → `sourceos doctor --open` - plus quick-launch actions (sesh/tmux/k9s/lazygit/lazydocker/yazi) -If you are using a distro-provided Albert package, it may not include this SourceOS plugin. In that case: -- build/install Albert from `SociOS-Linux/albert`, or -- package the plugin into your chosen distribution lane (future workstream). +If you are using a distro-provided Albert package, it may not include this SourceOS plugin. + +Nix lane: +- This repo provides a Nix package that builds Albert from the SourceOS fork (including `plugins/sourceos`). +- Install it with `nix profile install .#albert-sourceos` and restart Albert. --- From 9fa6d3f920d45b2eb7f0bed285b4b688627755e3 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sun, 19 Apr 2026 16:48:32 -0400 Subject: [PATCH 3/4] ci(nix): add build check for albert-sourceos flake package --- .../workflows/nix-build-albert-sourceos.yml | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/nix-build-albert-sourceos.yml diff --git a/.github/workflows/nix-build-albert-sourceos.yml b/.github/workflows/nix-build-albert-sourceos.yml new file mode 100644 index 0000000..6eb5ac7 --- /dev/null +++ b/.github/workflows/nix-build-albert-sourceos.yml @@ -0,0 +1,31 @@ +name: nix-build-albert-sourceos + +on: + pull_request: + paths: + - 'flake.nix' + - 'flake.lock' + - '.github/workflows/nix-build-albert-sourceos.yml' + push: + branches: + - main + paths: + - 'flake.nix' + - 'flake.lock' + - '.github/workflows/nix-build-albert-sourceos.yml' + +jobs: + build-albert-sourceos: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install nix (apt) + run: sudo apt-get update && sudo apt-get install -y nix-bin + + - name: Build albert-sourceos + run: | + set -euo pipefail + nix --version + nix build .#albert-sourceos --extra-experimental-features 'nix-command flakes' -L From a849fcbe66da3068812118dcef0886b284c07a86 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sun, 19 Apr 2026 16:56:08 -0400 Subject: [PATCH 4/4] ci(nix): build in local store mode (avoid nix-daemon socket permission in CI) --- .github/workflows/nix-build-albert-sourceos.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nix-build-albert-sourceos.yml b/.github/workflows/nix-build-albert-sourceos.yml index 6eb5ac7..cbe66b0 100644 --- a/.github/workflows/nix-build-albert-sourceos.yml +++ b/.github/workflows/nix-build-albert-sourceos.yml @@ -27,5 +27,7 @@ jobs: - name: Build albert-sourceos run: | set -euo pipefail - nix --version - nix build .#albert-sourceos --extra-experimental-features 'nix-command flakes' -L + # Ubuntu nix-bin is configured for daemon mode by default. + # GitHub runners do not run systemd; use local store mode for CI. + sudo nix --version + sudo env NIX_REMOTE=local nix build .#albert-sourceos --extra-experimental-features 'nix-command flakes' -L