From 70be800f773450e4246837704644e7b65e5b0c95 Mon Sep 17 00:00:00 2001 From: kurogeek Date: Mon, 26 Oct 2026 06:53:24 +0000 Subject: [PATCH] overlays: work around nixpkgs#578265 (posthog broken with mcp 2) nixpkgs#575004 bumped mcp 1.29 -> 2.2 and marked python3Packages.posthog broken; only one optional MCP test fails. frappe needs posthog at runtime. Skip that test and clear meta.broken until the upstream unbreak lands; the overlay warns at eval time once it does. --- overlays/default.nix | 4 ++-- overlays/nixpkgs-pr-578265-posthog.nix | 33 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 overlays/nixpkgs-pr-578265-posthog.nix diff --git a/overlays/default.nix b/overlays/default.nix index 88232b5d..a17e401a 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -2,8 +2,8 @@ { flake.overlays = { packagesOverlay = import ../pkgs/overlay.nix; - # TEMPORARY: drop with the file once NixOS/nixpkgs#576853 reaches nixpkgs-unstable. - phpPr576853Overlay = import ./nixpkgs-pr-576853-php.nix; + # TEMPORARY: drop with the file once NixOS/nixpkgs#578265 reaches nixos-unstable. + posthogPr578265Overlay = import ./nixpkgs-pr-578265-posthog.nix; frappixFrappeOverlay = inputs.frappix.frappeOverlay.x86_64-linux; frappixLibsOverlay = inputs.frappix.libsOverlay.x86_64-linux; diff --git a/overlays/nixpkgs-pr-578265-posthog.nix b/overlays/nixpkgs-pr-578265-posthog.nix new file mode 100644 index 00000000..88bbb57c --- /dev/null +++ b/overlays/nixpkgs-pr-578265-posthog.nix @@ -0,0 +1,33 @@ +# TEMPORARY workaround for NixOS/nixpkgs#578265 (python3Packages.posthog: unbreak). +# nixpkgs#575004 bumped mcp 1.29 -> 2.2 and marked posthog broken; the only +# failure is one test in posthog's optional MCP integration (field rename in +# mcp 2). posthog is a runtime dependency of frappe, so frappix machines fail +# to evaluate without this. +# +# Remove once `nix flake update` pulls the PR in: delete this file and every +# reference to it (grep 578265). The overlay becomes a no-op and warns at eval +# time as soon as the locked nixpkgs no longer marks posthog broken. +_final: prev: +let + inherit (prev) lib; +in +{ + pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ + (_pyFinal: pyPrev: { + posthog = + if !pyPrev.posthog.meta.broken then + lib.warn "nixpkgs no longer marks posthog broken: NixOS/nixpkgs#578265 has landed, remove overlays/nixpkgs-pr-578265-posthog.nix" pyPrev.posthog + else + pyPrev.posthog.overridePythonAttrs (old: { + disabledTests = old.disabledTests ++ [ + # AttributeError: 'CallToolResult' object has no attribute 'structuredContent' + # (mcp>=2 renamed the field to `structured_content`) + "test_prepare_tool_result_delivers_into_call_tool_result_models" + ]; + meta = old.meta // { + broken = false; + }; + }); + }) + ]; +}