From 9b1238eb39fdadf6ad8db85f52dbe1395ba37d0f Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Wed, 2 Sep 2026 13:21:30 -0400 Subject: [PATCH] add: apple container build target --- overlays/atuin.nix | 43 +++++++++++++++++++++++++++++++++++++++ overlays/container.nix | 10 +++++++++ overlays/default.nix | 46 ++++-------------------------------------- pkgs/default.nix | 3 +++ 4 files changed, 60 insertions(+), 42 deletions(-) create mode 100644 overlays/atuin.nix create mode 100644 overlays/container.nix diff --git a/overlays/atuin.nix b/overlays/atuin.nix new file mode 100644 index 0000000..6bca2b5 --- /dev/null +++ b/overlays/atuin.nix @@ -0,0 +1,43 @@ +final: prev: +let + rustLatest = prev.rust-bin.stable.latest.default; + rustPlatform = prev.makeRustPlatform { + cargo = rustLatest; + rustc = rustLatest; + }; +in +{ + atuinLatest = (prev.atuin.override { inherit rustPlatform; }).overrideAttrs (oldAttrs: rec { + version = "18.19.0"; + + src = prev.fetchFromGitHub { + owner = "atuinsh"; + repo = "atuin"; + rev = "v${version}"; + hash = "sha256-yAw+ty6FUnFbiRTdAe2QQHzj6uU24fZ/bEIXcHl/thg="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit src; + hash = "sha256-jirVe0+N5+UHZWioj8AipUhawMBameqEJJpa8HPTnfw="; + }; + + cargoBuildFeatures = [ + "ai" + "client" + "clipboard" + "daemon" + "hex" + "sync" + ]; + cargoCheckFeatures = cargoBuildFeatures; + + preCheck = (oldAttrs.preCheck or "") + '' + export HOME="$TMPDIR" + export XDG_CONFIG_HOME="$TMPDIR/.config" + export XDG_DATA_HOME="$TMPDIR/.local/share" + export XDG_STATE_HOME="$TMPDIR/.local/state" + mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME" + ''; + }); +} diff --git a/overlays/container.nix b/overlays/container.nix new file mode 100644 index 0000000..470c9f4 --- /dev/null +++ b/overlays/container.nix @@ -0,0 +1,10 @@ +final: prev: { + containerLatest = prev.container.overrideAttrs (oldAttrs: rec { + version = "1.3.1"; + + src = prev.fetchurl { + url = "https://github.com/apple/container/releases/download/${version}/container-${version}-installer-signed.pkg"; + hash = "sha256-p8G515J9MIdfL2x70dDLBsLapspXzp6QpRROiY/fVKg="; + }; + }); +} diff --git a/overlays/default.nix b/overlays/default.nix index 6bca2b5..6a5410c 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,43 +1,5 @@ final: prev: -let - rustLatest = prev.rust-bin.stable.latest.default; - rustPlatform = prev.makeRustPlatform { - cargo = rustLatest; - rustc = rustLatest; - }; -in -{ - atuinLatest = (prev.atuin.override { inherit rustPlatform; }).overrideAttrs (oldAttrs: rec { - version = "18.19.0"; - - src = prev.fetchFromGitHub { - owner = "atuinsh"; - repo = "atuin"; - rev = "v${version}"; - hash = "sha256-yAw+ty6FUnFbiRTdAe2QQHzj6uU24fZ/bEIXcHl/thg="; - }; - - cargoDeps = rustPlatform.fetchCargoVendor { - inherit src; - hash = "sha256-jirVe0+N5+UHZWioj8AipUhawMBameqEJJpa8HPTnfw="; - }; - - cargoBuildFeatures = [ - "ai" - "client" - "clipboard" - "daemon" - "hex" - "sync" - ]; - cargoCheckFeatures = cargoBuildFeatures; - - preCheck = (oldAttrs.preCheck or "") + '' - export HOME="$TMPDIR" - export XDG_CONFIG_HOME="$TMPDIR/.config" - export XDG_DATA_HOME="$TMPDIR/.local/share" - export XDG_STATE_HOME="$TMPDIR/.local/state" - mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME" - ''; - }); -} +prev.lib.composeManyExtensions [ + (import ./atuin.nix) + (import ./container.nix) +] final prev diff --git a/pkgs/default.nix b/pkgs/default.nix index d28ca60..49ab505 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -4,7 +4,10 @@ caitsith ? null }: { + # any overlays we define here atuinLatest = pkgs.atuinLatest; + containerLatest = pkgs.containerLatest; + # any packages that are added to pkgs and are inputs, we inherit them here inherit hildibrand; inherit caitsith;