4b8803dae6
gnupg is gnupg 2.2. gnupg1 is also gnupg 2.2, just with a few extra symlinks in the bin directory. None of these packages need those symlinks, and it's confusing for them to say they're depending on "gnupg1", so switch their dep to plain "gnupg".
110 lines
2.7 KiB
Nix
110 lines
2.7 KiB
Nix
{ 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" ];
|
|
};
|
|
}
|