silx: 2.1.1 -> 2.1.2 (#361612)
[NixPkgs.git] / pkgs / by-name / un / unison / package.nix
blob75ff3c4e2f513e83907a11996b996e224c659a8c
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   ocamlPackages,
6   copyDesktopItems,
7   makeDesktopItem,
8   wrapGAppsHook3,
9   gsettings-desktop-schemas,
10   enableX11 ? !stdenv.hostPlatform.isDarwin,
13 stdenv.mkDerivation (finalAttrs: {
14   pname = "unison";
15   version = "2.53.7";
17   src = fetchFromGitHub {
18     owner = "bcpierce00";
19     repo = "unison";
20     rev = "v${finalAttrs.version}";
21     hash = "sha256-QmYcxzsnbRDQdqkLh82OLWrLF6v3qzf1aOIcnz0kwEk=";
22   };
24   strictDeps = true;
26   nativeBuildInputs =
27     [
28       ocamlPackages.ocaml
29       ocamlPackages.findlib
30     ]
31     ++ lib.optionals enableX11 [
32       copyDesktopItems
33       wrapGAppsHook3
34     ];
35   buildInputs = lib.optionals enableX11 [
36     gsettings-desktop-schemas
37     ocamlPackages.lablgtk3
38   ];
40   makeFlags = [
41     "PREFIX=$(out)"
42   ] ++ lib.optionals (!ocamlPackages.ocaml.nativeCompilers) [ "NATIVE=false" ];
44   postInstall = lib.optionalString enableX11 ''
45     install -D $src/icons/U.svg $out/share/icons/hicolor/scalable/apps/unison.svg
46   '';
48   dontStrip = !ocamlPackages.ocaml.nativeCompilers;
50   desktopItems = lib.optional enableX11 (makeDesktopItem {
51     name = finalAttrs.pname;
52     desktopName = "Unison";
53     comment = "Bidirectional file synchronizer";
54     genericName = "File synchronization tool";
55     exec = "unison-gui";
56     icon = "unison";
57     categories = [
58       "Utility"
59       "FileTools"
60       "GTK"
61     ];
62     startupNotify = true;
63     startupWMClass = "Unison";
64   });
66   meta = {
67     homepage = "https://www.cis.upenn.edu/~bcpierce/unison/";
68     description = "Bidirectional file synchronizer";
69     license = lib.licenses.gpl3Plus;
70     maintainers = with lib.maintainers; [ nevivurn ];
71     platforms = lib.platforms.unix;
72     broken = stdenv.hostPlatform.isDarwin && enableX11; # unison-gui and uimac are broken on darwin
73     mainProgram = if enableX11 then "unison-gui" else "unison";
74   };