forked from mirrors/nixpkgs
3355e8d1ca
Fixes #61867 and #61505, bumps the ocaml version unison is built against to 4.08. The patches included here appear in the trunk version of unison, but were not backported to 2.51.2.
56 lines
1.6 KiB
Nix
56 lines
1.6 KiB
Nix
{stdenv, fetchFromGitHub, ocamlPackages, fontschumachermisc, xset, makeWrapper, ncurses
|
|
, enableX11 ? true}:
|
|
|
|
let inherit (ocamlPackages) ocaml lablgtk; in
|
|
|
|
stdenv.mkDerivation (rec {
|
|
|
|
pname = "unison";
|
|
version = "2.51.2";
|
|
src = fetchFromGitHub {
|
|
owner = "bcpierce00";
|
|
repo = "unison";
|
|
rev = "v${version}";
|
|
sha256 = "1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq";
|
|
};
|
|
|
|
buildInputs = [ ocaml makeWrapper ncurses ];
|
|
|
|
preBuild = (if enableX11 then ''
|
|
sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml
|
|
'' else "") + ''
|
|
echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> src/fsmonitor/linux/Makefile
|
|
'';
|
|
|
|
makeFlags = [
|
|
"INSTALLDIR=$(out)/bin/"
|
|
"UISTYLE=${if enableX11 then "gtk2" else "text"}"
|
|
] ++ stdenv.lib.optional (!ocaml.nativeCompilers) "NATIVE=false";
|
|
|
|
patches = [
|
|
# NOTE: Only needed until Unison 2.51.3 is released!
|
|
./4.08-compatibility.patch
|
|
./lablgtk.patch
|
|
];
|
|
|
|
preInstall = "mkdir -p $out/bin";
|
|
|
|
postInstall = if enableX11 then ''
|
|
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
|
|
'' else "";
|
|
|
|
dontStrip = !ocaml.nativeCompilers;
|
|
|
|
meta = {
|
|
homepage = https://www.cis.upenn.edu/~bcpierce/unison/;
|
|
description = "Bidirectional file synchronizer";
|
|
license = stdenv.lib.licenses.gpl3Plus;
|
|
maintainers = with stdenv.lib.maintainers; [viric];
|
|
platforms = with stdenv.lib.platforms; unix;
|
|
};
|
|
|
|
})
|