diff options
Diffstat (limited to 'nixpkgs/pkgs/games/steam/chrootenv.nix')
-rw-r--r-- | nixpkgs/pkgs/games/steam/chrootenv.nix | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/nixpkgs/pkgs/games/steam/chrootenv.nix b/nixpkgs/pkgs/games/steam/chrootenv.nix deleted file mode 100644 index 56e1a09f36e..00000000000 --- a/nixpkgs/pkgs/games/steam/chrootenv.nix +++ /dev/null @@ -1,279 +0,0 @@ -{ config, lib, writeScript, buildFHSUserEnv, steam, glxinfo-i686 -, steam-runtime-wrapped, steam-runtime-wrapped-i686 ? null -, extraPkgs ? pkgs: [ ] # extra packages to add to targetPkgs -, extraLibraries ? pkgs: [ ] # extra packages to add to multiPkgs -, extraProfile ? "" # string to append to profile -, nativeOnly ? false -, runtimeOnly ? false -, runtimeShell - -# DEPRECATED -, withJava ? config.steam.java or false -, withPrimus ? config.steam.primus or false -}: - -let - commonTargetPkgs = pkgs: with pkgs; - [ - steamPackages.steam-fonts - # Needed for operating system detection until - # https://github.com/ValveSoftware/steam-for-linux/issues/5909 is resolved - lsb-release - # Errors in output without those - pciutils - python2 - # Games' dependencies - xorg.xrandr - which - # Needed by gdialog, including in the steam-runtime - perl - # Open URLs - xdg_utils - iana-etc - # Steam Play / Proton - python3 - # Steam VR - procps - usbutils - ] ++ lib.optional withJava jdk - ++ lib.optional withPrimus primus - ++ extraPkgs pkgs; - - ldPath = map (x: "/steamrt/${steam-runtime-wrapped.arch}/" + x) steam-runtime-wrapped.libs - ++ lib.optionals (steam-runtime-wrapped-i686 != null) (map (x: "/steamrt/${steam-runtime-wrapped-i686.arch}/" + x) steam-runtime-wrapped-i686.libs); - - setupSh = writeScript "setup.sh" '' - #!${runtimeShell} - ''; - - runSh = writeScript "run.sh" '' - #!${runtimeShell} - runtime_paths="/lib32:/lib64:${lib.concatStringsSep ":" ldPath}" - if [ "$1" == "--print-steam-runtime-library-paths" ]; then - echo "$runtime_paths" - exit 0 - fi - export LD_LIBRARY_PATH="$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" - exec "$@" - ''; - -in buildFHSUserEnv rec { - name = "steam"; - - targetPkgs = pkgs: with pkgs; [ - steamPackages.steam - # License agreement - gnome3.zenity - ] ++ commonTargetPkgs pkgs; - - multiPkgs = pkgs: with pkgs; [ - # These are required by steam with proper errors - xorg.libXcomposite - xorg.libXtst - xorg.libXrandr - xorg.libXext - xorg.libX11 - xorg.libXfixes - libGL - libva - - # Not formally in runtime but needed by some games - at-spi2-atk - at-spi2-core # CrossCode - gst_all_1.gstreamer - gst_all_1.gst-plugins-ugly - libdrm - mono - xorg.xkeyboardconfig - xorg.libpciaccess - udev # shadow of the tomb raider - - ## screeps dependencies - gtk3 - dbus - zlib - glib - atk - cairo - freetype - gdk-pixbuf - pango - fontconfig - - # friends options won't display "Launch Game" without it - lsof - - # called by steam's setup.sh - file - - # Prison Architect - libGLU - libuuid - libbsd - alsaLib - ] ++ (if (!nativeOnly) then [ - (steamPackages.steam-runtime-wrapped.override { - inherit runtimeOnly; - }) - ] else [ - # Required - glib - gtk2 - bzip2 - zlib - gdk-pixbuf - - # Without these it silently fails - xorg.libXinerama - xorg.libXdamage - xorg.libXcursor - xorg.libXrender - xorg.libXScrnSaver - xorg.libXxf86vm - xorg.libXi - xorg.libSM - xorg.libICE - gnome2.GConf - freetype - (curl.override { gnutlsSupport = true; sslSupport = false; }) - nspr - nss - fontconfig - cairo - pango - expat - dbus - cups - libcap - SDL2 - libusb1 - dbus-glib - libav - atk - # Only libraries are needed from those two - libudev0-shim - networkmanager098 - - # Verified games requirements - xorg.libXt - xorg.libXmu - xorg.libxcb - libogg - libvorbis - SDL - SDL2_image - glew110 - openssl - libidn - tbb - wayland - mesa - libxkbcommon - - # Other things from runtime - flac - freeglut - libjpeg - libpng12 - libsamplerate - libmikmod - libtheora - libtiff - pixman - speex - SDL_image - SDL_ttf - SDL_mixer - SDL2_ttf - SDL2_mixer - gstreamer - gst-plugins-base - libappindicator-gtk2 - libcaca - libcanberra - libgcrypt - libvpx - librsvg - xorg.libXft - libvdpau - ] ++ steamPackages.steam-runtime-wrapped.overridePkgs) ++ extraLibraries pkgs; - - extraBuildCommands = if (!nativeOnly) then '' - mkdir -p steamrt - ln -s ../lib/steam-runtime steamrt/${steam-runtime-wrapped.arch} - ${lib.optionalString (steam-runtime-wrapped-i686 != null) '' - ln -s ../lib32/steam-runtime steamrt/${steam-runtime-wrapped-i686.arch} - ''} - ln -s ${runSh} steamrt/run.sh - ln -s ${setupSh} steamrt/setup.sh - '' else '' - ln -s /usr/lib/libbz2.so usr/lib/libbz2.so.1.0 - ${lib.optionalString (steam-runtime-wrapped-i686 != null) '' - ln -s /usr/lib32/libbz2.so usr/lib32/libbz2.so.1.0 - ''} - ''; - - extraInstallCommands = '' - mkdir -p $out/share/applications - ln -s ${steam}/share/icons $out/share - ln -s ${steam}/share/pixmaps $out/share - sed "s,/usr/bin/steam,$out/bin/steam,g" ${steam}/share/applications/steam.desktop > $out/share/applications/steam.desktop - ''; - - profile = '' - # Workaround for issue #44254 (Steam cannot connect to friends network) - # https://github.com/NixOS/nixpkgs/issues/44254 - if [ -z ''${TZ+x} ]; then - new_TZ="$(readlink -f /etc/localtime | grep -P -o '(?<=/zoneinfo/).*$')" - if [ $? -eq 0 ]; then - export TZ="$new_TZ" - fi - fi - - export STEAM_RUNTIME=${if nativeOnly then "0" else "/steamrt"} - '' + extraProfile; - - runScript = writeScript "steam-wrapper.sh" '' - #!${runtimeShell} - if [ -f /host/etc/NIXOS ]; then # Check only useful on NixOS - ${glxinfo-i686}/bin/glxinfo >/dev/null 2>&1 - # If there was an error running glxinfo, we know something is wrong with the configuration - if [ $? -ne 0 ]; then - cat <<EOF > /dev/stderr - ** - WARNING: Steam is not set up. Add the following options to /etc/nixos/configuration.nix - and then run \`sudo nixos-rebuild switch\`: - { - hardware.opengl.driSupport32Bit = true; - hardware.pulseaudio.support32Bit = true; - } - ** - EOF - fi - fi - exec steam "$@" - ''; - - meta = steam.meta // { - broken = nativeOnly; - }; - - passthru.run = buildFHSUserEnv { - name = "steam-run"; - - targetPkgs = commonTargetPkgs; - inherit multiPkgs extraBuildCommands; - - runScript = writeScript "steam-run" '' - #!${runtimeShell} - run="$1" - if [ "$run" = "" ]; then - echo "Usage: steam-run command-to-run args..." >&2 - exit 1 - fi - shift - ${lib.optionalString (!nativeOnly) "export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"} - exec -- "$run" "$@" - ''; - }; -} |