diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/playonlinux/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/misc/playonlinux/default.nix | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/playonlinux/default.nix b/nixpkgs/pkgs/applications/misc/playonlinux/default.nix new file mode 100644 index 000000000000..e5c096fd2ae5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/playonlinux/default.nix @@ -0,0 +1,110 @@ +{ stdenv +, makeWrapper +, fetchurl +, cabextract +, gettext +, glxinfo +, gnupg +, icoutils +, imagemagick +, netcat-gnu +, p7zip +, python2Packages +, unzip +, wget +, wine +, xdg-user-dirs +, xterm +, pkgs +, pkgsi686Linux +, which +, curl +, jq +, xorg +, libGL +}: + +let + version = "4.3.4"; + + binpath = stdenv.lib.makeBinPath + [ cabextract + python2Packages.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: stdenv.lib.makeLibraryPath [ xorg.libX11 libGL ]; + +in stdenv.mkDerivation { + name = "playonlinux-${version}"; + + src = fetchurl { + url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz"; + sha256 = "019dvb55zqrhlbx73p6913807ql866rm0j011ix5mkk2g79dzhqp"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = + [ python2Packages.python + python2Packages.wxPython + python2Packages.setuptools + xorg.libX11 + libGL + ]; + + patchPhase = '' + 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 $out/bin/playonlinux \ + --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \ + --prefix PATH : ${binpath} + + 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.hostPlatform.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 + ''; + + meta = with stdenv.lib; { + description = "GUI for managing Windows programs under linux"; + homepage = https://www.playonlinux.com/; + license = licenses.gpl3; + maintainers = [ maintainers.a1russell ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} |