From 15561a3201debac93ffea0a441dd68ff1ad0063f Mon Sep 17 00:00:00 2001 From: 0xrsydn Date: Mon, 2 Nov 2026 19:45:57 +0700 Subject: [PATCH] fix(packages): gate codex on platform support --- flake.nix | 13 ++++++++++--- packages/codex.nix | 7 ++++++- packages/default.nix | 16 ++++++++++++++-- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/flake.nix b/flake.nix index 843b66a..55d1ad0 100644 --- a/flake.nix +++ b/flake.nix @@ -228,9 +228,16 @@ formatter = forEachSystem (system: (mkPkgs system).nixfmt); - checks = forEachSystem (system: { - inherit (self.packages.${system}) cf codex; - }); + checks = forEachSystem ( + system: + let + customPkgs = self.packages.${system}; + in + { + inherit (customPkgs) cf; + } + // lib.optionalAttrs (customPkgs ? codex) { inherit (customPkgs) codex; } + ); packages = forEachSystem ( system: diff --git a/packages/codex.nix b/packages/codex.nix index 8d38cf4..db037ba 100644 --- a/packages/codex.nix +++ b/packages/codex.nix @@ -1,6 +1,11 @@ { pkgs, llm-agents }: let - upstream = llm-agents.packages.${pkgs.stdenv.hostPlatform.system}.codex; + system = pkgs.stdenv.hostPlatform.system; + upstream = + if builtins.hasAttr system llm-agents.packages then + llm-agents.packages.${system}.codex + else + throw "codex: llm-agents does not provide packages.${system} (supported: ${builtins.concatStringsSep ", " (builtins.attrNames llm-agents.packages)})"; manifest = pkgs.writeText "codex-package.json" ( builtins.toJSON { layoutVersion = 1; diff --git a/packages/default.nix b/packages/default.nix index 78a16ed..109e621 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -1,6 +1,18 @@ -{ pkgs, llm-agents, ... }: +{ + pkgs, + lib, + llm-agents, + ... +}: +let + # llm-agents does not publish every platform (it dropped x86_64-darwin), so + # expose codex only where the input provides it. + hasCodex = builtins.hasAttr pkgs.stdenv.hostPlatform.system llm-agents.packages; +in { cf = pkgs.callPackage ./cf.nix { }; - codex = pkgs.callPackage ./codex.nix { inherit llm-agents; }; pikpak-cli = pkgs.callPackage ./pikpak-cli.nix { }; } +// lib.optionalAttrs hasCodex { + codex = pkgs.callPackage ./codex.nix { inherit llm-agents; }; +}