steamPackages: make customisable

Keep in mind the note in `lib.makeScopeWithSplicing`'s source:

# N.B. the other stages of the package set spliced in are *not*
# overridden.

To globally override `pkgs.steamPackages`, overlay `pkgs` like:

final: prev: { steamPackages = steamPackages.overrideScope …; }

Changed files
+23 -12
pkgs
games
steam
+23 -12
pkgs/games/steam/default.nix
···
-
{ pkgs, newScope, buildFHSUserEnv }:
let
-
callPackage = newScope self;
-
-
self = rec {
-
steamArch = if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
-
else if pkgs.stdenv.hostPlatform.system == "i686-linux" then "i386"
-
else throw "Unsupported platform: ${pkgs.stdenv.hostPlatform.system}";
steam-runtime = callPackage ./runtime.nix { };
steam-runtime-wrapped = callPackage ./runtime-wrapped.nix { };
steam = callPackage ./steam.nix { };
steam-fonts = callPackage ./fonts.nix { };
steam-fhsenv = callPackage ./fhsenv.nix {
-
glxinfo-i686 = pkgs.pkgsi686Linux.glxinfo;
steam-runtime-wrapped-i686 =
-
if steamArch == "amd64"
-
then pkgs.pkgsi686Linux.steamPackages.steam-runtime-wrapped
else null;
inherit buildFHSUserEnv;
};
steamcmd = callPackage ./steamcmd.nix { };
};
-
-
in self
···
+
{ lib, newScope, splicePackages, steamPackagesAttr ? "steamPackages"
+
, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget, pkgsHostHost, pkgsTargetTarget
+
, stdenv, buildFHSUserEnv, pkgsi686Linux
+
}:
let
+
steamPackagesFun = self: let
+
inherit (self) callPackage;
+
in {
+
steamArch = if stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
+
else if stdenv.hostPlatform.system == "i686-linux" then "i386"
+
else throw "Unsupported platform: ${stdenv.hostPlatform.system}";
steam-runtime = callPackage ./runtime.nix { };
steam-runtime-wrapped = callPackage ./runtime-wrapped.nix { };
steam = callPackage ./steam.nix { };
steam-fonts = callPackage ./fonts.nix { };
steam-fhsenv = callPackage ./fhsenv.nix {
+
glxinfo-i686 = pkgsi686Linux.glxinfo;
steam-runtime-wrapped-i686 =
+
if self.steamArch == "amd64"
+
then pkgsi686Linux.${steamPackagesAttr}.steam-runtime-wrapped
else null;
inherit buildFHSUserEnv;
};
steamcmd = callPackage ./steamcmd.nix { };
};
+
otherSplices = {
+
selfBuildBuild = pkgsBuildBuild.${steamPackagesAttr};
+
selfBuildHost = pkgsBuildHost.${steamPackagesAttr};
+
selfBuildTarget = pkgsBuildTarget.${steamPackagesAttr};
+
selfHostHost = pkgsHostHost.${steamPackagesAttr};
+
selfTargetTarget = pkgsTargetTarget.${steamPackagesAttr};
+
};
+
keep = self: { };
+
extra = spliced0: { };
+
in lib.makeScopeWithSplicing splicePackages newScope otherSplices keep extra steamPackagesFun