From 0ffbeaaea17648d3a200604c54aa56f4a2d76b17 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Tue, 24 Mar 2026 08:52:01 -0500 Subject: [PATCH] idk --- lib/versioning/default.nix | 33 +++++++++++-------- packages/arm-trusted-firmware/default.nix | 3 +- packages/bcachefs/default.nix | 3 +- packages/cockpit-benchmark/default.nix | 3 +- packages/cockpit-machines/default.nix | 3 +- packages/cockpit-podman/default.nix | 3 +- packages/edk2/default.nix | 2 +- packages/librepods-beta/default.nix | 3 +- packages/librepods/default.nix | 3 +- packages/moondeck-buddy/default.nix | 3 +- packages/raspberrypi/ffmpeg-rpi/default.nix | 3 +- .../raspberrypi/libraspberrypi/default.nix | 3 +- packages/raspberrypi/linux-rpi/default.nix | 3 +- .../raspberryPiWirelessFirmware/default.nix | 3 +- .../raspberrypi-overlays/default.nix | 3 +- .../raspberrypi/raspberrypi-utils/default.nix | 3 +- .../raspberrypi/raspberrypifw/default.nix | 3 +- packages/raspberrypi/uefi-rpi4/default.nix | 3 +- packages/raspberrypi/uefi-rpi5/default.nix | 3 +- packages/system/open-remote-ssh/default.nix | 2 +- 20 files changed, 56 insertions(+), 32 deletions(-) diff --git a/lib/versioning/default.nix b/lib/versioning/default.nix index 6970104..700199a 100644 --- a/lib/versioning/default.nix +++ b/lib/versioning/default.nix @@ -94,14 +94,14 @@ let # Decide fetcher for URL type based on optional extra.unpack hint. useFetchZip = comp: comp ? extra && comp.extra ? unpack && comp.extra.unpack == "zip"; - # Build a single src from a rendered component spec. - mkSrcFromRendered = - comp: + # Build a single src from a rendered component spec, using the given pkgs for fetchers. + mkSrcFromRendered' = + pkgs': comp: let fetcher = if comp ? fetcher then comp.fetcher else "none"; in if fetcher == "github" then - pkgs.fetchFromGitHub ( + pkgs'.fetchFromGitHub ( { owner = comp.owner; repo = comp.repo; @@ -113,7 +113,7 @@ let // lib.optionalAttrs (comp ? name) { name = comp.name; } ) else if fetcher == "git" then - pkgs.fetchgit { + pkgs'.fetchgit { url = comp.url; rev = comp.rev; fetchSubmodules = if comp ? submodules then comp.submodules else false; @@ -124,7 +124,7 @@ let url = if comp ? url then comp.url else comp.urlTemplate; in if useFetchZip comp then - pkgs.fetchzip ( + pkgs'.fetchzip ( { inherit url; hash = comp.hash; @@ -132,12 +132,12 @@ let // lib.optionalAttrs (comp ? extra && comp.extra ? stripRoot) { stripRoot = comp.extra.stripRoot; } ) else - pkgs.fetchurl { + pkgs'.fetchurl { inherit url; hash = comp.hash; } else if fetcher == "pypi" then - pkgs.python3Packages.fetchPypi { + pkgs'.python3Packages.fetchPypi { pname = comp.name; version = comp.version; hash = comp.hash; @@ -146,6 +146,10 @@ let # fetcher == "none": pass-through (e.g., linux version/hash consumed by custom logic) comp; + # Build a single src from a rendered component spec using the default (lib-level) pkgs. + # Deprecated: prefer mkSrcFromRendered' with an explicit pkgs argument. + mkSrcFromRendered = mkSrcFromRendered' pkgs; + in rec { /* @@ -181,30 +185,33 @@ rec { /* Render a component with variables and then build its src (or pass-through for fetcher "none"). Prefer using mkAllSources, which handles rendering for all components. + + pkgs: the nixpkgs instance to use for fetchers (must match the target system). */ mkSrc = - comp: variables: + pkgs': comp: variables: let rendered = renderValue comp variables; in - mkSrcFromRendered rendered; + mkSrcFromRendered' pkgs' rendered; /* Produce an attrset of all sources for a selected spec: - mkAllSources selected + mkAllSources pkgs selected Where: + pkgs: the nixpkgs instance to use for fetchers (must match the target system). selected = selectVariant spec variantName system Returns: { componentName = src | renderedComp (for "none"); ... } */ mkAllSources = - selected: + pkgs': selected: mapAttrs ( _name: comp: if comp ? fetcher && comp.fetcher == "none" then renderValue comp selected.variables else - mkSrc (renderValue comp selected.variables) selected.variables + mkSrc pkgs' (renderValue comp selected.variables) selected.variables ) selected.sources; # Expose deepMerge for convenience (right-biased). diff --git a/packages/arm-trusted-firmware/default.nix b/packages/arm-trusted-firmware/default.nix index 6797d58..eccbdbf 100644 --- a/packages/arm-trusted-firmware/default.nix +++ b/packages/arm-trusted-firmware/default.nix @@ -2,6 +2,7 @@ stdenv, lib, namespace, + pkgs, MODEL ? "5", DEBUG ? "0", TFA_FLAGS ? "", @@ -12,7 +13,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; fw = selected.sources.fw; in stdenv.mkDerivation { diff --git a/packages/bcachefs/default.nix b/packages/bcachefs/default.nix index ddf79b7..13dd1c9 100644 --- a/packages/bcachefs/default.nix +++ b/packages/bcachefs/default.nix @@ -24,6 +24,7 @@ fuseSupport ? false, udevCheckHook, namespace, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -31,7 +32,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; in stdenv.mkDerivation (finalAttrs: { pname = "bcachefs-tools"; diff --git a/packages/cockpit-benchmark/default.nix b/packages/cockpit-benchmark/default.nix index 16d55df..6adf83c 100644 --- a/packages/cockpit-benchmark/default.nix +++ b/packages/cockpit-benchmark/default.nix @@ -8,6 +8,7 @@ fetchNpmDeps, requireFile, stdenv, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -15,7 +16,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; inherit (selected.variables) version; # These three packages are published exclusively to GitHub Packages diff --git a/packages/cockpit-machines/default.nix b/packages/cockpit-machines/default.nix index 75948c1..0531f2e 100644 --- a/packages/cockpit-machines/default.nix +++ b/packages/cockpit-machines/default.nix @@ -3,6 +3,7 @@ namespace, nodejs, stdenv, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -10,7 +11,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; inherit (selected.variables) version; in stdenv.mkDerivation { diff --git a/packages/cockpit-podman/default.nix b/packages/cockpit-podman/default.nix index 9a30c52..f2f4ea9 100644 --- a/packages/cockpit-podman/default.nix +++ b/packages/cockpit-podman/default.nix @@ -4,6 +4,7 @@ namespace, nodejs, stdenv, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -11,7 +12,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; inherit (selected.variables) version; in stdenv.mkDerivation { diff --git a/packages/edk2/default.nix b/packages/edk2/default.nix index 2e25312..acc053e 100644 --- a/packages/edk2/default.nix +++ b/packages/edk2/default.nix @@ -23,7 +23,7 @@ let version = "stable202511"; versionSpec = importJSON ./version.json; selected = selectVariant versionSpec (if MODEL == "5" then "mjallen" else null) null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; edk2Src = sources.edk2; diff --git a/packages/librepods-beta/default.nix b/packages/librepods-beta/default.nix index 17c0402..7acf5ce 100644 --- a/packages/librepods-beta/default.nix +++ b/packages/librepods-beta/default.nix @@ -14,6 +14,7 @@ freetype, namespace, system, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -21,7 +22,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; # cargoHash is stored alongside the source in version.json so the TUI can update it cargoHash = selected.sources.librepods.cargoHash; in diff --git a/packages/librepods/default.nix b/packages/librepods/default.nix index a65a8a1..ee95acc 100644 --- a/packages/librepods/default.nix +++ b/packages/librepods/default.nix @@ -8,6 +8,7 @@ python3, libpulseaudio, namespace, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -15,7 +16,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; in stdenv.mkDerivation { pname = "librepods"; diff --git a/packages/moondeck-buddy/default.nix b/packages/moondeck-buddy/default.nix index ed0e1ae..55e8aa6 100644 --- a/packages/moondeck-buddy/default.nix +++ b/packages/moondeck-buddy/default.nix @@ -2,6 +2,7 @@ lib, namespace, appimageTools, + pkgs, ... }: let @@ -10,7 +11,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; moondeck-buddy = selected.sources.moondeck-buddy; in appimageTools.wrapType2 { diff --git a/packages/raspberrypi/ffmpeg-rpi/default.nix b/packages/raspberrypi/ffmpeg-rpi/default.nix index 15f1dc1..15d8f2c 100644 --- a/packages/raspberrypi/ffmpeg-rpi/default.nix +++ b/packages/raspberrypi/ffmpeg-rpi/default.nix @@ -9,6 +9,7 @@ systemd, withVoutDrm ? true, namespace, + pkgs, }: let @@ -18,7 +19,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; vars = selected.variables or { }; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; extraVersion = vars.extraVersion or "rpi"; # https://github.com/jc-kynesim/rpi-ffmpeg/tree/test/7.1.2/main diff --git a/packages/raspberrypi/libraspberrypi/default.nix b/packages/raspberrypi/libraspberrypi/default.nix index 7bc410c..a5790f4 100644 --- a/packages/raspberrypi/libraspberrypi/default.nix +++ b/packages/raspberrypi/libraspberrypi/default.nix @@ -4,6 +4,7 @@ cmake, pkg-config, namespace, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -11,7 +12,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; in stdenv.mkDerivation (_finalAttrs: { pname = "libraspberrypi"; diff --git a/packages/raspberrypi/linux-rpi/default.nix b/packages/raspberrypi/linux-rpi/default.nix index ddcb661..1dabbb0 100644 --- a/packages/raspberrypi/linux-rpi/default.nix +++ b/packages/raspberrypi/linux-rpi/default.nix @@ -3,6 +3,7 @@ stdenv, lib, buildLinux, + pkgs, rpiVersion ? 5, namespace, kernelVersion ? "stable", @@ -16,7 +17,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec kernelVersion null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; modDirVersion = selected.variables.modDirVersion; tag = kernelVersion; # sources.tag; diff --git a/packages/raspberrypi/raspberryPiWirelessFirmware/default.nix b/packages/raspberrypi/raspberryPiWirelessFirmware/default.nix index e0d717c..351420e 100644 --- a/packages/raspberrypi/raspberryPiWirelessFirmware/default.nix +++ b/packages/raspberrypi/raspberryPiWirelessFirmware/default.nix @@ -2,6 +2,7 @@ lib, stdenvNoCC, namespace, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -9,7 +10,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; in stdenvNoCC.mkDerivation { diff --git a/packages/raspberrypi/raspberrypi-overlays/default.nix b/packages/raspberrypi/raspberrypi-overlays/default.nix index b4229ed..9ff3663 100644 --- a/packages/raspberrypi/raspberrypi-overlays/default.nix +++ b/packages/raspberrypi/raspberrypi-overlays/default.nix @@ -2,6 +2,7 @@ lib, stdenvNoCC, namespace, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -10,7 +11,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; vars = selected.variables or { }; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; in stdenvNoCC.mkDerivation { diff --git a/packages/raspberrypi/raspberrypi-utils/default.nix b/packages/raspberrypi/raspberrypi-utils/default.nix index a167b4e..5188ba2 100644 --- a/packages/raspberrypi/raspberrypi-utils/default.nix +++ b/packages/raspberrypi/raspberrypi-utils/default.nix @@ -6,6 +6,7 @@ cmake, dtc, namespace, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -13,7 +14,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; in stdenv.mkDerivation (_finalAttrs: { pname = "raspberrypi-utils"; diff --git a/packages/raspberrypi/raspberrypifw/default.nix b/packages/raspberrypi/raspberrypifw/default.nix index 3b7c94c..522a7b0 100644 --- a/packages/raspberrypi/raspberrypifw/default.nix +++ b/packages/raspberrypi/raspberrypifw/default.nix @@ -2,6 +2,7 @@ lib, stdenvNoCC, namespace, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -10,7 +11,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; vars = selected.variables or { }; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; in stdenvNoCC.mkDerivation { # NOTE: this should be updated with linux_rpi diff --git a/packages/raspberrypi/uefi-rpi4/default.nix b/packages/raspberrypi/uefi-rpi4/default.nix index 4a574b5..ce1a326 100644 --- a/packages/raspberrypi/uefi-rpi4/default.nix +++ b/packages/raspberrypi/uefi-rpi4/default.nix @@ -2,6 +2,7 @@ lib, stdenvNoCC, namespace, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -10,7 +11,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; vars = selected.variables or { }; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; in stdenvNoCC.mkDerivation rec { pname = "uefi-rpi4"; diff --git a/packages/raspberrypi/uefi-rpi5/default.nix b/packages/raspberrypi/uefi-rpi5/default.nix index 18ecf53..6dd2c76 100644 --- a/packages/raspberrypi/uefi-rpi5/default.nix +++ b/packages/raspberrypi/uefi-rpi5/default.nix @@ -2,6 +2,7 @@ lib, stdenvNoCC, namespace, + pkgs, }: let inherit (lib.trivial) importJSON; @@ -10,7 +11,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; vars = selected.variables or { }; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; defaultConfig = '' EOF diff --git a/packages/system/open-remote-ssh/default.nix b/packages/system/open-remote-ssh/default.nix index 7ab4787..396cbf7 100644 --- a/packages/system/open-remote-ssh/default.nix +++ b/packages/system/open-remote-ssh/default.nix @@ -12,7 +12,7 @@ let versionSpec = importJSON ./version.json; selected = selectVariant versionSpec null null; vars = selected.variables or { }; - sources = mkAllSources selected; + sources = mkAllSources pkgs selected; in vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = {