{ lib, stdenv , makeWrapper , fetchurl , cabextract , gettext , glxinfo , gnupg , icoutils , imagemagick , netcat-gnu , p7zip , python3 , unzip , wget , wine , xdg-user-dirs , xterm , pkgs , pkgsi686Linux , which , curl , jq , xorg , libGL , steam-run # needed for avoiding crash on file selector , gsettings-desktop-schemas , glib , wrapGAppsHook , hicolor-icon-theme }: let version = "4.4"; binpath = lib.makeBinPath [ cabextract python gettext glxinfo gnupg icoutils imagemagick netcat-gnu p7zip unzip wget wine xdg-user-dirs xterm which curl jq ]; ld32 = if stdenv.hostPlatform.system == "x86_64-linux" then "${stdenv.cc}/nix-support/dynamic-linker-m32" else if stdenv.hostPlatform.system == "i686-linux" then "${stdenv.cc}/nix-support/dynamic-linker" else throw "Unsupported platform for PlayOnLinux: ${stdenv.hostPlatform.system}"; ld64 = "${stdenv.cc}/nix-support/dynamic-linker"; libs = pkgs: lib.makeLibraryPath [ xorg.libX11 libGL ]; python = python3.withPackages(ps: with ps; [ wxPython_4_2 setuptools natsort ]); in stdenv.mkDerivation { pname = "playonlinux"; inherit version; src = fetchurl { url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz"; sha256 = "0n40927c8cnjackfns68zwl7h4d7dvhf7cyqdkazzwwx4k2xxvma"; }; patches = [ ./0001-fix-locale.patch ]; nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; preBuild = '' makeFlagsArray+=(PYTHON="python -m py_compile") ''; buildInputs = [ glib xorg.libX11 libGL python gsettings-desktop-schemas hicolor-icon-theme ]; postPatch = '' substituteAllInPlace python/lib/lng.py patchShebangs python tests/python sed -i "s/ %F//g" etc/PlayOnLinux.desktop ''; installPhase = '' install -d $out/share/playonlinux cp -r . $out/share/playonlinux/ install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop makeWrapper $out/share/playonlinux/playonlinux{,-wrapper} \ --prefix PATH : ${binpath} \ --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/GConf # steam-run is needed to run the downloaded wine executables mkdir -p $out/bin cat > $out/bin/playonlinux <