Merge staging-next into staging

This commit is contained in:
github-actions[bot]
2024-10-08 12:06:06 +00:00
committed by GitHub
15 changed files with 208 additions and 468 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ in {
default = pkgs.steam;
defaultText = lib.literalExpression "pkgs.steam";
example = lib.literalExpression ''
pkgs.steam-small.override {
pkgs.steam.override {
extraEnv = {
MANGOHUD = true;
OBS_VKCAPTURE = true;
+2 -2
View File
@@ -1,6 +1,6 @@
{ lib, fetchFromGitHub }:
rec {
version = "9.1.0707";
version = "9.1.0765";
outputs = [ "out" "xxd" ];
@@ -8,7 +8,7 @@ rec {
owner = "vim";
repo = "vim";
rev = "v${version}";
hash = "sha256-iHOLABPk5B7Sh7EBYnM7wdxnK2Wv7q4WS3FEp780SV4=";
hash = "sha256-LtEEMpdWXA6qyjAIjgsZoc4hNXXG2ZXxCsbWKC5aEPI=";
};
enableParallelBuilding = true;
@@ -12,6 +12,7 @@
, targetPkgs ? pkgs: []
, multiPkgs ? pkgs: []
, multiArch ? false # Whether to include 32bit packages
, includeClosures ? false # Whether to include closures of all packages
, nativeBuildInputs ? []
, extraBuildCommands ? ""
, extraBuildCommandsMulti ? ""
@@ -87,7 +88,6 @@ let
etcProfile = writeText "profile" ''
export PS1='${name}-fhsenv:\u@\h:\w\$ '
export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
export LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver-32/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
export PATH="/run/wrappers/bin:/usr/bin:/usr/sbin:$PATH"
export TZDIR='/etc/zoneinfo'
@@ -172,6 +172,7 @@ let
${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
fi
'';
inherit includeClosures;
};
staticUsrProfileMulti = buildEnv {
@@ -179,6 +180,7 @@ let
paths = baseMultiPaths ++ multiPaths;
extraOutputsToInstall = [ "out" "lib" ] ++ extraOutputsToInstall;
ignoreCollisions = true;
inherit includeClosures;
};
# setup library paths only for the targeted architecture
@@ -0,0 +1,63 @@
#include <fstream>
#include <spawn.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>
const char LD_SO_CONF[] = R"(/lib
/lib/x86_64-linux-gnu
/lib64
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib64
/lib/i386-linux-gnu
/lib32
/usr/lib/i386-linux-gnu
/usr/lib32
/run/opengl-driver/lib
/run/opengl-driver-32/lib
)";
int main(int, const char *argv[]) {
std::ofstream ld_so_conf;
ld_so_conf.open("/etc/ld.so.conf");
ld_so_conf << LD_SO_CONF;
ld_so_conf.close();
if (!ld_so_conf) {
perror("Failed to generate ld.so.conf");
return 1;
}
int e;
pid_t pid;
const char *ldconfig_argv[] = {"/bin/ldconfig", NULL};
char *ldconfig_envp[] = {NULL};
if ((e = posix_spawn(&pid, ldconfig_argv[0], NULL, NULL,
(char *const *)ldconfig_argv, ldconfig_envp))) {
fprintf(stderr, "Failed to run ldconfig: %s\n", strerror(e));
return 1;
}
int status;
if (waitpid(pid, &status, 0) == -1) {
perror("Failed to wait for ldconfig");
return 1;
}
if (WIFEXITED(status)) {
if (WEXITSTATUS(status)) {
fprintf(stderr, "ldconfig exited %d\n", WEXITSTATUS(status));
return 1;
}
} else {
fprintf(stderr, "ldconfig killed by signal %d\n", WTERMSIG(status));
return 1;
}
argv[0] = "/init";
execv(argv[0], (char *const *)argv);
perror("Failed to exec stage 2 init");
return 1;
}
@@ -5,6 +5,7 @@
, writeShellScript
, glibc
, pkgsi686Linux
, runCommandCC
, coreutils
, bubblewrap
}:
@@ -98,29 +99,30 @@ let
];
in map (path: "/etc/${path}") files;
# Create this on the fly instead of linking from /nix
# The container might have to modify it and re-run ldconfig if there are
# issues running some binary with LD_LIBRARY_PATH
createLdConfCache = ''
cat > /etc/ld.so.conf <<EOF
/lib
/lib/x86_64-linux-gnu
/lib64
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib64
/lib/i386-linux-gnu
/lib32
/usr/lib/i386-linux-gnu
/usr/lib32
/run/opengl-driver/lib
/run/opengl-driver-32/lib
EOF
ldconfig &> /dev/null
# Here's the problem case:
# - we need to run bash to run the init script
# - LD_PRELOAD may be set to another dynamic library, requiring us to discover its dependencies
# - oops! ldconfig is part of the init script, and it hasn't run yet
# - everything explodes
#
# In particular, this happens with fhsenvs in fhsenvs, e.g. when running
# a wrapped game from Steam.
#
# So, instead of doing that, we build a tiny static (important!) shim
# that executes ldconfig in a completely clean environment to generate
# the initial cache, and then execs into the "real" init, which is the
# first time we see anything dynamically linked at all.
#
# Also, the real init is placed strategically at /init, so we don't
# have to recompile this every time.
containerInit = runCommandCC "container-init" {
buildInputs = [ stdenv.cc.libc.static or null ];
} ''
$CXX -static -s -o $out ${./container-init.cc}
'';
init = run: writeShellScript "${name}-init" ''
realInit = run: writeShellScript "${name}-init" ''
source /etc/profile
${createLdConfCache}
exec ${run} "$@"
'';
@@ -253,6 +255,7 @@ let
--symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \
--ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \
--remount-ro ${glibc}/etc \
--symlink ${realInit runScript} /init \
'' + optionalString fhsenv.isMultiBuild (indentLines ''
--tmpfs ${pkgsi686Linux.glibc}/etc \
--symlink /etc/ld.so.conf ${pkgsi686Linux.glibc}/etc/ld.so.conf \
@@ -265,7 +268,7 @@ let
"''${auto_mounts[@]}"
"''${x11_args[@]}"
${concatStringsSep "\n " extraBwrapArgs}
${init runScript} ${initArgs}
${containerInit} ${initArgs}
)
exec "''${cmd[@]}"
'';
+2 -25
View File
@@ -312,29 +312,6 @@ in {
};
};
openssl_3_2 = common {
version = "3.2.3";
hash = "sha256-UrXxxrgCK8WGjDCMVPt3cF5wLWxvRZT5mg3yFqz0Yjk=";
patches = [
./3.0/nix-ssl-cert-file.patch
# openssl will only compile in KTLS if the current kernel supports it.
# This patch disables build-time detection.
./3.0/openssl-disable-kernel-detection.patch
(if stdenv.hostPlatform.isDarwin
then ./3.2/use-etc-ssl-certs-darwin.patch
else ./3.2/use-etc-ssl-certs.patch)
];
withDocs = true;
extraMeta = {
license = lib.licenses.asl20;
};
};
openssl_3_3 = common {
version = "3.3.2";
hash = "sha256-LopAsBl5r+i+C7+z3l3BxnCf7bRtbInBDaEUq1/D0oE=";
@@ -347,8 +324,8 @@ in {
./3.0/openssl-disable-kernel-detection.patch
(if stdenv.hostPlatform.isDarwin
then ./3.2/use-etc-ssl-certs-darwin.patch
else ./3.2/use-etc-ssl-certs.patch)
then ./3.3/use-etc-ssl-certs-darwin.patch
else ./3.3/use-etc-ssl-certs.patch)
];
withDocs = true;
+2 -15
View File
@@ -1,5 +1,5 @@
{ makeScopeWithSplicing', generateSplicesForMkScope
, stdenv, buildFHSEnv, pkgsi686Linux, mesa-demos
, stdenv
}:
let
@@ -10,21 +10,8 @@ let
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-fhsenv = callPackage ./fhsenv.nix {
mesa-demos-i686 =
if self.steamArch == "amd64"
then pkgsi686Linux.mesa-demos
else mesa-demos;
steam-runtime-wrapped-i686 =
if self.steamArch == "amd64"
then pkgsi686Linux.steamPackages.steam-runtime-wrapped
else null;
inherit buildFHSEnv;
};
steam-fhsenv-small = steam-fhsenv.override { withGameSpecificLibraries = false; };
steam-fhsenv = callPackage ./fhsenv.nix {};
# This has to exist so Hydra tries to build all of Steam's dependencies.
# FIXME: Maybe we should expose it as something more generic?
+107 -316
View File
@@ -1,340 +1,127 @@
{ lib, stdenv, writeShellScript, buildFHSEnv, steam, mesa-demos-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
, extraPreBwrapCmds ? "" # extra commands to run before calling bubblewrap (real default is at usage site)
, extraBwrapArgs ? [ ] # extra arguments to pass to bubblewrap (real default is at usage site)
, extraArgs ? "" # arguments to always pass to steam
, extraEnv ? { } # Environment variables to pass to Steam
# steamwebhelper deletes unrelated electron programs' singleton cookies from /tmp on startup:
# https://github.com/ValveSoftware/steam-for-linux/issues/9121
, privateTmp ? true # Whether to separate steam's /tmp from the host system
, withGameSpecificLibraries ? true # include game specific libraries
}@args:
{
lib,
steam,
buildFHSEnv,
writeShellScript,
extraPkgs ? pkgs: [ ], # extra packages to add to targetPkgs
extraLibraries ? pkgs: [ ], # extra packages to add to multiPkgs
extraProfile ? "", # string to append to profile
extraPreBwrapCmds ? "", # extra commands to run before calling bubblewrap
extraBwrapArgs ? [ ], # extra arguments to pass to bubblewrap (real default is at usage site)
extraArgs ? "", # arguments to always pass to steam
extraEnv ? { }, # Environment variables to pass to Steam
}:
let
commonTargetPkgs = pkgs: with pkgs; [
# 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
# run.sh wants ldconfig
glibc_multi.bin
# 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
steamEnv = { name, runScript, passthru ? {}, meta ? {} }:
buildFHSEnv {
inherit name runScript passthru meta;
# It tries to execute xdg-user-dir and spams the log with command not founds
xdg-user-dirs
multiArch = true;
includeClosures = true;
# electron based launchers need newer versions of these libraries than what runtime provides
mesa
sqlite
] ++ extraPkgs pkgs;
# https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/distro-assumptions.md#command-line-tools
targetPkgs = pkgs: with pkgs; [
steam
ldPath = lib.optionals stdenv.hostPlatform.is64bit [ "/lib64" ]
++ [ "/lib32" ]
++ 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);
bash
coreutils
file
lsb-release # not documented, called from Big Picture
pciutils # not documented, complains about lspci on startup
glibc_multi.bin
xz
zenity
# Zachtronics and a few other studios expect STEAM_LD_LIBRARY_PATH to be present
exportLDPath = ''
export LD_LIBRARY_PATH=${lib.concatStringsSep ":" ldPath}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
'';
# Steam expects it to be /sbin specifically
(pkgs.runCommand "sbin-ldconfig" {} ''
mkdir -p $out/sbin
ln -s /bin/ldconfig $out/sbin/ldconfig
'')
# bootstrap.tar.xz has 444 permissions, which means that simple deletes fail
# and steam will not be able to start
fixBootstrap = ''
if [ -r $HOME/.steam/steam/bootstrap.tar.xz ]; then
chmod +w $HOME/.steam/steam/bootstrap.tar.xz
fi
'';
# crashes on startup if it can't find libX11 locale files
(pkgs.runCommand "xorg-locale" {} ''
mkdir -p $out
ln -s ${xorg.libX11}/share $out/share
'')
] ++ extraPkgs pkgs;
envScript = ''
# prevents various error messages
unset GIO_EXTRA_MODULES
# https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/distro-assumptions.md#shared-libraries
multiPkgs = pkgs: with pkgs; [
glibc
libxcrypt
libGL
# This is needed for IME (e.g. iBus, fcitx5) to function correctly on non-CJK locales
# https://github.com/ValveSoftware/steam-for-linux/issues/781#issuecomment-2004757379
GTK_IM_MODULE='xim'
'' + lib.toShellVars extraEnv;
libdrm
mesa # for libgbm
udev
libudev0-shim
libva
vulkan-loader
in buildFHSEnv rec {
networkmanager # not documented, used for network status things in Big Picture
# FIXME: figure out how to only build libnm?
libcap # not documented, required by srt-bwrap
] ++ extraLibraries pkgs;
extraInstallCommands = lib.optionalString (steam != null) ''
ln -s ${steam}/share $out/share
'';
profile = ''
# prevents log spam from SteamRT GTK trying to load host GIO modules
unset GIO_EXTRA_MODULES
# udev event notifications don't work reliably inside containers.
# SDL2 already tries to automatically detect flatpak and pressure-vessel
# and falls back to inotify-based discovery [1]. We make SDL2 do the
# same by telling it explicitly.
#
# [1] <https://github.com/libsdl-org/SDL/commit/8e2746cfb6e1f1a1da5088241a1440fd2535e321>
export SDL_JOYSTICK_DISABLE_UDEV=1
# This is needed for IME (e.g. iBus, fcitx5) to function correctly on non-CJK locales
# https://github.com/ValveSoftware/steam-for-linux/issues/781#issuecomment-2004757379
export GTK_IM_MODULE='xim'
# See https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/distro-assumptions.md#graphics-driver
export LIBGL_DRIVERS_PATH=/run/opengl-driver/lib/dri:/run/opengl-driver-32/lib/dri
export __EGL_VENDOR_LIBRARY_DIRS=/run/opengl-driver/share/glvnd/egl_vendor.d:/run/opengl-driver-32/share/glvnd/egl_vendor.d
export LIBVA_DRIVERS_PATH=/run/opengl-driver/lib/dri:/run/opengl-driver-32/lib/dri
export VDPAU_DRIVER_PATH=/run/opengl-driver/lib/vdpau:/run/opengl-driver-32/lib/vdpau
set -a
${lib.toShellVars extraEnv}
set +a
${extraProfile}
'';
privateTmp = true;
inherit extraPreBwrapCmds;
extraBwrapArgs = [
# Steam will dump crash reports here, make those more accessible
"--bind-try /tmp/dumps /tmp/dumps"
] ++ extraBwrapArgs;
};
in steamEnv {
name = "steam";
# Steam still needs 32bit and various native games do too
multiArch = true;
targetPkgs = pkgs: with pkgs; [
steam
# License agreement
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
pipewire
# steamwebhelper
harfbuzz
libthai
pango
lsof # friends options won't display "Launch Game" without it
file # called by steam's setup.sh
# dependencies for mesa drivers, needed inside pressure-vessel
mesa.llvmPackages.llvm.lib
vulkan-loader
expat
wayland
xorg.libxcb
xorg.libXdamage
xorg.libxshmfence
xorg.libXxf86vm
elfutils
# Without these it silently fails
xorg.libXinerama
xorg.libXcursor
xorg.libXrender
xorg.libXScrnSaver
xorg.libXi
xorg.libSM
xorg.libICE
curl
nspr
nss
cups
libcap
SDL2
libusb1
dbus-glib
gsettings-desktop-schemas
ffmpeg
libudev0-shim
# Verified games requirements
fontconfig
freetype
xorg.libXt
xorg.libXmu
libogg
libvorbis
SDL
SDL2_image
glew110
libdrm
libidn
tbb
zlib
# SteamVR
udev
dbus
# Other things from runtime
glib
gtk2
bzip2
flac
libglut
libjpeg
libpng
libpng12
libsamplerate
libmikmod
libtheora
libtiff
pixman
speex
SDL_image
SDL_ttf
SDL_mixer
SDL2_ttf
SDL2_mixer
libappindicator-gtk2
libdbusmenu-gtk2
libindicator-gtk2
libcaca
libcanberra
libgcrypt
libunwind
libvpx
librsvg
xorg.libXft
libvdpau
# required by coreutils stuff to run correctly
# Steam ends up with LD_LIBRARY_PATH=/usr/lib:<bunch of runtime stuff>:<etc>
# which overrides DT_RUNPATH in our binaries, so it tries to dynload the
# very old versions of stuff from the runtime.
# FIXME: how do we even fix this correctly
attr
# same thing, but for Xwayland (usually via gamescope), already in the closure
libkrb5
keyutils
] ++ lib.optionals withGameSpecificLibraries [
# 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
gst_all_1.gst-plugins-base
json-glib # paradox launcher (Stellaris)
libxkbcommon # paradox launcher
libvorbis # Dead Cells
libxcrypt # Alien Isolation, XCOM 2, Company of Heroes 2
mono
ncurses # Crusader Kings III
openssl
xorg.xkeyboardconfig
xorg.libpciaccess
xorg.libXScrnSaver # Dead Cells
icu # dotnet runtime, e.g. Stardew Valley
# screeps dependencies
gtk3
zlib
atk
cairo
gdk-pixbuf
# Prison Architect
libGLU
libuuid
libbsd
alsa-lib
# Loop Hero
# FIXME: Also requires openssl_1_1, which is EOL. Either find an alternative solution, or remove these dependencies (if not needed by other games)
libidn2
libpsl
nghttp2.lib
rtmpdump
]
# This needs to come from pkgs as the passed-in steam-runtime-wrapped may not be the same architecture
++ pkgs.steamPackages.steam-runtime-wrapped.overridePkgs
++ extraLibraries pkgs;
extraInstallCommands = lib.optionalString (steam != null) ''
mkdir -p $out/share/applications
ln -s ${steam}/share/icons $out/share
ln -s ${steam}/share/pixmaps $out/share
ln -s ${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
# udev event notifications don't work reliably inside containers.
# SDL2 already tries to automatically detect flatpak and pressure-vessel
# and falls back to inotify-based discovery [1]. We make SDL2 do the
# same by telling it explicitly.
#
# [1] <https://github.com/libsdl-org/SDL/commit/8e2746cfb6e1f1a1da5088241a1440fd2535e321>
export SDL_JOYSTICK_DISABLE_UDEV=1
'' + extraProfile;
runScript = writeShellScript "steam-wrapper.sh" ''
if [ -f /etc/NIXOS ]; then # Check only useful on NixOS
${mesa-demos-i686}/bin/glxinfo 2>&1 | grep -q Error
# If there was an error running glxinfo, we know something is wrong with the configuration
if [ $? -eq 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.graphics.enable32Bit = true;
hardware.pulseaudio.support32Bit = true;
}
**
EOF
fi
fi
${exportLDPath}
${fixBootstrap}
set -o allexport # Export the following env vars
${envScript}
runScript = writeShellScript "steam-wrapped" ''
exec steam ${extraArgs} "$@"
'';
inherit privateTmp;
extraPreBwrapCmds = ''
install -m 1777 -d /tmp/dumps
'' + args.extraPreBwrapCmds or "";
extraBwrapArgs = [
"--bind-try /etc/NIXOS /etc/NIXOS" # required 32bit driver check in runScript
"--bind-try /tmp/dumps /tmp/dumps"
] ++ args.extraBwrapArgs or [];
meta =
if steam != null
then
steam.meta // lib.optionalAttrs (!withGameSpecificLibraries) {
description = steam.meta.description + " (without game specific libraries)";
mainProgram = "steam";
}
else {
description = "Steam dependencies (dummy package, do not use)";
};
passthru.steamargs = args;
passthru.run = buildFHSEnv {
passthru.run = steamEnv {
name = "steam-run";
targetPkgs = commonTargetPkgs;
inherit multiArch multiPkgs profile extraInstallCommands extraBwrapArgs;
runScript = writeShellScript "steam-run" ''
run="$1"
if [ "$run" = "" ]; then
if [ $# -eq 0 ]; then
echo "Usage: steam-run command-to-run args..." >&2
exit 1
fi
shift
${exportLDPath}
${fixBootstrap}
set -o allexport # Export the following env vars
${envScript}
exec -- "$run" "$@"
exec "$@"
'';
meta = (steam.meta or {}) // {
@@ -347,4 +134,8 @@ in buildFHSEnv rec {
license = lib.licenses.mit;
};
};
meta = (steam.meta or {}) // {
description = "Steam dependencies (dummy package, do not use)";
};
}
-45
View File
@@ -1,45 +0,0 @@
{ stdenv, steamArch, lib, perl, pkgs, steam-runtime
, runtimeOnly ? false
}:
let
overridePkgs = lib.optionals (!runtimeOnly) (with pkgs; [
libgpg-error
libpulseaudio
alsa-lib
openalSoft
libva1
libvdpau
vulkan-loader
gcc.cc.lib
nss
nspr
xorg.libxcb
]);
allPkgs = overridePkgs ++ [ steam-runtime ];
gnuArch = if steamArch == "amd64" then "x86_64-linux-gnu"
else if steamArch == "i386" then "i386-linux-gnu"
else throw "Unsupported architecture";
libs = [ "lib/${gnuArch}" "lib" "usr/lib/${gnuArch}" "usr/lib" ];
bins = [ "bin" "usr/bin" ];
in stdenv.mkDerivation {
name = "steam-runtime-wrapped";
nativeBuildInputs = [ perl ];
builder = ./build-wrapped.sh;
passthru = {
inherit gnuArch libs bins overridePkgs;
arch = steamArch;
};
installPhase = ''
buildDir "${toString libs}" "${toString (map lib.getLib allPkgs)}"
buildDir "${toString bins}" "${toString (map lib.getBin allPkgs)}"
'';
}
-37
View File
@@ -1,37 +0,0 @@
{ lib, stdenv, fetchurl
# for update script
, writeShellScript, curl, nix-update
}:
stdenv.mkDerivation (finalAttrs: {
pname = "steam-runtime";
# from https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-steam-client-general-availability/VERSION.txt
version = "0.20240415.84615";
src = fetchurl {
url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${finalAttrs.version}/steam-runtime.tar.xz";
hash = "sha256-C8foNnIVA+O4YwuCrIf9N6Lr/GlApPVgZsYgi+3OZUE=";
name = "scout-runtime-${finalAttrs.version}.tar.gz";
};
buildCommand = ''
mkdir -p $out
tar -C $out --strip=1 -x -f $src
'';
passthru = {
updateScript = writeShellScript "update.sh" ''
version=$(${curl}/bin/curl https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-steam-client-general-availability/VERSION.txt)
${lib.getExe nix-update} --version "$version" steamPackages.steam-runtime
'';
};
meta = {
description = "Official runtime used by Steam";
homepage = "https://github.com/ValveSoftware/steam-runtime";
license = lib.licenses.unfreeRedistributable; # Includes NVIDIA CG toolkit
maintainers = with lib.maintainers; [ hrdinka abbradar ];
};
})
@@ -11,7 +11,7 @@
, makeWrapper
, nftables
, nss
, openssl_3_2
, openssl
}:
stdenv.mkDerivation rec {
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
dbus
gtk3
libpcap
openssl_3_2
openssl
nss
stdenv.cc.cc.lib
];
+1
View File
@@ -1526,6 +1526,7 @@ mapAliases {
ssm-agent = amazon-ssm-agent; # Added 2023-10-17
starboard-octant-plugin = throw "starboard-octant-plugin has been dropped due to needing octant which is archived"; # Added 2023-09-29
starspace = throw "starspace has been removed from nixpkgs, as it was broken"; # Added 2024-07-15
steam-small = steam; # Added 2024-09-12
steam-run-native = steam-run; # added 2022-02-21
StormLib = stormlib; # Added 2024-01-21
sumneko-lua-language-server = lua-language-server; # Added 2023-02-07
-2
View File
@@ -22465,7 +22465,6 @@ with pkgs;
inherit (callPackages ../development/libraries/openssl { })
openssl_1_1
openssl_3
openssl_3_2
openssl_3_3;
opensubdiv = callPackage ../development/libraries/opensubdiv { };
@@ -35330,7 +35329,6 @@ with pkgs;
steamPackages = recurseIntoAttrs (callPackage ../games/steam { });
steam = steamPackages.steam-fhsenv;
steam-small = steamPackages.steam-fhsenv-small;
steam-run = steam.run;