mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 23:03:40 +01:00
5885cf1286
The videos work, but there is a problem with sound: ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /nix/store/9z51hr9l19vdhgmqd60jwwrg6ny5md2d-alsa-plugins-1.0.26/lib/alsa-lib/libasound_module_pcm_pulse.so It tries to open a 64bit plugin, which obviously fails. I think this depends on /etc/asound.conf, but I'm not sure how to fix it. Regardless of the problem, in one computer I tried the sound works but other apps cannot output sound. In another, the sound doesn't work and other apps continue working as normal.
106 lines
4.3 KiB
Nix
106 lines
4.3 KiB
Nix
{ stdenv, fetchurl, dpkg, makeWrapper, xz, libX11, gcc, glibc215
|
|
, libselinux, libXrandr, pango, freetype, fontconfig, glib, gtk
|
|
, gdk_pixbuf, cairo, libXi, alsaLib, libXrender, nss, nspr, zlib
|
|
, dbus, libpng12, libXfixes, cups, libgcrypt, openal, pulseaudio
|
|
, libxcb, libXau, libXdmcp, flashplayer
|
|
, SDL # World of Goo
|
|
, libvorbis # Osmos
|
|
, curl, mesa # Superbrothers: S&S EP
|
|
, patchelf }:
|
|
|
|
assert stdenv.system == "i686-linux";
|
|
|
|
let version = "1.0.0.28"; in
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "steam-${version}";
|
|
|
|
src =
|
|
if stdenv.system == "i686-linux" then
|
|
fetchurl {
|
|
url = "http://repo.steampowered.com/steam/archive/precise/steam_${version}_i386.deb";
|
|
sha256 = "0c0n1v9rnn6jj2wrvbmi77j9v93f3ndw039z9db6092yqls1amqk";
|
|
}
|
|
else if stdenv.system == "x86_64-linux" then
|
|
fetchurl {
|
|
url = "http://repo.steampowered.com/steam/archive/precise/steam64_${version}_amd64.deb";
|
|
sha256 = "1dr2b9s036w8r46az1f9cjddrjaf8a9k564g65j288y6w9pcdb2w";
|
|
}
|
|
else throw "Steam not supported on this platform.";
|
|
|
|
buildInputs = [ dpkg makeWrapper ];
|
|
|
|
phases = "installPhase";
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
dpkg-deb -x $src $out
|
|
mv $out/usr/* $out/
|
|
rmdir $out/usr
|
|
substituteInPlace "$out/bin/steam" --replace "/bin/bash" "/bin/sh"
|
|
substituteInPlace "$out/bin/steam" --replace "/usr/" "$out/"
|
|
sed -i 's,STEAMPACKAGE=.*,STEAMPACKAGE=steam,' $out/bin/steam
|
|
sed -i '/STEAMSCRIPT/d' $out/bin/steam
|
|
|
|
mv $out/bin/steam $out/bin/.steam-wrapped
|
|
cat > $out/bin/steam << EOF
|
|
#!${stdenv.shell}
|
|
|
|
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${libX11}/lib:${gcc.gcc}/lib:${glibc215}/lib:${libselinux}/lib:${libXrandr}/lib:${pango}/lib:${freetype}/lib:${fontconfig}/lib:${glib}/lib:${gtk}/lib:${gdk_pixbuf}/lib:${cairo}/lib:${libXi}/lib:${alsaLib}/lib:${libXrender}/lib:${nss}/lib:${nspr}/lib:${zlib}/lib:${dbus}/lib:${libpng12}/lib:${libXfixes}/lib:${cups}/lib:${libgcrypt}/lib:${openal}/lib:${pulseaudio}/lib:${libxcb}/lib:${libXau}/lib:${libXdmcp}/lib:${SDL}/lib:${libvorbis}/lib:${curl}/lib
|
|
STEAMBOOTSTRAP=~/.steam/steam/steam.sh
|
|
if [ -f \$STEAMBOOTSTRAP ]; then
|
|
PLATFORM32=ubuntu12_32
|
|
STEAMCONFIG=~/.steam
|
|
STEAMROOT=~/.local/share/Steam
|
|
STEAMDATA="\$STEAMROOT"
|
|
PIDFILE="\$STEAMCONFIG/steam.pid"
|
|
STEAMBIN32LINK="\$STEAMCONFIG/bin32"
|
|
STEAMBIN64LINK="\$STEAMCONFIG/bin64"
|
|
STEAMSDK32LINK="\$STEAMCONFIG/sdk32"
|
|
STEAMSDK64LINK="\$STEAMCONFIG/sdk64"
|
|
STEAMROOTLINK="\$STEAMCONFIG/root"
|
|
STEAMDATALINK="\$STEAMCONFIG/steam"
|
|
STEAMSTARTING="\$STEAMCONFIG/starting"
|
|
# Create symbolic links for the Steam API
|
|
if [ ! -e "\$STEAMCONFIG" ]; then
|
|
mkdir "\$STEAMCONFIG"
|
|
fi
|
|
if [ "\$STEAMROOT" != "\$STEAMROOTLINK" -a "\$STEAMROOT" != "\$STEAMDATALINK" ]; then
|
|
rm -f "\$STEAMBIN32LINK" && ln -s "\$STEAMROOT/\$PLATFORM32" "\$STEAMBIN32LINK"
|
|
rm -f "\$STEAMBIN64LINK" && ln -s "\$STEAMROOT/\$PLATFORM64" "\$STEAMBIN64LINK"
|
|
rm -f "\$STEAMSDK32LINK" && ln -s "\$STEAMROOT/linux32" "\$STEAMSDK32LINK"
|
|
rm -f "\$STEAMSDK64LINK" && ln -s "\$STEAMROOT/linux64" "\$STEAMSDK64LINK"
|
|
rm -f "\$STEAMROOTLINK" && ln -s "\$STEAMROOT" "\$STEAMROOTLINK"
|
|
if [ "\$STEAMDATALINK" ]; then
|
|
rm -f "\$STEAMDATALINK" && ln -s "\$STEAMDATA" "\$STEAMDATALINK"
|
|
fi
|
|
fi
|
|
# Temporary bandaid until everyone has the new libsteam_api.so
|
|
rm -f ~/.steampath && ln -s "\$STEAMCONFIG/bin32/steam" ~/.steampath
|
|
rm -f ~/.steampid && ln -s "\$PIDFILE" ~/.steampid
|
|
rm -f ~/.steam/bin && ln -s "\$STEAMBIN32LINK" ~/.steam/bin
|
|
export LD_LIBRARY_PATH="\$STEAMBIN32LINK:\$LD_LIBRARY_PATH:${mesa}/lib"
|
|
export SDL_VIDEO_X11_DGAMOUSE=0
|
|
cd "\$STEAMROOT"
|
|
FLASHLINK="\$STEAMCONFIG/bin32/plugins"
|
|
rm -f "\$FLASHLINK" && ln -s "${flashplayer}/lib/mozilla/plugins" "\$FLASHLINK"
|
|
LDSO="\$STEAMBIN32LINK/ld.so"
|
|
cp ${glibc215}/lib/ld-linux.so.2 "\$LDSO"
|
|
chmod u+w "\$LDSO"
|
|
echo \$\$ > "\$PIDFILE" # pid of the shell will become pid of steam
|
|
exec "\$LDSO" "\$STEAMBIN32LINK/steam"
|
|
else
|
|
export PATH=${xz}/bin:\$PATH
|
|
exec $out/bin/.steam-wrapped
|
|
fi
|
|
EOF
|
|
|
|
chmod +x $out/bin/steam
|
|
'';
|
|
|
|
meta = {
|
|
description = "A digital distribution platform";
|
|
homepage = http://store.steampowered.com/;
|
|
license = "unfree";
|
|
};
|
|
}
|