chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / un / unison / package.nix
blobd0298c7f15849450891809071af6aa925d434f7d
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , ocamlPackages
5 , copyDesktopItems
6 , makeDesktopItem
7 , wrapGAppsHook3
8 , gsettings-desktop-schemas
9 , enableX11 ? !stdenv.hostPlatform.isDarwin
12 stdenv.mkDerivation (finalAttrs: {
13   pname = "unison";
14   version = "2.53.5";
16   src = fetchFromGitHub {
17     owner = "bcpierce00";
18     repo = "unison";
19     rev = "v${finalAttrs.version}";
20     hash = "sha256-XCdK38jG7tRI+/Zk72JVY8a/pPJF6KVaf8l2s3hgxLs=";
21   };
23   strictDeps = true;
25   # uimac requires xcode
26   postPatch = ''
27     sed -i -e 's/ macuimaybe//' src/Makefile
28   '';
30   nativeBuildInputs = [ ocamlPackages.ocaml ocamlPackages.findlib ]
31     ++ lib.optionals enableX11 [ copyDesktopItems wrapGAppsHook3 ];
32   buildInputs = lib.optionals enableX11 [ gsettings-desktop-schemas ocamlPackages.lablgtk3 ];
34   makeFlags = [ "PREFIX=$(out)" ]
35     ++ lib.optionals (!ocamlPackages.ocaml.nativeCompilers) [ "NATIVE=false" ];
37   postInstall = lib.optionalString enableX11 ''
38     install -D $src/icons/U.svg $out/share/icons/hicolor/scalable/apps/unison.svg
39   '';
41   dontStrip = !ocamlPackages.ocaml.nativeCompilers;
43   desktopItems = lib.optional enableX11 (makeDesktopItem {
44     name = finalAttrs.pname;
45     desktopName = "Unison";
46     comment = "Bidirectional file synchronizer";
47     genericName = "File synchronization tool";
48     exec = "unison-gui";
49     icon = "unison";
50     categories = [ "Utility" "FileTools" "GTK" ];
51     startupNotify = true;
52     startupWMClass = "Unison";
53   });
55   meta = with lib; {
56     homepage = "https://www.cis.upenn.edu/~bcpierce/unison/";
57     description = "Bidirectional file synchronizer";
58     license = licenses.gpl3Plus;
59     maintainers = with maintainers; [ nevivurn ];
60     platforms = platforms.unix;
61     broken = stdenv.hostPlatform.isDarwin && enableX11; # unison-gui and uimac are broken on darwin
62     mainProgram = if enableX11 then "unison-gui" else "unison";
63   };