diff --git a/flake.nix b/flake.nix index 8a6632c..c74f966 100644 --- a/flake.nix +++ b/flake.nix @@ -82,9 +82,6 @@ }; sourcemod = true; plugins = with pkgs; [ - sourcemod-addon-curl - sourcemod-addon-steamworks - sourcemod-addon-socket sourcemod-plugin-mapdownloader sourcemod-plugin-whitelist sourcemod-plugin-nocheats diff --git a/nix/sourcemod/plugins/banned.nix b/nix/sourcemod/plugins/banned.nix index 2869c8a..e875600 100644 --- a/nix/sourcemod/plugins/banned.nix +++ b/nix/sourcemod/plugins/banned.nix @@ -1,11 +1,11 @@ { mkSpirePlugin, - sourcemod-include-curl, + sourcemod-addon-curl, }: mkSpirePlugin { name = "banned"; version = "0-unstable-2026-06-18"; rev = "c8186c7bd56e15f2e2e8e5988c0d18058a02df8b"; hash = "sha256-JA9WeM0Je0aHB/z+6xImztTouJNGkaPwD9Cp4z8Ko+4="; - includes = [sourcemod-include-curl]; + runtimeInputs = [sourcemod-addon-curl]; } diff --git a/nix/sourcemod/plugins/builder/plugin.nix b/nix/sourcemod/plugins/builder/plugin.nix index 6e43db7..dfe25b8 100644 --- a/nix/sourcemod/plugins/builder/plugin.nix +++ b/nix/sourcemod/plugins/builder/plugin.nix @@ -6,11 +6,12 @@ }: lib.extendMkDerivation { constructDrv = stdenvNoCC.mkDerivation; - excludeDrvArgNames = ["includes" "plugin" "installIncludes"]; + excludeDrvArgNames = ["includes" "plugin" "installIncludes" "runtimeInputs"]; extendDrvArgs = finalAttrs: { includes ? [], plugins, installIncludes ? [], + runtimeInputs ? [], src, ... }: let @@ -19,7 +20,8 @@ lib.extendMkDerivation { sourcemod-includes finalAttrs.src ] - ++ includes); + ++ includes + ++ runtimeInputs); spCompLines = concatStringsSep "\n" (map (plugin: "spcomp ${plugin}") plugins); createInclude = optionalString ((length installIncludes) > 0) "mkdir -p $out/addons/sourcemod/scripting/include/"; installLines = concatStringsSep "\n" (map (installInclude: "cp '${installInclude}' $out/addons/sourcemod/scripting/include/") installIncludes); @@ -46,5 +48,7 @@ lib.extendMkDerivation { runHook postInstall ''; + + passthru.runtimeInputs = runtimeInputs; }; } diff --git a/nix/sourcemod/plugins/mapdownloader.nix b/nix/sourcemod/plugins/mapdownloader.nix index 27bace1..59867c6 100644 --- a/nix/sourcemod/plugins/mapdownloader.nix +++ b/nix/sourcemod/plugins/mapdownloader.nix @@ -1,11 +1,11 @@ { mkSpirePlugin, - sourcemod-include-curl, + sourcemod-addon-curl, }: mkSpirePlugin { name = "mapdownloader"; version = "0-unstable-2025-10-27"; rev = "06dbac41712bd62ae3aa1fd442ab2265ee2f488f"; hash = "sha256-aNlrxrv2K73lKP7hYOER3um4P6fbiV/nF4GDcVaUNbo="; - includes = [sourcemod-include-curl]; + runtimeInputs = [sourcemod-addon-curl]; } diff --git a/nix/sourcemod/plugins/whitelist.nix b/nix/sourcemod/plugins/whitelist.nix index e780573..32f604a 100644 --- a/nix/sourcemod/plugins/whitelist.nix +++ b/nix/sourcemod/plugins/whitelist.nix @@ -1,6 +1,6 @@ { mkSpirePlugin, - sourcemod-include-curl, + sourcemod-addon-curl, }: mkSpirePlugin { name = "whitelist"; @@ -8,5 +8,5 @@ mkSpirePlugin { rev = "333c5065514a6c5b2f11e57f8ef0bbe80ac28a74"; hash = "sha256-1za2Ii772ymjejI0LaT61hmqEmIMnD/7sVXpMJIwMrc="; repo = "sm_whitelist"; - includes = [sourcemod-include-curl]; + runtimeInputs = [sourcemod-addon-curl]; } diff --git a/nix/srcds/addons.nix b/nix/srcds/addons.nix index 1a15f3d..0d107bf 100644 --- a/nix/srcds/addons.nix +++ b/nix/srcds/addons.nix @@ -1,4 +1,5 @@ { + lib, symlinkJoin, sourcemod-builder, metamod-source-builder, @@ -7,18 +8,23 @@ sdk, extraPackages, }: let + inherit (lib) foldl unique; sdks = { ${sdk} = hl2sdk.${sdk}; }; metaModSdk = metamod-source-builder sdks; sourceModSdk = sourcemod-builder sdks; + flattenRequires = foldl (acc: package: acc ++ [package] ++ (flattenRequires package.runtimeInputs or [])) []; + propagatedExtraPackages = unique (flattenRequires extraPackages); + names = lib.map (p: p.name) propagatedExtraPackages; in symlinkJoin { name = "srcds-tf2-src-addons"; - paths = [metaModSdk sourceModSdk] ++ extraPackages; + paths = [metaModSdk sourceModSdk] ++ propagatedExtraPackages; postBuild = '' mv $out tmp mkdir $out mv tmp $out/${gamedir} + echo ${lib.concatStringsSep ", " names} > $out/addons.txt ''; }