about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/by-name/un/unison/package.nix (renamed from pkgs/applications/networking/sync/unison/default.nix)42
-rw-r--r--pkgs/top-level/all-packages.nix5
2 files changed, 15 insertions, 32 deletions
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/by-name/un/unison/package.nix
index 5245030fd7f35..2d68ba5799b47 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/by-name/un/unison/package.nix
@@ -2,50 +2,37 @@
 , stdenv
 , fetchFromGitHub
 , ocamlPackages
-, ncurses
 , copyDesktopItems
 , makeDesktopItem
 , wrapGAppsHook
 , gsettings-desktop-schemas
-, zlib
-, enableX11 ? true
-, Cocoa
+, enableX11 ? !stdenv.isDarwin
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "unison";
-  version = "2.53.2";
+  version = "2.53.4";
 
   src = fetchFromGitHub {
     owner = "bcpierce00";
     repo = "unison";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-H+70NZZP0cUsxetFcsjWEx2kENsgMdo/41wBwwaX6zg=";
+    hash = "sha256-nFT6FjlQjh6qx0fepmT4aiQj2SxA7U/as+IU9xXNok0=";
   };
 
   strictDeps = true;
 
-  nativeBuildInputs = [ ocamlPackages.ocaml ]
-    ++ lib.optionals enableX11 [ copyDesktopItems wrapGAppsHook ];
-  buildInputs = [ ncurses zlib ]
-    ++ lib.optionals enableX11 [ gsettings-desktop-schemas ]
-    ++ lib.optionals stdenv.isDarwin [ Cocoa ];
-
-  preBuild = lib.optionalString enableX11 ''
-    sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${ocamlPackages.lablgtk3}"/lib/ocaml/*/site-lib/lablgtk3)|" src/Makefile.OCaml
-    sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${ocamlPackages.cairo2}"/lib/ocaml/*/site-lib/cairo2)|" src/Makefile.OCaml
-  '' + ''
-    echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> src/fsmonitor/linux/Makefile
+  # uimac requires xcode
+  postPatch = ''
+    sed -i -e 's/ macuimaybe//' src/Makefile
   '';
 
-  makeFlags = [
-    "INSTALLDIR=$(out)/bin/"
-    "UISTYLE=${if enableX11 then "gtk3" else "text"}"
-  ] ++ lib.optional (!ocamlPackages.ocaml.nativeCompilers) "NATIVE=false";
+  nativeBuildInputs = [ ocamlPackages.ocaml ocamlPackages.findlib ]
+    ++ lib.optionals enableX11 [ copyDesktopItems wrapGAppsHook ];
+  buildInputs = lib.optionals enableX11 [ gsettings-desktop-schemas ocamlPackages.lablgtk3 ];
 
-  preInstall = ''
-    mkdir -p $out/bin
-  '';
+  makeFlags = [ "PREFIX=$(out)" ]
+    ++ lib.optionals (!ocamlPackages.ocaml.nativeCompilers) [ "NATIVE=false" ];
 
   postInstall = lib.optionalString enableX11 ''
     install -D $src/icons/U.svg $out/share/icons/hicolor/scalable/apps/unison.svg
@@ -58,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
     desktopName = "Unison";
     comment = "Bidirectional file synchronizer";
     genericName = "File synchronization tool";
-    exec = "unison";
+    exec = "unison-gui";
     icon = "unison";
     categories = [ "Utility" "FileTools" "GTK" ];
     startupNotify = true;
@@ -69,8 +56,9 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://www.cis.upenn.edu/~bcpierce/unison/";
     description = "Bidirectional file synchronizer";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ viric ];
+    maintainers = with maintainers; [ viric nevivurn ];
     platforms = platforms.unix;
-    mainProgram = "unison";
+    broken = stdenv.isDarwin && enableX11; # unison-gui and uimac are broken on darwin
+    mainProgram = if enableX11 then "unison-gui" else "unison";
   };
 })
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 00934960d1b09..df3f9ca3d4a15 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -35860,11 +35860,6 @@ with pkgs;
 
   unipicker = callPackage ../applications/misc/unipicker { };
 
-  unison = callPackage ../applications/networking/sync/unison {
-    enableX11 = config.unison.enableX11 or true;
-    inherit (darwin.apple_sdk.frameworks) Cocoa;
-  };
-
   unpaper = callPackage ../tools/graphics/unpaper { };
 
   unison-ucm = callPackage ../development/compilers/unison { };