at 18.03-beta 106 lines 2.7 kB view raw
1{ stdenv 2, makeWrapper 3, fetchurl 4, cabextract 5, gettext 6, glxinfo 7, gnupg1compat 8, icoutils 9, imagemagick 10, netcat-gnu 11, p7zip 12, python2Packages 13, unzip 14, wget 15, wine 16, xdg-user-dirs 17, xterm 18, pkgs 19, pkgsi686Linux 20, which 21, curl 22}: 23 24assert stdenv.isLinux; 25 26let 27 version = "4.2.12"; 28 29 binpath = stdenv.lib.makeBinPath 30 [ cabextract 31 python2Packages.python 32 gettext 33 glxinfo 34 gnupg1compat 35 icoutils 36 imagemagick 37 netcat-gnu 38 p7zip 39 unzip 40 wget 41 wine 42 xdg-user-dirs 43 xterm 44 which 45 curl 46 ]; 47 48 ld32 = 49 if stdenv.system == "x86_64-linux" then "${stdenv.cc}/nix-support/dynamic-linker-m32" 50 else if stdenv.system == "i686-linux" then "${stdenv.cc}/nix-support/dynamic-linker" 51 else throw "Unsupported platform for PlayOnLinux: ${stdenv.system}"; 52 ld64 = "${stdenv.cc}/nix-support/dynamic-linker"; 53 libs = pkgs: stdenv.lib.makeLibraryPath [ pkgs.xlibs.libX11 ]; 54 55in stdenv.mkDerivation { 56 name = "playonlinux-${version}"; 57 58 src = fetchurl { 59 url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz"; 60 sha256 = "03k8v9dknc5hfrfzqw1nkpifz7wkixv3mvjl1vnp4fx8rj2xrjrq"; 61 }; 62 63 nativeBuildInputs = [ makeWrapper ]; 64 65 buildInputs = 66 [ python2Packages.python 67 python2Packages.wxPython 68 python2Packages.setuptools 69 ]; 70 71 patchPhase = '' 72 patchShebangs python tests/python 73 sed -i "s/ %F//g" etc/PlayOnLinux.desktop 74 ''; 75 76 installPhase = '' 77 install -d $out/share/playonlinux 78 cp -r . $out/share/playonlinux/ 79 80 install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop 81 82 makeWrapper $out/share/playonlinux/playonlinux $out/bin/playonlinux \ 83 --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \ 84 --prefix PATH : ${binpath} 85 86 bunzip2 $out/share/playonlinux/bin/check_dd_x86.bz2 87 patchelf --set-interpreter $(cat ${ld32}) --set-rpath ${libs pkgsi686Linux} $out/share/playonlinux/bin/check_dd_x86 88 ${if stdenv.system == "x86_64-linux" then '' 89 bunzip2 $out/share/playonlinux/bin/check_dd_amd64.bz2 90 patchelf --set-interpreter $(cat ${ld64}) --set-rpath ${libs pkgs} $out/share/playonlinux/bin/check_dd_amd64 91 '' else '' 92 rm $out/share/playonlinux/bin/check_dd_amd64.bz2 93 ''} 94 for f in $out/share/playonlinux/bin/*; do 95 bzip2 $f 96 done 97 ''; 98 99 meta = with stdenv.lib; { 100 description = "GUI for managing Windows programs under linux"; 101 homepage = https://www.playonlinux.com/; 102 license = licenses.gpl3; 103 maintainers = [ maintainers.a1russell ]; 104 platforms = [ "x86_64-linux" "i686-linux" ]; 105 }; 106}