diff options
author | Nikolay Amiantov <ab@fmap.me> | 2015-12-09 23:28:31 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2015-12-09 23:29:24 +0300 |
commit | a5a481e7ee6af1c52d72f6cda48f7db3969e50d1 (patch) | |
tree | 56af8fe6cb9ca2531741db32c3603d8c79722430 /pkgs/applications/misc/playonlinux/default.nix | |
parent | c8eaa71caeb68dd3310c82941b78e4415230a4fc (diff) |
playonlinux: fix with new wxPython, fix OpenGL check
Diffstat (limited to 'pkgs/applications/misc/playonlinux/default.nix')
-rw-r--r-- | pkgs/applications/misc/playonlinux/default.nix | 98 |
1 files changed, 42 insertions, 56 deletions
diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix index b39eeac687892..65a703d8c8910 100644 --- a/pkgs/applications/misc/playonlinux/default.nix +++ b/pkgs/applications/misc/playonlinux/default.nix @@ -1,8 +1,6 @@ { stdenv , makeWrapper , fetchurl -, wxPython -, libXmu , cabextract , gettext , glxinfo @@ -11,29 +9,22 @@ , imagemagick , netcat , p7zip -, python +, python2Packages , unzip , wget , wine , xdg-user-dirs , xterm +, pkgs +, pkgsi686Linux }: -stdenv.mkDerivation rec { - name = "playonlinux-${version}"; +let version = "4.2.9"; - src = fetchurl { - url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz"; - sha256 = "89bb0fd7cce8cf598ebf38cad716b8587eaca5b916d54386fb24b3ff66b48624"; - }; - - nativeBuildInputs = [ makeWrapper ]; - - buildInputs = - [ wxPython - libXmu - cabextract + binpath = stdenv.lib.makeSearchPath "bin" + [ cabextract + python2Packages.python gettext glxinfo gnupg1compat @@ -41,7 +32,6 @@ stdenv.mkDerivation rec { imagemagick netcat p7zip - python unzip wget wine @@ -49,56 +39,52 @@ stdenv.mkDerivation rec { xterm ]; + ld32 = + if stdenv.system == "x86_64-linux" then "${stdenv.cc}/nix-support/dynamic-linker-m32" + else if stdenv.system == "i686-linux" then "${stdenv.cc}/nix-support/dynamic-linker" + else abort "Unsupported platform for PlayOnLinux"; + ld64 = "${stdenv.cc}/nix-support/dynamic-linker"; + libs = pkgs: stdenv.lib.makeLibraryPath [ pkgs.xlibs.libX11 ]; + +in stdenv.mkDerivation { + name = "playonlinux-${version}"; + + src = fetchurl { + url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz"; + sha256 = "89bb0fd7cce8cf598ebf38cad716b8587eaca5b916d54386fb24b3ff66b48624"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = + [ python2Packages.python + python2Packages.wxPython + python2Packages.setuptools + ]; + patchPhase = '' - PYFILES="python/*.py python/lib/*.py tests/python/*.py" - sed -i "s/env python[0-9.]*/python/" $PYFILES + patchShebangs python tests/python sed -i "s/ %F//g" etc/PlayOnLinux.desktop ''; installPhase = '' install -d $out/share/playonlinux - install -d $out/bin cp -r . $out/share/playonlinux/ - echo "#!${stdenv.shell}" > $out/bin/playonlinux - echo "$prefix/share/playonlinux/playonlinux \"\$@\"" >> $out/bin/playonlinux - chmod +x $out/bin/playonlinux - install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop - ''; - - preFixupPhases = [ "preFixupPhase" ]; - - preFixupPhase = '' - for f in $out/bin/*; do - wrapProgram $f \ - --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \ - --prefix PATH : \ - ${cabextract}/bin:\ - ${gettext}/bin:\ - ${glxinfo}/bin:\ - ${gnupg1compat}/bin:\ - ${icoutils}/bin:\ - ${imagemagick}/bin:\ - ${netcat}/bin:\ - ${p7zip}/bin:\ - ${python}/bin:\ - ${unzip}/bin:\ - ${wget}/bin:\ - ${wine}/bin:\ - ${xdg-user-dirs}/bin:\ - ${xterm}/bin - - done - - for f in $out/share/playonlinux/bin/*; do - bunzip2 $f - done - ''; - postFixupPhases = [ "postFixupPhase" ]; + makeWrapper $out/share/playonlinux/playonlinux $out/bin/playonlinux \ + --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \ + --prefix PATH : ${binpath} - postFixupPhase = '' + bunzip2 $out/share/playonlinux/bin/check_dd_x86.bz2 + patchelf --set-interpreter $(cat ${ld32}) --set-rpath ${libs pkgsi686Linux} $out/share/playonlinux/bin/check_dd_x86 + ${if stdenv.system == "x86_64-linux" then '' + bunzip2 $out/share/playonlinux/bin/check_dd_amd64.bz2 + patchelf --set-interpreter $(cat ${ld64}) --set-rpath ${libs pkgs} $out/share/playonlinux/bin/check_dd_amd64 + '' else '' + rm $out/share/playonlinux/bin/check_dd_amd64.bz2 + ''} for f in $out/share/playonlinux/bin/*; do bzip2 $f done |