diff --git a/pkgs/games/steam/default.nix b/pkgs/games/steam/default.nix index a304f18f5bf6..370f22268a9a 100644 --- a/pkgs/games/steam/default.nix +++ b/pkgs/games/steam/default.nix @@ -25,6 +25,11 @@ let inherit buildFHSEnv; }; steam-fhsenv-small = steam-fhsenv.override { withGameSpecificLibraries = false; }; + + # This has to exist so Hydra tries to build all of Steam's dependencies. + # FIXME: Maybe we should expose it as something more generic? + steam-fhsenv-without-steam = steam-fhsenv.override { steam = null; }; + steamcmd = callPackage ./steamcmd.nix { }; }; keep = self: { }; diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix index a64aaacb0e7e..7fe40b68ecee 100644 --- a/pkgs/games/steam/fhsenv.nix +++ b/pkgs/games/steam/fhsenv.nix @@ -62,7 +62,7 @@ in buildFHSEnv rec { name = "steam"; targetPkgs = pkgs: with pkgs; [ - steamPackages.steam + steam # License agreement gnome.zenity ] ++ commonTargetPkgs pkgs; @@ -207,10 +207,10 @@ in buildFHSEnv rec { libpsl nghttp2.lib rtmpdump - ] ++ steamPackages.steam-runtime-wrapped.overridePkgs + ] ++ steam-runtime-wrapped.overridePkgs ++ extraLibraries pkgs; - extraInstallCommands = '' + extraInstallCommands = lib.optionalString (steam != null) '' mkdir -p $out/share/applications ln -s ${steam}/share/icons $out/share ln -s ${steam}/share/pixmaps $out/share @@ -262,9 +262,15 @@ in buildFHSEnv rec { exec steam ${extraArgs} "$@" ''; - meta = steam.meta // lib.optionalAttrs (!withGameSpecificLibraries) { - description = steam.meta.description + " (without game specific libraries)"; - }; + meta = + if steam != null + then + steam.meta // lib.optionalAttrs (!withGameSpecificLibraries) { + description = steam.meta.description + " (without game specific libraries)"; + } + else { + description = "Steam dependencies (dummy package, do not use)"; + }; # allows for some gui applications to share IPC # this fixes certain issues where they don't render correctly @@ -298,7 +304,7 @@ in buildFHSEnv rec { exec -- "$run" "$@" ''; - meta = steam.meta // { + meta = (steam.meta or {}) // { description = "Run commands in the same FHS environment that is used for Steam"; name = "steam-run"; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ef40c1232340..68bed0c68649 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -36914,7 +36914,7 @@ with pkgs; stockfish = callPackage ../games/stockfish { }; - steamPackages = dontRecurseIntoAttrs (callPackage ../games/steam { }); + steamPackages = recurseIntoAttrs (callPackage ../games/steam { }); steam = steamPackages.steam-fhsenv; steam-small = steamPackages.steam-fhsenv-small;