From 0c71ca051e6a6d42db03a946a928c365f45b0e1c Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Mon, 2 Mar 2026 20:43:21 -0800 Subject: [PATCH 1/2] ninja: adopt mkManyVariants --- .../0001-spawn-sh-instead-of-bin-sh.patch | 0 pkgs-many/ninja/default.nix | 9 ++++++ .../ninja/generic.nix | 32 +++++++++---------- {pkgs => pkgs-many}/ninja/setup-hook.sh | 0 pkgs-many/ninja/variants.nix | 17 ++++++++++ 5 files changed, 41 insertions(+), 17 deletions(-) rename {pkgs => pkgs-many}/ninja/0001-spawn-sh-instead-of-bin-sh.patch (100%) create mode 100644 pkgs-many/ninja/default.nix rename pkgs/ninja/default.nix => pkgs-many/ninja/generic.nix (84%) rename {pkgs => pkgs-many}/ninja/setup-hook.sh (100%) create mode 100644 pkgs-many/ninja/variants.nix diff --git a/pkgs/ninja/0001-spawn-sh-instead-of-bin-sh.patch b/pkgs-many/ninja/0001-spawn-sh-instead-of-bin-sh.patch similarity index 100% rename from pkgs/ninja/0001-spawn-sh-instead-of-bin-sh.patch rename to pkgs-many/ninja/0001-spawn-sh-instead-of-bin-sh.patch diff --git a/pkgs-many/ninja/default.nix b/pkgs-many/ninja/default.nix new file mode 100644 index 00000000..901076b5 --- /dev/null +++ b/pkgs-many/ninja/default.nix @@ -0,0 +1,9 @@ +{ mkManyVariants, callPackage }: + +mkManyVariants { + variants = ./variants.nix; + aliases = { }; + defaultSelector = (p: p.v1_13); + genericBuilder = ./generic.nix; + inherit callPackage; +} diff --git a/pkgs/ninja/default.nix b/pkgs-many/ninja/generic.nix similarity index 84% rename from pkgs/ninja/default.nix rename to pkgs-many/ninja/generic.nix index 8d13d2f6..5162a10c 100644 --- a/pkgs/ninja/default.nix +++ b/pkgs-many/ninja/generic.nix @@ -1,3 +1,14 @@ +# First parameter: variant args with helpers +{ + version, + src-hash, + buildDocs ? false, + packageOlder, + packageAtLeast, + ... +}@variantArgs: + +# Second parameter: package dependencies { lib, stdenv, @@ -11,31 +22,18 @@ python3, re2c, buildPackages, - buildDocs ? true, nix-update-script, - ninjaRelease ? "latest", -}: +}@args: stdenv.mkDerivation (finalAttrs: { pname = "ninja"; - version = - { - "1.11" = "1.11.1"; - latest = "1.13.1"; - } - .${ninjaRelease}; + inherit version; src = fetchFromGitHub { owner = "ninja-build"; repo = "ninja"; rev = "v${finalAttrs.version}"; - hash = - { - # TODO: Remove Ninja 1.11 as soon as possible. - "1.11" = "sha256-LvV/Fi2ARXBkfyA1paCRmLUwCh/rTyz+tGMg2/qEepI="; - latest = "sha256-GhAF5wUT19E02ZekW+ywsCMVGYrt56hES+MHCH4lNG4="; - } - .${ninjaRelease} or (throw "Unsupported Ninja release: ${ninjaRelease}"); + hash = src-hash; }; depsBuildBuild = [ buildPackages.stdenv.cc ]; @@ -56,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: { ./0001-spawn-sh-instead-of-bin-sh.patch ] # TODO: remove together with ninja 1.11 - ++ lib.optionals (lib.versionOlder finalAttrs.version "1.12") [ + ++ lib.optionals (packageOlder "1.12") [ (fetchpatch { name = "ninja1.11-python3.13-compat.patch"; url = "https://github.com/ninja-build/ninja/commit/9cf13cd1ecb7ae649394f4133d121a01e191560b.patch"; diff --git a/pkgs/ninja/setup-hook.sh b/pkgs-many/ninja/setup-hook.sh similarity index 100% rename from pkgs/ninja/setup-hook.sh rename to pkgs-many/ninja/setup-hook.sh diff --git a/pkgs-many/ninja/variants.nix b/pkgs-many/ninja/variants.nix new file mode 100644 index 00000000..937af42c --- /dev/null +++ b/pkgs-many/ninja/variants.nix @@ -0,0 +1,17 @@ +{ + v1_11 = rec { + version = "1.11.1"; + src-hash = "sha256-LvV/Fi2ARXBkfyA1paCRmLUwCh/rTyz+tGMg2/qEepI="; + buildDocs = false; + }; + + v1_13 = rec { + version = "1.13.1"; + src-hash = "sha256-GhAF5wUT19E02ZekW+ywsCMVGYrt56hES+MHCH4lNG4="; + buildDocs = false; + }; + + withDocs = { + buildDocs = true; + }; +} From e23cc536126592c2b1a2903bf05ec73af2cb1c66 Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Mon, 2 Mar 2026 20:48:37 -0800 Subject: [PATCH 2/2] ninja: 1.13.1 -> 1.13.2 --- pkgs-many/ninja/variants.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs-many/ninja/variants.nix b/pkgs-many/ninja/variants.nix index 937af42c..1660c03b 100644 --- a/pkgs-many/ninja/variants.nix +++ b/pkgs-many/ninja/variants.nix @@ -6,8 +6,8 @@ }; v1_13 = rec { - version = "1.13.1"; - src-hash = "sha256-GhAF5wUT19E02ZekW+ywsCMVGYrt56hES+MHCH4lNG4="; + version = "1.13.2"; + src-hash = "sha256-D9HsIjv8EJ1qAdXFAKy260K77cCvopgQ2Fx6uXpt6VI="; buildDocs = false; };