nixpkgs/pkgs/applications/networking/sync/unison/default.nix
Peter Simons c29e6c97f1 Only set font in wrapper if we have X.
Unison's wrapper was generating errors by calling xset even if DISPLAY
was not set.  This was especially noticeable when connecting to a
remote server to sync with.

Fix this by only setting the font path if DISPLAY is set to something.

svn path=/nixpkgs/trunk/; revision=21821
2010-05-17 16:16:48 +00:00

34 lines
1.1 KiB
Nix

{stdenv, fetchurl, ocaml, lablgtk, fontschumachermisc, xset, makeWrapper}:
stdenv.mkDerivation (rec {
name = "unison-2.32.52";
src = fetchurl {
url = "http://www.seas.upenn.edu/~bcpierce/unison/download/releases/${name}/${name}.tar.gz";
sha256 = "11844yh1gpjjapn8pvc14hla7g70spwqy6h61qk2is83mpafahhm";
};
buildInputs = [ocaml makeWrapper];
preBuild = ''
sed -i "s|\(OCAMLOPT=.*\)$|\1 -I ${lablgtk}/lib/ocaml/lablgtk2|" Makefile.OCaml
'';
makeFlags = "UISTYLE=gtk2 INSTALLDIR=$(out)/bin/";
preInstall = "ensureDir $out/bin";
postInstall = ''
for i in $(cd $out/bin && ls); do
wrapProgram $out/bin/$i \
--run "[ -n \"\$DISPLAY\" ] && (${xset}/bin/xset q | grep -q \"${fontschumachermisc}\" || ${xset}/bin/xset +fp \"${fontschumachermisc}/lib/X11/fonts/misc\")"
done
'';
meta = {
homepage = http://www.cis.upenn.edu/~bcpierce/unison/;
description = "Bidirectional file synchronizer";
license = "GPLv3+";
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux;
};
})