diff --git a/pkgs/applications/misc/playonlinux/0001-fix-locale.patch b/pkgs/applications/misc/playonlinux/0001-fix-locale.patch new file mode 100644 index 00000000000..2ae1a17ca8b --- /dev/null +++ b/pkgs/applications/misc/playonlinux/0001-fix-locale.patch @@ -0,0 +1,17 @@ +diff --git a/python/lib/lng.py b/python/lib/lng.py +index a390d920..00c3527e 100755 +--- a/python/lib/lng.py ++++ b/python/lib/lng.py +@@ -12,11 +12,7 @@ class Lang(object): + + class iLang(object): + def __init__(self): +- if(os.environ["DEBIAN_PACKAGE"] == "TRUE"): +- languages = os.listdir('/usr/share/locale') +- else: +- languages = os.listdir(Variables.playonlinux_env+'/lang/locale') +- ++ languages = os.listdir('@out@/share/playonlinux/lang/locale') + if(os.environ["POL_OS"] == "Mac"): + wxLocale = wx.Locale().FindLanguageInfo(os.environ["RLANG"]) + diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix index d805aa0c0aa..320d771bc67 100644 --- a/pkgs/applications/misc/playonlinux/default.nix +++ b/pkgs/applications/misc/playonlinux/default.nix @@ -9,7 +9,7 @@ , imagemagick , netcat-gnu , p7zip -, python2 +, python3 , unzip , wget , wine @@ -22,6 +22,9 @@ , jq , xorg , libGL +, steam-run-native +# needed for avoiding crash on file selector +, gsettings-desktop-schemas }: let @@ -54,9 +57,10 @@ let ld64 = "${stdenv.cc}/nix-support/dynamic-linker"; libs = pkgs: lib.makeLibraryPath [ xorg.libX11 libGL ]; - python = python2.withPackages(ps: with ps; [ - wxPython + python = python3.withPackages(ps: with ps; [ + wxPython_4_1 setuptools + natsort ]); in stdenv.mkDerivation { @@ -68,8 +72,16 @@ in stdenv.mkDerivation { sha256 = "0n40927c8cnjackfns68zwl7h4d7dvhf7cyqdkazzwwx4k2xxvma"; }; + patches = [ + ./0001-fix-locale.patch + ]; + nativeBuildInputs = [ makeWrapper ]; + preBuild = '' + makeFlagsArray+=(PYTHON="python -m py_compile") + ''; + buildInputs = [ xorg.libX11 libGL @@ -77,6 +89,7 @@ in stdenv.mkDerivation { ]; postPatch = '' + substituteAllInPlace python/lib/lng.py patchShebangs python tests/python sed -i "s/ %F//g" etc/PlayOnLinux.desktop ''; @@ -87,8 +100,16 @@ in stdenv.mkDerivation { install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop - makeWrapper $out/share/playonlinux/playonlinux $out/bin/playonlinux \ - --prefix PATH : ${binpath} + 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 <